簡體   English   中英

Cassandra表中快速估計的行數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM