Привет у меня есть следующая таблица в Кассандре:
* ---------------------------------------------------------------------------
* Note:
* 'curr_pos' is always fixed, so we can put it into cluster key and order
* In each crawler iteration 'prev_pos', 'domain_*' are updated
* -------------------------------------------------------------------------
* Patterns:
* <domain_name3rd>.<domain_name2nd>.<domain_name1st>
* --------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS lp_registry.keyword_position (
engine text,
keyword text,
updated timestamp,
domain_name1st text,
domain_name2nd text,
domain_name3rd text,
prev_pos int,
curr_pos int,
PRIMARY KEY ((engine, keyword), curr_pos)
);
В приложении верхнего уровня у меня есть списки с сотнями ключевых слов.
Что мне нужно?
Для фиксированного списка двигателей и ключевых слов я хочу выбрать все домены и их положение.
Обновить: Результатом, предоставляемым приложением, будет матрица NxM для каждого механизма с N определяемыми пользователем ключевыми словами и M определяемыми пользователем доменами. В каждой ячейке будет позиция домена для конкретного ключевого слова.
Что меня смущает?
Мне нужно опубликовать N выбор в зависимости от размера списка с ключевыми словами. Другими словами, мне нужно перебирать ключевые слова в приложении и в каждой итерации отправлять select в DB.
Я ожидаю, что N не будет больше 100, но все же я думаю, что это слишком много запросов.
Мой вопрос
Могу ли я упаковать эти выборки в одну партию? Как?
Это на самом деле не проблема пакетного запроса, а проблема дизайна вашей таблицы.
Если запрос, который вы описываете, является «базовым» запросом вашего приложения, то вы должны разработать таблицу таким образом, чтобы это был один запрос, то есть. engine
а также keyword
должны быть ключи кластеризации, а не ключи разделов.
Чтобы дать более конкретный совет: как получить список двигателей и ключевых слов, есть ли некоторые, которые логически группируют их? Это может быть ключом раздела вашей таблицы.
Других решений пока нет …