Подтвердить что ты не робот

Внутренняя регистрация в cassandra CQL

Как написать подзапросы/вложенные запросы в cassandra. Является ли это средство предоставлено в CQL?

Пример, который я пробовал:

cqlsh:testdb> select itemname from item where itemid = (select itemid from orders where customerid=1);

Он просто выдает следующую ошибку -

Bad Request: line 1:87 no viable alternative at input ';'
4b9b3361

Ответ 1

Из-за своей распределенной природы Cassandra не поддерживает объединения стиля RDBMS. У вас есть несколько вариантов, когда вы хотите что-то вроде соединения.

Один вариант выполняет отдельные запросы, а затем ваше приложение присоединяется к самим данным. Это имеет смысл, если данные относительно малы, и вам нужно выполнить лишь небольшое количество запросов. Основываясь на приведенном выше примере, это, вероятно, будет хорошим решением для вас.

Для более сложных объединений обычной стратегией является денормализация данных и сохранение материализованного представления соединения. Преимущество этого заключается в том, что выборка этих данных будет намного быстрее, чем при необходимости встраивать ее в приложение каждый раз, когда вам это нужно. Стоимость теперь у вас есть несколько мест, где вы храните одни и те же данные, и вам нужно будет синхронизировать их все. Вы можете обновить все свои представления, когда новые данные поступают в систему, или вы можете иметь периодическое пакетное задание, которое перестраивает их.

Вы можете найти эту статью полезной: Вам действительно нужен SQL, чтобы все это сделать в Кассандре? Его немного устарело, но его принципы все еще применяются.