2011-12-16 2 views
3

나는 다음과 같은 요구 사항을 센서 데이터 수집 시스템을 평가하고엄청난 규모의 센서 데이터를 실시간으로 저장하기위한 HIVE/HDFS?

  1. 데이터의 100 바이트 (시계열)을 매 순간에 보내는 1 백만 엔드 포인트.
  2. 기본적으로 수백만 개의 작은 쓰기가 저장소에 저장됩니다.

    This data is write-once, so basically it never gets updated. 
    
  3. 액세스 요구 사항
    가. 사용자의 전체 데이터는 정기적으로 액세스해야합니다 (빈번하지 않음)
    b. 사용자에 대한 부분 데이터는 정기적으로 액세스해야합니다 (빈번하게 액세스해야 함). 예를 들어, 분석 /보고를 위해 지난 1 시간/1 주/1 개월에 수집 된 센서 데이터가 필요합니다.

하이브/HDFS를 옵션으로 살펴보기 시작했습니다. 누군가 Hive의 적용 가능성에 대해 언급 할 수 있습니까? 분산 저장 장치 요구 사항이 작동하는 동안 실시간 데이터 수집/저장보다 데이터웨어 하우징 응용 프로그램에 더 적합하다고 생각됩니다.

이 시나리오에서 HBase/Cassandra가 더 적합합니까?

+0

엔드 포인트가 사용자와 어떻게 관련되는지 명확히 할 수 있습니까? 얼마나 많은 사용자가 원하는가, 그리고 얼마나 많은 데이터가 "사용자의 전체 데이터"입니까? – DNA

+0

엔드 포인트는 대략적으로 사용자에게 번역됩니다. 그리고 1 년 동안 100 바이트/분으로 사용자에게 수집 된 데이터는 약 50MB입니다. 1M 사용자의 경우 이는 약 50TB의 데이터입니다. – user393144

답변

4

실제로 카산드라와 함께 센서 데이터를 수집하는 사람들이 꽤 있습니다. 그것은 매우 적합합니다. 나는 당신의 데이터 모델이 어떻게 될지에 대해이 article on basic time series in Cassandra을 읽을 것을 권한다.

카산드라의 쓰기는 매우 저렴하므로 적당한 크기의 클러스터조차도 분당 100 만개의 쓰기를 쉽게 처리 할 수 ​​있습니다.

두 가지 읽기 쿼리 모두 매우 효율적으로 대답 할 수 있습니다. 두 번째 유형의 쿼리 인 경우 단일 센서에 대해 한 조각의 시간 동안 데이터를 읽는 경우 단일 행에서 인접한 슬라이스를 읽게됩니다. 이것은 완전히 차가운 읽기에 약 10ms가 걸릴 것입니다. 첫 번째 유형의 쿼리의 경우 여러 센서 별 쿼리를 병렬로 실행하기 만하면됩니다. 기본 사용자 맵을 센서 ID에 저장한다고 가정하면 하나의 쿼리로 사용자의 모든 센서 ID를 검색 한 다음 두 번째 쿼리는 모든 센서에 대한 데이터를 가져옵니다 (이 쿼리는 센서의 수가 높다).

실시간 쿼리에 대해 이야기 할 때 Hive와 HDFS는 장기 실행 일괄 작업에 더 적합하기 때문에 실제로 의미가 없습니다.

+0

재미있는 사실로, KairosDB는 Cassandra를 데이터 저장소로 사용하는 OpenTSDB의 대안입니다. – FrEaKmAn

6

HBase가 좋은 옵션 일 수 있다고 생각합니다. 사실 이미 HBase에 오픈 소스 구현이있어 비슷한 문제를 해결할 수 있습니다. 유사한 문제를 해결하기위한 오픈 소스 구현 인 openTSB을 살펴보십시오. 여기에 자신의 추천 광고에서 짧은 발췌 :

OpenTSDB은 (TSDB) 는 HBase를 위에 쓰여진 분산, 확장 가능한 시계열 데이터베이스입니다. OpenTSDB는 컴퓨터 시스템 (네트워크 장비, 운영 체제, 응용 프로그램)에서 수집 한 메트릭을 대규모로 저장, 색인화 및 제공하고이 데이터를 쉽게 액세스하고 그래프로 작성할 수있게 해주는 공통점 인 을 해결하기 위해 작성되었습니다. HBase의 확장 성 덕분에 OpenTSDB를 사용하면 수천 개의 호스트 및 응용 프로그램에서 많은 수천 개의 메트릭 을 고속으로 ( 초마다) 수집 할 수 있습니다. OpenTSDB는 데이터를 삭제하거나 다운 샘플링하지 않으며 쉽게 데이터 포인트 수십억 개를 저장할 수 있습니다. 실제로 StumbleUpon은 을 사용하여 수십만 개의 시계열을 추적하고 기본 생산량 인 데이터 센터에 하루에 6 억 데이터 포인트를 초과하여 을 수집합니다.

관련 문제