Как получить оценки количества строк в Cassandra с помощью драйвера клиента Java - PullRequest
0 голосов
/ 20 декабря 2018

Если единственное, что у меня есть, это com.datastax.driver.core.Session, есть ли способ получить приблизительную оценку количества строк в таблице Cassandra с удаленного сервера?Выполнение подсчета слишком дорого.Я понимаю, что могу получить оценку количества разделов через JMX, но я бы предпочел не предполагать, JMX был настроен .(Я думаю, что результат должен быть умножен на количество узлов и разделен на коэффициент репликации.) В идеале оценка должна включать и ключи кластера, но все на столе.

Я также вижу, что есть size_estimatesтаблица в системном пространстве ключей , но я не вижу много документации по ней.Периодически обновляется или админам нужно запускать что-то вроде nodetool flush?

Помимо того, что не включены ключи кластера, что плохого в том, чтобы использовать это как очень приблизительную оценку?

select sum(partitions_count)
from system.size_estimates
where keyspace_name='keyspace' and table_name='table';

1 Ответ

0 голосов
/ 21 декабря 2018

Оценки размера обновляются по таймеру каждые 5 минут (переопределяются с помощью -Dcassandra.size_recorder_interval).

Это очень грубая оценка, но вы могли бы из маркера ключа раздела найти диапазон, к которому он принадлежитвнутри и на каждой реплике извлекают из этой таблицы (ее локальная репликация и уникальна для каждого узла, а не глобального) и делят размер и количество разделов для очень неопределенной приблизительной оценки размера раздела.Существует очень много предположений и усреднений, которые встречаются на этом пути даже до записи в эту таблицу.Кассандра ошибается с точки зрения эффективности за счет точности и больше подходит для общего использования, такого как считывание искровых масс, поэтому принимайте это с недоверием.

Это бесполезно сейчас, но в будущем после замораживания 4.0 будет многоновые виртуальные таблицы, в том числе, возможно, для получения точной статистики по конкретным и диапазонам разделов по требованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...