Я пытаюсь извлечь данные из таблицы как часть задания по миграции.
Схема выглядит следующим образом:
CREATE TABLE IF NOT EXISTS ${keyspace}.entries (
username text,
entry_type int,
entry_id text,
PRIMARY KEY ((username, entry_type), entry_id)
);
Для запроса таблицы нам нужен раздел ключи, первая часть первичного ключа. Следовательно, если мы знаем username
и entry_type
, мы можем запросить таблицу.
В этом случае username
может быть любым, но entry_type
является целым числом в диапазоне 0 -9.
При переносе извлечения мы повторяем таблицу 10 раз для каждого имени пользователя, чтобы убедиться, что мы пробуем все версии entry_type
.
Мы больше не можем найти какие-либо записи, поскольку у нас есть исчерпал наш список имен пользователей. Но наш nodetool tablestats
сообщает, что в таблице еще есть данные, даже гигабайты. Следовательно, мы предполагаем, что таблица не пуста.
Но я не могу найти способ осмотреть таблицу, чтобы выяснить, какие имена пользователей остаются в таблице. Если бы я мог проверить это, я мог бы добавить имена пользователей, оставленные в таблице, к нашему заданию по извлечению, и в итоге мы могли бы истощить таблицу. Но я не могу просто запросить таблицу следующим образом:
SELECT * FROM ${keyspace}.entries LIMIT 1
, поскольку cassandra требует, чтобы ключи разделения делали содержательные запросы.
Что я могу сделать, чтобы выяснить, что осталось в нашей таблице?