2016-08-24 5 views
2

저는 빅 데이터 기술, 특히 카산드라에 상당히 익숙합니다. 그래서해야 할 일에 대한 조언이 필요합니다. 나는 timeseries를 다루는 것에 대한 Datastax 예제를 찾고 있었고,이 주제에 관해서는 다른 토론을했지만, 내가 놓친 것 같으면 자유롭게 말해주십시오. 여기 내 문제.Hadoop/Cassandra - 수천 개의 센서에서 데이터를 저장하고 분석하는 방법은 무엇입니까?

우리가 테스트중인 약 100 개의 센서 스테이션에서 오는 데이터를 저장하고 분석해야합니다. 각 센서 스테이션에는 수천 개의 센서가 있습니다. 따라서 각 스테이션에 대해 몇 가지 테스트를 실행합니다 (각각 약 2 시간 30 분 소요). 센서는 매분 밀리 초 (부울, 정수 또는 부동 소수점 일 수 있음)의 정보를 기록합니다. 각 테스트의 기록은 테스트 중 스테이션에 보관되고, 테스트가 완료되면 나에게 전송됩니다. 각 테스트마다 약 10GB를 의미합니다 (각 매개 변수는 약 1MB의 정보입니다). Hierarchy description

는 바로 지금, 내가 테스트를 위해 스파크와 카산드라와 작은 하둡 클러스터에 액세스 할 수 있습니다 여기에

는 계층 구조를 설명하는 스키마입니다. 다른 도구를 설치할 수도 있지만 Spark/Cassandra와 계속 협력 해 주셔서 감사합니다.

내 질문은 다음과 같습니다. 이러한 센서에서 오는 정보를 저장하고 저장하는 데 가장 적합한 데이터 모델은 무엇일까요? "해석"저자

, 말 :

  • 최소, 최대, 특정 기지국의 특정 센서에 의해 기록되는 특정 매개 변수의 평균 값을 찾기; 특정 매개 변수에 대한 값을 찾지 만 모든 스테이션에 대한 값은 찾을 수 없습니다. 또는 특정 매개 변수에 대한 값을 찾지 만 동일한 스테이션의 다른 매개 변수 (1 또는 2)가 한도보다 큰 경우

  • 하나 이상의 매개 변수가 시각적으로 비교되도록 전개하십시오 또는 동일한 스테이션에서 다른 매개 변수)

  • 매개 변수 또는 스테이션 (예 : 센서가 작동하지 않는지 확인) 간의 상관 관계 분석을 수행하십시오.

나는 다음과 같은 데이터 모델과 함께 카산드라 표에 모든 정보를 넣어의 생각

: 하나 개의 테이블은 모든 데이터를 처리 할 수있을 것입니다 경우

CREATE TABLE data_stations (
station text,   // station ID 
test int,    // test ID 
parameter text,   // name of recorded parameter/sensor 
tps timestamp,   // timestamp 
val float,    // measured value 
PRIMARY KEY ((station, test, parameter), tps) 
); 

는 나도 몰라 : 빠른 계산은 각 파티션이 "만"인 경우에도 선행 데이터 모델 (100 개 스테이션 x 10 테스트 x 10,000 매개 변수 x 9,000,000ms (2h30 밀리 초) ~ 10^14)에 따라 10^14 개의 서로 다른 행을 제공합니다. 행.

다른 아이디어는 다른 테이블 (예 : 스테이션 당 하나의 테이블 또는 스테이션 당 테스트 당 하나의 테이블 등)에서 데이터를 분할하는 것이 었습니다. 나는 무엇을 선택할 지 모르므로, 어떤 조언도 환영합니다!

자세한 정보 나 세부 정보가 필요하면 시간을내어 도움을 주셔서 감사합니다.

Piar

답변

0

당신이 올바른 궤도에있다가, 카산드라는 이러한 데이터를 처리 할 수 ​​있습니다.원하는 열의 모든 데이터를 저장하고 Apache SparkCassandra을 사용하여 필요한 집계를 수행 할 수 있습니다.

집계 및 상관 관계 계산에 사용할 수 있으므로 Apache Spark이 사용 사례에 적합하다고 생각합니다.

Apache Hive은 외부 테이블을 통해 HDFS의 데이터를 직접 처리/쿼리 할 수 ​​있으므로 체크 아웃 할 수도 있습니다.

확인이 : 빠른 답변

Cassandra - Max. size of wide rows?

Limitations of Cassandra

+0

감사합니다. Spark와 Cassandra가 내 문제에 대한 좋은 선택이라는 소식을 듣고 기쁩니다! 보내 주신 링크를 확인했는데 실제로 흥미 롭습니다. 그러나 "파티션 당 2 억 개의 셀"제한은 내 파티션이 2 억 개 미만인 경우 제한없이 같은 테이블에 원하는만큼의 데이터를 넣을 수 있다는 것을 의미합니까? 이 경우, 첫 번째 메시지에서 제공 한 첫 번째 데이터 모델을 사용할 수 있습니다. 답장을 보내 주셔서 다시 한 번 감사드립니다. – Piar

+0

예. 모든 데이터를 서로 다른 파티션 (20 억 개 미만의 셀)에 테이블/열 패밀리에 넣을 수 있습니다. __ 그러나 모든 [Cassandra의 한계] (http://wiki.apache.org/cassandra/CassandraLimitations) __ –

+0

을 확인하십시오. 감사합니다. 정밀도와 링크에 감사드립니다. 정말 유용 했어, 그때 그걸 시도 할께! – Piar

관련 문제