저는 데이터베이스 전문가가 아니므로 조금만 도와 드리겠습니다. 나는 측정 된 데이터를 가지고 있으며 데이터 조작에 도움을 원한다. 여기 내 상황이 있습니다 : cca 10 개의 방송국이 매일 측정됩니다. 매일, cca 3000 행 (cca 15 열 포함)의 데이터가 생성됩니다. 매일 모든 스테이션에서 중앙 서버로 데이터를 다운로드해야합니다. 이는 cca 30 000이 매일 데이터베이스에 삽입 된 행을 의미합니다. (매일 카운트가 바뀔 수 있습니다)bigdata 용 MySQL 데이터베이스 디자인
이제 저는 지난 몇 년 동안의 데이터를 얻었습니다. 따라서 모든 스테이션에 대해 몇 백만 개의 행이 있습니다. 또한 cca 20 "dead"스테이션이 있습니다. 더 이상 작동하지 않지만 몇 년 후의 데이터가 있습니다. 이 값을 모두 합하면 cca가 30 개 스테이션에서 생성되고 50,000,000 개 행이 생성되고 cca 30,000 행은 매일 삽입됩니다. 먼저 데이터베이스에 100 만 개의 행을 가정 해 봅시다.
제 질문은 분명합니다.이 데이터를 어떻게 저장 하시겠습니까? 측정 값 (열)은 숫자 (int 또는 double + datetime)입니다. 텍스트 또는 전체 텍스트 검색은 기본적으로 필요한 유일한 인덱스는 DATETIME입니다. 데이터가 업데이트되거나 삭제되지 않습니다. (예 : 1.1.2010에서 3.2.2010까지)
그래서 제가 썼을 때, 제가 가장 잘 알고있는 데이터베이스이기 때문에 저는 MySQL을 사용하고 싶습니다. 나는이 양의 데이터를 쉽게 처리해야한다는 것을 읽었지만, 아직도이 상황에 대한 어떤 제안도 고맙게 생각합니다. 는 다시 :
- 10 연, 하루에 3000 개 행이 각 => 하루 CCA (30 개) 000 삽입 아직 행의 40 ~ 50 개 수백만 바이너리 파일 에서 삽입 할
- CCA는
- DB는 증가 할 것입니다 (100 만 개가 넘는 행)
- 필요한 것은 가능한 한 빨리 데이터를 선택하는 것입니다.
내가 아는 한, MySQL은이 양의 데이터를 처리해야합니다. 나는 또한 내 유일한 인덱스가 DATETIME 타입의 날짜와 시간이 될 것이라는 것을 알고있다. (더 빠르게해야한다.) 내가 결정할 수없는 것은 50+ 수백만 개의 행을 가진 하나의 거대한 테이블을 만들지 여부이다. 스테이션 ID로), 또는 모든 스테이션에 대해 별도로 테이블을 생성하십시오. 기본적으로이 스테이션에서 JOIN을 수행 할 필요가 없습니다. 시간의 일치가 필요한 경우 스테이션에서 동일한 시간 범위를 선택할 수 있습니다. 이러한 접근법에 불만이 있습니까?
누구든지 내 생각을 확인/거절 할 수 있습니까? 더 나은 해결책이 있다고 생각하십니까? 도움이나 토론에 감사드립니다.
이 CCA 란 무엇입니까? –
나는 그가 "주변"또는 "대략"에 대한 라틴어 인 "circa"를 의미한다고 생각한다. –
1 백만 행은 작지는 않지만 요즘에는 "큰 데이터"로 간주되지 않습니다.) –