데이터베이스 테이블 구성 및 파티셔닝 방법 0 6 1,765

by Ho! [MySQL] MariaDB MySQL 파티셔닝 [2017.12.26 10:58:25]


0.1초에 한번씩 700개 정도의 데이터가 발생하는 상황입니다.

시간, 항목명, 값 세가지를 이용하여 db화 시키고 싶은데요,

데이터베이스와 테이블은 어떻게 구성해야 할까요?

발생하는 데이터가 많아서 어떻게 처리해야 할지 감이 안잡히네요..

mariadb를 사용하고자 하는데, sql 에 관해서는 문외한이고 mariadb를 heidisql을 이용해서 테이블 만들고 조회하는 수준의 지식만 가지고 있습니다.

일단 레코드를 10분정도 간격으로 모아서 한번에 밀어넣으려고 생각하고 있어요.

DB에는 기록하고 조회하는 프로그램 하나만 접속합니다.

하루에 6억개네요... 700개 데이터를 한 레코드에 다 담으면 86만개 되겠네요..

찾아보니 테이블 파티셔닝이라는 게 있더라구요 이걸 사용해서 월별로 파티셔닝하면 될꺼라고 생각하는데 개념이 뜬구름 잡듯 잘 안잡히네요.. 자동으로 월별로 계속 생성되게도 하고싶고 한데 잘 방법을 잘 모르겠어요.

시간, 항목, 값 이렇게 있는데 이게 값의 종류가 또 4종류라 그렇게 분류해야 할 것 같습니다.

어떤 방식으로 db와 테이블을 구성하고 어떻게하면 자동으로 월별, 종류별로 구성되게 해서 속도저하를 최소로 하여 사용할 수 있을까요? 레코드도 10분 간격으로 데이터를 모아서 쿼리날릴때 어떤 방식으로 처리해야 퍼포먼스 저하를 최소화하면서 데이터를 빨리 기록할 수 있을까요?

by 우리집아찌 [2017.12.26 11:21:12]

파티션닝 해도 데이터가 참 많네요.

월단위 파티셔닝으로는 감당 안될듯합니다. 하루에 6억개면 시간단위로 해도 2500만개이네요

mariadb 에서 Composite Partitioning이 지원되는지모르겠는데

오라클 기준으로 말씀드리면 시간단위에 항목(고정된값)을 더해서(Composite Range-List Partitioning ) 이나 시간단위에 hash로 나누워서 (Composite Range-Hash Partitioning )로 파티셔닝 해야 할듯합니다.

 

 

 


by 우리집아찌 [2017.12.26 11:23:21]

insert 퍼포먼스가 문제이시면 병렬처리가 가능하면 병렬처리 하시는걸 추천드립니다.


by Ho! [2017.12.26 11:32:44]

데이터가 저도 많다고 느껴집니다.. 1초에 7천건 정도의 데이터를 처리하는데 RDBMS를 사용하는게 맞을까요? RDBMS로 처리하기에 적합치 않은 데이터라면 다른 방법을 강구해야 할 것 같습니다.


by 우리집아찌 [2017.12.26 12:32:09]

저도 이정도 데이터를 다뤄본적은 없어서요.

다른분들이 답변해드릴것 같습니다.

 


by 주킹 [2017.12.26 16:23:24]

우선 구성하기 전에 데이터가 0.1초에 700건씩 반드시 들어와야하는여부를 판단하셔야 할듯합니다.


by Ho! [2017.12.26 16:45:03]

온도값들을 100ms 간격으로 실시간으로 읽어오는 건데요, 이를 모두 저장해야 합니다. 반드시 들어와야 합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입