我很新的大數據領域,目前正在通過一個基本決定。卡桑德拉查詢的靈活性
對於一個研究項目,我需要將每分鐘數百萬條日誌條目存儲到基於Cassandra的數據中心,這很好。 (單個數據中心,4個節點)
Log Entry
------------------------------------------------------------------
| Timestamp | IP1 | IP2 ...
------------------------------------------------------------------
| 2015-01-01 01:05:01 | 10.10.10.1 | 192.10.10.1 ...
------------------------------------------------------------------
每個日誌條目都有一個特定的時間戳。日誌條目應首先在不同時間範圍內查詢。按照推薦,我開始以大排方式「模擬我的查詢」。
Basic C* Schema
------------------------------------------------------------------
| row key | column key a | column key b ...
------------------------------------------------------------------
| 2015-01-01 01:05 | 2015-01-01 01:05:01 | 2015-01-01 01:05:23
------------------------------------------------------------------
附加細節: 列鍵是時間戳+ UUID,是唯一的,以避免重印的組合物; 特定時間的日誌條目通過其相同的分區鍵存儲在節點附近;
因此,日誌條目以每行的短時間間隔存儲。例如2015-01-01 01:05
的每個日誌條目的精度爲一分鐘。查詢實際上並不是帶有<
運算符的範圍查詢,而是將條目選作指定分鐘的塊。
基於範圍的查詢成功的體面響應時間對我來說很好。
問題: 在我們想通過查詢,這主要集中在IP
領域獲得額外信息的下一個步驟。例如:選擇所有具有IP1=xx.xx.xx.xx
和IP2=yy.yy.yy.yy
的條目。
因此很顯然,當前的模型對於其他以IP爲焦點的CQL查詢來說很不可用。所以問題不是找到可能的解決方案,而是可能的技術的各種選擇,這可能是一種可能的解決方案:
- 嘗試解決獨立C *解決方案的問題。 (生成的第二模型,並在不同的形狀給予相同的數據)
- 選擇火花等其他技術...
- 轉爲HDFS/Hadoop的 - 卡桑德拉/ Hadoop的溶液...
- 等
由於缺乏這方面的知識,很難找到我應該採取的最佳方式。特別是有人認爲集羣計算框架的使用是一個過度的解決方案。
建議/建議是無關緊要的,但很難投票結束一個制定良好的問題。 – maasg