cassandra bigtable - 대규모 주문 된 시계열 데이터를 빅 테이블 파생물에 저장




secondary index (6)

대규모 시계열 데이터베이스를 다루는 경우 표준은 다음과 같습니다.

이들은 저렴하지는 않지만 데이터를 매우 효율적으로 처리 할 수 ​​있습니다.

bigtable, hbase 및 cassandra와 같은 새로운 fangled 데이터 저장소가 실제로 무엇인지 정확히 파악하려고합니다.

저는 엄청난 양의 주식 시장 데이터, 매일 수십억 개의 기가 바이트를 추가 할 수있는 수십억 개의 가격 / 견적 데이터 행을 처리합니다 (이러한 텍스트 파일은 종종 최소 한도로 압축되지만). 이 데이터는 기본적으로 소수의 숫자, 2 ~ 3 개의 짧은 문자열 및 타임 스탬프 (일반적으로 밀리 초 수준)입니다. 각 행에 대해 고유 한 식별자를 선택해야하는 경우 Exchange에서 동일한 밀리 초 단위의 동일한 기호에 대해 여러 값을 생성 할 수 있기 때문에 전체 행을 선택해야합니다.

이 데이터를 bigtable에 매핑하는 가장 간단한 방법은 심볼 이름과 날짜 (매우 큰 시계열을 반환 할 수 있습니다. 백만 이상의 데이터 포인트가 들리지 않았 음)입니다. 그들의 설명을 읽는 것으로부터,이 시스템에 여러 개의 키가 사용될 수있는 것처럼 보입니다. 나는 또한 10 진수가 키의 좋은 후보가 아니라고 가정하고있다.

이러한 시스템 중 일부 (예 : Cassandra)는 범위 쿼리를 수행 할 수 있다고 주장합니다. MSFT에 대한 모든 값을 오전 11 시부 터 오후 1시 30 분까지 주어진 날 동안 효율적으로 쿼리 할 수 ​​있습니까?

주어진 하루 동안 모든 심볼을 검색하고 $ 10 ~ $ 10.25 사이의 가격을 가진 모든 심볼을 요청하려면 (그래서 값을 검색하고 결과로 리턴 된 키를 원하십니까?)

두 번 시리즈를 가져와 다른 하나를 뺀 다음 두 번 시리즈와 그 결과를 반환하려면 자체 프로그램에서 논리를 수행해야합니까?

관련 논문을 읽는다면 이러한 시스템이 거대한 시계열 시스템에 적합하지 않다는 것을 알 수 있습니다. 그러나 구글 맵과 같은 시스템이 그것들을 기반으로한다면, 나는 시계열이 잘 작동해야한다고 생각한다. 예를 들어, 시간을 x 축으로, y 축으로 가격을, 그리고 명명 된 위치로 기호를 생각해보십시오. 갑자기 큰 테이블이 시계열에 대한 이상적인 저장소 여야합니다 (전체 지구를 저장하고 검색 할 수 있다면 , 확대 및 주석, 주식 시장 데이터는 사소한 것이어야 함).

전문가가 올바른 방향으로 나를 가리키거나 오해를 해결할 수 있습니까?

감사


'같은 산 앞에 서있다. cassandra의 가장 큰 문제점은 결과 집합에서 스트림을 얻을 수 없다는 것입니다 (예 : 반복자 형식).

나는 문서와 그물을 위아래로보고있다. 그러나 아무것도 아니다.

나는 모든 키를 가져올 수없고 수십억 개의 행이 이것을 불가능하게하므로 행을 가져올 수 없습니다.



나는 아직 전문가는 아니지만, 나는 며칠 동안 카산드라와 놀았으며, 나는 당신을 위해 몇 가지 대답을 가지고있다 :

  1. 데이터 양에 대해서는 걱정하지 마십시오. 대형 하드웨어 클러스터의 경우 $ $$가 있으면 Cassandra와 같은 시스템과 관련이 없습니다.

이러한 시스템 중 일부 (예 : Cassandra)는 범위 쿼리를 수행 할 수 있다고 주장합니다. MSFT에 대한 모든 값을 오전 11 시부 터 오후 1시 30 분까지 주어진 날 동안 효율적으로 쿼리 할 수 ​​있습니까?

카산드라는 키 작업 방법을 알고있을 때 매우 유용합니다. 키를 빠르게 빠르게 돌릴 수 있습니다. 따라서 오전 11시에서 오후 1시 30 분 사이에 MSFT를 검색하려면 다음과 같이 행을 입력해야합니다.

MSFT-timestamp, GOOG-timestamp, ..etc 그런 다음 Cassandra에게 MSFT로 시작하는 모든 키를 찾고 지금 MSFT로 끝내려면 + 1 시간을 말하도록 할 수 있습니다.

주어진 하루 동안 모든 심볼을 검색하고 $ 10 ~ $ 10.25 사이의 가격을 가진 모든 심볼을 요청하려면 (그래서 값을 검색하고 결과로 리턴 된 키를 원하십니까?)

나는 전문가는 아니지만, 지금까지 나는 카산드라가 가치로 검색하지 않는다는 것을 깨달았습니다. 따라서 위와 같은 작업을 수행하려는 경우이 문제를 해결하기 위해 다른 테이블을 만들고 케이스에 맞게 스키마를 디자인해야합니다. 그러나 그것은 위에서 설명한 것과 크게 다르지 않을 것입니다. 키와 열의 이름을 지정하는 것이 전부입니다. 카산드라는 그들을 매우 빨리 찾을 수 있습니다!

두 번 시리즈를 가져와 다른 하나를 뺀 다음 두 번 시리즈와 그 결과를 반환하려면 자체 프로그램에서 논리를 수행해야합니까?

맞습니다. 모든 논리는 프로그램 내에서 수행됩니다. 이것은 MySQL이 아닙니다. 이것은 단지 스토리지 엔진입니다. (그러나 나는 다음 버전이 이러한 종류의 것들을 제공 할 것이라고 확신한다)

기억해주십시오. 나는이 점에서 초심자이며, 내가 틀렸다면 나를 고쳐 주셔도됩니다.


존경하는 누군가가 오픈 타임 시리즈 데이터베이스를 추천했습니다. 특히, 그 스키마는 그가 본 것 중 가장 좋았습니다.

http://opentsdb.net/


비슷한 요구 사항을 정기적으로 겪고 있으며 Zabbix를 사용하여 이러한 유형의 데이터를 수집하고 저장하기 시작했습니다. Zabbix에는 자체 그래픽 기능이 있지만 Zabbix의 데이터베이스에서 데이터를 추출하여 원하는대로 처리 할 수 ​​있습니다. 아직 Zabbix를 체크 아웃하지 않았다면 시간을 할애 할 가치가 있습니다.





cassandra finance hbase bigtable time-series