Как построить динамический запрос в Кассандре? - PullRequest
0 голосов
/ 09 апреля 2019

По опыту форумов и немногих людей я понял, что Java Driver может помочь согласно следующему сообщению ..

Cassandra 3 Java Driver создает динамические запросы 1

Но есть ли способ построить запрос в Cassandra без использования Java-драйвера.К сожалению, никто не ответил на запрос здесь Работа с динамической строкой запроса в Кассандре .Взял это как шанс поднять это снова.

Спасибо, Прасад

1 Ответ

0 голосов
/ 09 апреля 2019

Здесь есть 2 аспекта:

  1. Самый простой - построение самого запроса - это можно сделать, просто конкатенируя строки, или используя QueryBuilder , как обсуждалось в первом вопросе.
  2. Самый сложный - как выполняется запрос. В Cassandra требуется, чтобы вы указали ключ раздела (как минимум) при выполнении запроса. В противном случае вы выполните полное сканирование таблицы, которое, скорее всего, закончится тайм-аутом чтения.

Чтобы смягчить вторую проблему, люди делают денормализацию и создают вспомогательные таблицы, где конкретное поле является ключом раздела. Но это не может быть сделано автоматически, поскольку вы можете закончить с очень искаженным распределением данных для определенных таблиц. Вторичные индексы также имеют ограничения и лучше всего работают с ключом раздела.

P.S. В DataStax Enterprise это можно немного ослабить, добавив в таблицу индекс DSE Search , но производительность будет несколько хуже, чем у чистой Кассандры.

...