#cassandra
#cassandra
Вопрос:
Я понимаю, что для Cassandra данные сортируются по ключу кластера только по ключу раздела.
Мне интересно, есть ли у Cassandra оптимизация при глобальных проверках. Допустим, что ключ кластера является целочисленным значением, если я хочу выполнить поиск по всем данным в кластере Cassandra, чтобы найти коллекции со значениями < 3
. Механизму запросов Cassandra не нужно будет продолжать просмотр коллекций в разделе после обнаружения числа >= 3
. Существуют ли API (такие как CDK), предлагаемые Cassandra, которые осуществляют эти оптимизации?
Ответ №1:
Для полного сканирования таблицы не доступна встроенная оптимизация CQL — они всегда будут плохими, поскольку Cassandra оптимизирована для рабочих нагрузок OLTP.
Однако есть оптимизация, выполняемая с помощью spark-cassandra-connector для аналитических нагрузок (OLAP) с помощью Spark.
OLTP и OLAP — разные миры, поэтому вы должны использовать правильный инструмент для работы. Приветствия!
Ответ №2:
Запрос по ключу раздела — лучший способ запроса в Cassandra. Если вы хотите использовать ключ кластеризации для запроса, вы можете использовать опцию «РАЗРЕШИТЬ ФИЛЬТРАЦИЮ». Но рекомендуется не использовать «РАЗРЕШИТЬ ФИЛЬТРАЦИЮ» в рабочей среде.
Для сканирования полной таблицы и фильтрации некоторых данных вы можете использовать spark для выполнения своей работы. Зачем беспокоиться о C *, для которого он не предназначен, лучше воспользоваться помощью своих друзей (в данном случае spark)