2014-02-07 3 views
0

현재 프로덕션 테스트 데이터를 저장할 데이터베이스를 설계하려고합니다. 각 장치는 동일한 테스트 시퀀스 (12 개의 테스트)를 거치며 전압, 전류 및 온도 데이터는 각 테스트 실행 동안 다양한 샘플 속도로 여러 위치에서 수집됩니다. 목표는 단위가 "가족"인지 여부를 결정하기 위해 테스트 유형 및 매개 변수별로 추세에 대한 데이터를 사용하는 것입니다.시계열 데이터의 관계형 데이터베이스

내 첫 번째 생각은 '테스트'테이블에 연결된 '단위'테이블을 특정 실행에 대한 원시 데이터에 연결되는 '매개 변수'테이블에 연결하는 것입니다. 관계형 데이터베이스는 이런 식으로 갈 수있는 가장 좋은 방법은 아니면이 응용 프로그램을 위해 MongoDB와 같은 것을 사용하는 것이 더 낫겠습니까?

+0

Mongo는 실제로 데이터베이스가 아닙니다. 최상위 수준의 문서가 서로 독립적이지만 문서 내에서 상관되지만 문서 외부에서는 상관 관계가없는 많은 고도로 구조화 된 데이터를 포함하는 경우 Mongo가 대답 일 수 있습니다. 비 계급 관계를 모델링하고자하는 다른 모든 것에 대해서는 실제 관계형 데이터베이스에 충실하십시오. 더 나은 대답을 원한다면, 당신이 원하는 것을 저장하십시오. –

+0

@ JimGarrison "데이터베이스는 체계적인 데이터 수집입니다." (http://en.wikipedia.org/wiki/Database)이 정의에 의하면, Mongo는 확실히 데이터베이스입니다. 이 질문에 대한 답변으로 고전적인 대답이 적용됩니다. 우리가 당신이 당신의 데이터로 무엇을 할 것인지 모르기 때문에 말하기가 정말로 어렵습니다. 이와 같은 과학적 데이터의 경우, 여분의 테이블이 나를 아주 많이 사 줄 것이라고 생각하지 않으면 모든 좋은 인덱스를 가진 단일 테이블로 모든 것을 밀어 넣는 것을 고려할 수 있습니다. 어떤 유형의 무결성 제약 조건을 데이터에 적용하고 어떤 종류의 쿼리를 실행해야하는지 생각하십시오. – jpmc26

답변

1

전통적인 RDBMS가 여전히 기본 선택 사항입니다. MongoDB와 같은 'NoSQL'시스템은 관계형 데이터베이스가 요구 사항을 충족시킬 수없는 경우에만 일반적으로 사용하는 것입니다. 관계형 데이터베이스는 가능한하지 않을 수 있습니다

두 가지 일반적인 경우는 다음과 같습니다 데이터가 unstructered, 또는 구조가 알려져 있지 않거나 보장 할 수 없습니다

  • . 문서 저장소 나 키 값 저장소는 본질적으로 임의의 데이터를 던져 버릴 수있게하며 저장합니다.

  • 매우 높은 동시성 및/또는 읽기 및 쓰기 요구 사항의 높은 혼합 비율이있는 경우. 이 경우 전통적인 관계형 시스템은 데이터를 동기화 상태로 유지하고 무결성을 유지해야하기 때문에 유지할 수 없습니다.

는 데이터의 양이 단순히 너무 큰 것도 가능하지만, 그 많은 데이터을 의미한다.

데이터가 고도로 구조화되어 있고 합리적인 속도로 도착한 것 같습니다 (테스트 할 수있는 것보다 빠르게 데이터 포인트를받지 못할 것입니다). 또한 시스템 전체에 많은 양의 동시 사용자가 동시에 쿼리를 실행한다는 의미의 병렬로드가있는 것처럼 들리지는 않습니다.

이 경우에는 기존의 관계형 시스템에서 제공하는 내장 된 무결성 유지 보수 메커니즘 (유형화 된 열, 점검 제한 조건 등), 많은 양의 문서 등을 활용할 수 있습니다.

귀하의 질문에 언급했듯이, 귀하의 데이터에 대해 실행 가능한 스키마를 설계하는 것이 가능할 것입니다.

+0

+1 "전통적인 RDBMS가 여전히 기본 선택입니다." – jpmc26

관련 문제