Как упоминал Крис, вы можете получить приблизительное количество строк с помощью метрик JMX, и Spark может сделать более точный расчет.Если вам нужно сделать это через Java-клиент, вам нужно будет выполнить операцию, аналогичную Spark, - выполнить подсчет строк по диапазонам токенов - в этом случае вы выполняете запросы, которые выполняются отдельными хостами, безПерегрузка координатора, как это происходит, если вы делаете наивный select * from table
.Запрос выглядит так ( это псевдокод, а не реальный запрос! ) SELECT columns FROM table WHERE token(pk) > token_range.begin AND token(pk) <= token_range.end
.Уловка, которая должна быть сделана здесь, состоит в том, что вам нужно явно установить ключ маршрутизации, так как политика балансировки нагрузки с учетом токенов не может автоматически извлечь его из этого запроса.
Полный исходный код довольно длинный, чтобы включать его здесь, но вы можете найти его здесь .