2015-11-07 23 views
0

假設我有2行時間序列數據具有與主鍵完全相同的時間戳等。唯一的區別是其餘的數據是不同的。 因此,如果組1具有[時間戳,其他鍵...],value_col1,value_col2,則組2的value_col1和value_col2將具有與組1不同的值。Cassandra:使用同一組主鍵值插入包含不同數據的多行

現在,如果我將這些組合插入或使用單獨的插入查詢很快,我在數據庫中看到的結果可能會有些不一致:可能是來自set 1的value_col1與最後一行中的value_col2的值相結合。

我花了整整一個晚上才發現這實際上是一個錯誤(或者也許是打算的行爲......)現在我的解決方法是使用稍微增加的第2組時間戳。在很多情況下,症狀不會被注意到案件,但在我的情況col1是col2的部分解碼密鑰,那麼我有一個問題! 有沒有人有相同的問題或知道問題的實際所在?

我在使用cassandra 2.0.14的nodejs 5.0.0上使用cassandra-node驅動器。

回答

0

你應該定義你的Cassandra模式以避免競爭條件。

如果您在同一時刻提供具有相同分區和集羣鍵的不同數據,將無法定義哪些應保留。

如果要保留2行,應該使用uuidtimeuuid數據類型。

看到司機的NodeJS文檔的詳細信息:http://docs.datastax.com/en/developer/nodejs-driver/2.2/nodejs-driver/reference/uuids-timeuuids.html

+0

Jorgebg你好,對我來說,它真的並不重要兩套得到插入。 Imho,cassandra/node-driver並沒有通過從2組數據中隨機選擇列來正確處理它,它應該選擇整個第一組或者整個第二組。我知道這對大多數用戶來說可能不是什麼大不了的事情,但是當涉及到加密時,我不能將這些數據搞亂。無論如何,解決方法很容易實現。 – rq4t

相關問題