[英]Fast estimated count of rows in Cassandra table
我很驚訝以前沒有提出這個問題。
假設我們在cassandra中有一個巨大的表,我們需要在其中獲得估計的行數(不精確,只是近似)。
顯然, select count(*) from table
簡單select count(*) from table
效率不高,可能需要很長時間。 我們需要一些又臟又快的東西。
Datastax博客建議如下 :
我不關心確切的數字,我可以估算一下嗎?
因為Cassandra知道每個SSTable中有多少行,所以可以得到估計值。 'nodetool cfstats'輸出告訴您'鍵數(估計)'行中的這些計數。 這是每個SStable中行的總和(由於使用了索引而再次近似,但默認情況下不能超過128)。
我的問題:我們可以使用DataStax Enterprise Java驅動程序執行相同的操作嗎?
PS我不能改變表結構或其他什么。 考慮我使用遺留架構。 換句話說,我對添加計數器或其他特殊字段等變通方法不感興趣。
Cassandra也通過JMX暴露了近似計數(從“nodetool cfstats”獲得)。 代碼可以掛鈎到此JMX度量標准,以編程方式獲取計數。
EstimatedPartitionCount Gauge表中的大致鍵數。
{
"type": "READ",
"mbean": "org.apache.cassandra.metrics:type=Table,keyspace=*,scope=*,name=*",
"attribute": "Count"
}
以下是所有公開的JMX指標的鏈接 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.