#cassandra
#кассандра
Вопрос:
http://wiki.apache.org/cassandra/CassandraLimitations
Цитата: Cassandra имеет два уровня индексов: ключ и столбец. Но в семействах суперколонок существует третий уровень вложенных столбцов; они не индексируются, и любой запрос на вложенную колонку десериализует все вложенные столбцы в этой надколонке. Итак, вы хотите избежать модели данных, которая требует большого количества вложенных столбцов.
=> Что именно представляет собой вложенный столбец? Интересно, поиск термина в Google на самом деле не дает результатов. Я знаю концепции суперколонок, но не совсем ясно, к чему именно относится термин «вложенная колонка» (как он определяется):
Какая концепция правильная?
Первый:
ROW-KEY
SubCol SubCol
col col col val
val val col val
или
Второй:
ROW-KEY
Column Column
SubCol SubCol SubCol SubCol
val val val val
Кроме того, что есть что в определениях:
comparator = UTF8Type and
subcomparator = UTF8Type and
Это всего лишь вопрос определения.
Спасибо, Маркус
Ответ №1:
Родительским элементом стандартного столбца является его строка. Родительским элементом вложенного столбца является его надколонна. Помимо этого, они одинаковы — есть просто дополнительный уровень вложенности, хотя есть последствия для индексации и извлечения, как вы упомянули.
Больше информации на http://wiki.apache.org/cassandra/DataModel и http://arin.me/blog/wtf-is-a-supercolumn-cassandra-data-model
Обычное семейство столбцов:
row
col col col ...
val val val ...
Семейство суперколонок:
row
supercol supercol ...
(sub)col (sub)col ... (sub)col (sub)col ...
val val ... val val ...
Комментарии:
1. Спасибо!. Первую ссылку, которую я уже прочитал, прежде чем задавать здесь, но ваша диаграмма в несколько раз лучше описывает термины! (на веб-сайте cassandra у yonley есть эти примеры) но ваше определение абсолютно четкое. Если вы из команды cassandra, вы могли бы обновить это на сайте. Спасибо.
2. «WTF — это суперколоночка» должна быть избавлена от своих страданий. Я бы порекомендовал datastax.com/docs/0.8/data_model/index или сообщения Макса о моделировании данных (ссылки вверху wiki.apache.org/cassandra/ArticlesAndPresentations ).
Ответ №2:
comparator
Значение указывает, как будут отсортированы столбцы, когда они будут возвращены вам в запросе. Та же концепция применима к subcomparator
, но для суперколонок.
UTF8Type
относится к стандартам Unicode для символов.
- Источник: «Cassandra the Definitive Guide».