Вторичные индексы в Кассандре под RandomPartitioner

Я исследую возможность использования вторичной индексации в Кассандре с использованием Aquiles. Я знаю для первичного индекса (ключа), я должен использовать OrderPreservingPartitioner для запроса. Сначала я подумал, что для вторичных индексов такого ограничения нет, но заметил, что ключ запуска является частью GetIndexedSlicesCommand. Означает ли это, что в RandomPartitioner эта команда не работает?

1 ответ

Решение

Вам не нужен OrderPreservingPartitioner для запроса по ключу строки, он необходим только в том случае, если вы хотите получить значимый диапазон строк по их ключу, например, "все строки с ключом от 5 до 9". (Обратите внимание, что вместо этого можно и нужно почти всегда использовать RandomPartitioner.)

Ключ запуска для get_indexed_slices ведет себя так же, как и для get_range_slices. То есть, это не очень важно для изучения диапазона строк между двумя ключами при использовании RandomPartitioner, но это полезно для пролистывания большого количества строк. Есть даже запись FAQ по теме. По сути, если вы собираетесь получить массу результатов от вызова get_indexed_slices, вам не нужно извлекать их все сразу, вы хотите получить чанк (из 10, 100 или 1000, в зависимости от размера) за раз, а затем установите start_key на последний ключ, который вы видели в предыдущем блоке, чтобы получить следующий блок.

Другие вопросы по тегам