我需要在Apache Cassandra中建模和存儲財務數據。Apache Cassandra中的財務數據分析建模?
數據按日期和業務單位進行訪問,所以目前我的模型使用日期和業務單位ID作爲複合行鍵。
我想使用寬行,這樣我就可以在一個查詢中將數字拉到一整天(和單位)。
對於任何給定的一天,對於特定的業務單位,我需要存儲一系列越來越精細故障的,像這樣(忽略的人物,他們是純粹的舉例):
| rowkey | USD | GBP | JPY | etc ....
|-------------|-------|------|------|----------
| 31122014-1 | 112 | 3006 | 234 |
| 31122014-2 | 3378 | -12.4| 998 |
| 31122014-3 | -456 | 2034 | 127 |
然後一個更詳細的分類,使用化合物列:
| rowkey | USD-D1 | USD-D2 | GBP-D1 | GBP-D2 | etc ....
|-------------|--------|--------|--------|------------------
| 31122014-1 | 65 | 54 | 175 | 29 |
| 31122014-2 | 2003 | -6.4 | 603 | 349 |
| 31122014-3 | -230 | -198 | -53 | 217 |
然後一個更詳細的分類:
| rowkey | USD-D1-X1 | USD-D1-X2 | USD-D1-X3 | USD-D2-X1 | etc ....
|-------------|-----------|-----------|-----------|-----------|-------
| 31122014-1 | 23 | 16 | 98 | 29 |
| 31122014-2 | 389 | -3.2 | 237 | 119 |
| 31122014-3 | -105 | -67 | -28 | 178 |
這是使用三個獨立的列系列對這些故障進行建模的最佳方法(如此處所示)?
或者只存儲最細粒度的細分,然後使用某種形式的列聚合(如果存在)來提取不太細化的數據集會更有意義嗎?
我知道卡桑德拉的聚合能力是有限/不存在的,我沒有在API中找到任何東西來建議我如何聚合這樣的列。
我知道我可以在應用層進行聚合,但問題是關於檢索不必要的數據,移動計算開銷和維護額外的列族之間的權衡。我希望Cassandra提供了一些在數據層解決這個問題的方法。
卡桑德拉不支持那種你問及可能永遠聚合的將。然而,有完整的分析包可以與Cassandra集成以提供這些功能。您最好的選擇是DataStax Enterprise,使用他們的Hadoop/Spark集成,或者搞清楚如何在Cassandra集羣上自己使用OSS Spark-Cassandra連接器。 – mildewey 2015-02-10 23:22:36