Кассандра: Семейства столбцов для сложных запросов?

Каждый источник говорит мне, что поддержка сложных запросов в Кассандре сложна, и вам обычно нужно создавать новые Column Family для поддержки конкретных запросов (например, JOINS в реляционной базе данных).

Я не понимаю, зачем вам на самом деле нужно другое семейство столбцов для запроса.

Пример этого был продемонстрирован IBM здесь: http://www.ibm.com/developerworks/library/os-apache-cassandra/

Система имеет Books со следующими столбцами: Author,Price, tag1, tag2, tag..,

Если я хочу выполнить запрос типа "Получить всех авторов, которые написали книги с тегом sci-fi", они рекомендуют создать семейство столбцов под названием TagsToAuthor, Зачем это нужно? Я считаю, что вы можете сделать следующие 2 решения без создания нового семейства столбцов:

  • Создать Tag семейство столбцов, с столбцами: Book1, Book2, Book..., Author1, Author2, Author...
  • Создать Tag семейство колонок и создать BookTag семейство столбцов, содержащее столбцы: book_id & tag_id, Хотя Cassandra не имеет функции соединения, вы можете просто получить идентификатор тега из Tag семейство столбцов, а затем получить список book_id, выполнив запрос BookTagзатем использовать эти идентификаторы для запроса Book, Как в обычной реляционной базе данных.

Каковы недостатки этих решений?

0 ответов

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