2014-05-20 2 views
3

나는 일반적으로 시간이 지남에 따라 3D 그리드에서 50 억 데이터 포인트를 훨씬 넘는 데이터 세트를 다룹니다. 각 데이터 포인트에는 특정 값이 있으며 시각화해야합니다. 그래서 5 차원 데이터 세트입니다. 각 점 (X, Y, Z, 시간, 값) I 이하, 예를 들면 값이 특정 범위 사이 여기서 이러한 데이터 세트에 대해 임의의 쿼리를 실행하거나 필요5 차원 데이터를위한 데이터베이스?

  1. 모양의 데이터를 말할 수 어떤 가치.
  2. 은 내가 특정 Z 값이 내가이 데이터 세트에 대해 실행해야하는 가장 일반적인 쿼리입니다

에 대한 모든 데이터가 필요한 쿼리를 실행해야합니다. 나는 MySQL과 MongoDB를 좋아하고 그 값들을위한 인덱스를 만들었지 만, 리소스 요구 사항은 긴 쿼리 런타임에서 극단적이다. 필자는 상대적으로 쉽게 검색 할 수있는 데이터를 저장하기 위해 자체 파일 형식을 작성했습니다. 이 접근법은 전체 데이터 세트를 읽거나/스캔하지 않고도 데이터를 찾기가 어렵습니다.

내가 Hadoop과 Hive를 봤지만 쿼리가 실시간으로 실행되도록 설계되지 않았습니다. 데이터 크기 측면에서 보면 더 잘 맞는 것 같습니다.

이렇게 많은 양의 데이터를 효율적으로 색인화하는 가장 좋은 방법은 무엇입니까? 맞춤 색인 생성 시스템이 가장 좋은 방법인가 아니면 더 작은 청크로 데이터를 분할하고 특정 색인 생성 방법을 사용하고 있습니까? 목표는 데이터에 대해 쿼리를 실행하고 0.5 초 이내에 결과를 반환 할 수있게하는 것입니다. 거대한 RAM 드라이브에서 전체 DB를 실행하면 5 초가 걸렸습니다.

의견 및 제안을 환영합니다.

편집 : 모든 X, Y, Z, 시간과 값 데이터 모두 FLOAT에게 있습니다 그것은 정말하지만 상관없이 그와 종류와 데이터의 양을 고려, 당신이 사용할 수있는 하드웨어에 따라 달라

+1

데이터의 차이점은 무엇입니까? 예를 들어 여러 개의 표를 만드는 것이 합리적 일 수 있습니다. table_z1, table_z2 ... table_zN. 또는 값 범위를 index가있는 별도의 테이블에 저장하고 value_container_table에 외래 키가 있습니다. 귀하의 질문을 업데이트하여 열 유형을 추가하고 조금 더 비즈니스 로직 정보가 될 수 있습니다 – StanislavL

+2

구글의 BigTable은 무엇입니까? http://research.google.com/archive/bigtable.html – cha

+0

3 가지 제약 조건 중 2 가지가 만날 수 있다고 가정합니다. 체계. 속도, 일관성 및 높은 데이터 양입니다. 아마도 대량 데이터가 견고한 DB에 저장되어있는 사용자 지정 솔루션으로 쉽게 쿼리 할 수 ​​있으며 각 노드에서 데이터 집합이 작 으면 빠릅니다. 그런 다음 특정 사용자 정의 된 추상화 또는 필터가 저장되는 맨 위에있는 Redis와 같은 캐싱 계층을 가질 수 있습니다. – airtruk

답변

0

당신이 다루고있는, 나는 확실히 클러스터 된 솔루션을 제안합니다.

이미 언급했듯이 Hadoop은 주로 일괄 처리 도구이므로 적합하지 않습니다.

Cassandra을보고 문제가 해결되는지 확인하십시오. 나는 CitusDB (6 개 노드까지 사용 가능) 또는 Vertica (3 개 노드까지 사용 가능)과 같은 열 저장소 RBDMS가 유용 할 수 있다고 생각합니다.

관련 문제