2016-02-24 117 views
1

我有一個Cassandra集羣,並運行5個節點。Cassandra驗證批量導入

我創建了一個複製_因子= 3的密鑰空間,並在其中創建了一個表。

我用cqlsh將CSV批量加載到我的表中。

我得到這個消息加載後:

355637 rows imported from 1 file 

然而,當我連接到集羣cqlsh和執行

select count(*) from my_keyspaces.my_table; 

我只得到

count 
-------- 
122715 

的方式我架構設置,實際上只有6行(每個設備一個),使用Cassandra的寬行。

但是,cqlsh將這些顯示爲行以使生活更輕鬆。

我的問題是,爲什麼count(*)不能返回一個準確的數字,此外,它爲什麼會返回非常接近我預期數量的1/3

回答

2

有一個很好的機會,你意外插入。如果CSV中有多個具有相同主鍵的行,則會發生這種情況。

+1

感嘆,這是正確的。我以爲已經完成了我的應有的選擇,但顯然不是! – dacox

0

除了@brandon回覆(在大多數情況下都是這樣),您還可以在查詢中設置上限,如cf limit 1000000中的select count(*)或使用nodetool cfstats獲取更多見解。