我正在研究用於存儲時間序列的卡桑德拉數據模型(我是卡桑德拉的新手)。 我有兩個應用程序:盤中股票數據和傳感器數據。卡桑德拉時間序列數據模型
股票數據將被保存,時間分辨率爲一分鐘。 七個數據字段構建一個時間範圍: 符號,日期時間,打開,高,低,關閉,卷
我將主要通過符號和日期查詢數據。例如根據日期時間訂購2013-01-01和2013-01-31之間的所有AAPL數據。 cassandra查詢的建議是查詢整個列。所以你可以用Open,High,Low,Close,Volume鍵創建五行。併爲每個符號和分鐘一個自己的列。例如。 「AAPL:2013-01-04T130400Z」。 這將導致一個包含五行和n * NT列的表,其中n =符號數,nT =分鐘數。 大部分時間我會查詢日期範圍。即一天中的所有分鐘。因此,我可以重新排列數據以使列名爲「AAPL:2013-01-04」和行:OpenT130400Z,HighT130400Z,LowT130400Z,CloseT130400Z,VolumeT130400Z。 這將導致一個包含n * nD列(n:符號數量,nD:天數)和5 * nM行(nM:每分鐘數/條目數)的表格。
綜上所述:我有專欄,它將一整天的信息保存爲一個符號。
我已經找到了一個說明如何處理時間序列數據在這裏卡桑德拉http://www.datastax.com/dev/blog/advanced-time-series-with-cassandra 但我真的不明白,如果他們使用小時(1332960000)作爲列名或行鍵!? 我明白他們使用小時作爲行鍵,並將小時間步長作爲列。所以他們會有一個固定的列號。但是這在閱讀上會有缺點,因爲我必須對鍵進行範圍查詢!我對嗎?
第二個問題: 如果我的傳感器數據比1分鐘的庫存數據要細得多(假設我必須以微秒的分辨率保存時間步數),我該如何處理? 如果我使用列來保存傳感器通道和小時的組合,以及自上一小時以來的行數微秒,這將導致3,600,000,000行和n * nH列(n:傳感器數量,nH:小時數)。 我無法使用自上個小時以來的列的微秒數,因爲我有36億個點數高於允許的20億列數量。
我知道了嗎? 您對這個問題有什麼看法?如何解決它?
謝謝!
最佳, 馬爾特
此答案不清楚且不完整 – Oleg 2017-05-09 20:15:04