В Кассандре каждая строка (адресуемая ключом) содержит один или несколько «столбцов». Столбцы сами являются парами ключ-значение. Имена столбцов не должны быть предопределены, то есть структура не является фиксированной. Столбцы в строке хранятся в отсортированном порядке в соответствии с их ключами (именами).
В некоторых случаях у вас может быть очень большое количество столбцов в строке (например, в качестве индекса для включения определенных типов запросов). Cassandra может эффективно обрабатывать такие большие структуры, и вы можете получать определенные диапазоны столбцов.
Существует еще один уровень структуры (редко используемый), называемый супер-столбцами, где столбец содержит вложенные (под) столбцы.
Вы можете думать об общей структуре как о вложенной хэш-таблице / словаре с 2 или 3 уровнями ключа.
Обычное семейство столбцов:
row
col col col ...
val val val ...
Семейство суперколонок:
row
supercol supercol ...
(sub)col (sub)col ... (sub)col (sub)col ...
val val ... val val ...
Существуют также структуры более высокого уровня - семейства столбцов и пространства ключей - которые можно использовать для разделения или группировки ваших данных.
См. Также этот вопрос: Кассандра: Что такое подколонка
Или ссылки для моделирования данных из http://wiki.apache.org/cassandra/ArticlesAndPresentations
Re: сравнение с документно-ориентированными базами данных - последние обычно вставляют целые документы (обычно JSON), тогда как в Cassandra вы можете обращаться к отдельным столбцам или суперколонкам и обновлять их по отдельности, т. Е. Они работают с разным уровнем детализации. Каждый столбец имеет свою собственную временную метку / версию (используется для согласования обновлений в распределенном кластере).
Значения столбца Cassandra представляют собой просто байты, но могут быть напечатаны как ASCII, текст UTF8, числа, даты и т. Д.
Конечно, вы можете использовать Cassandra в качестве примитивного хранилища документов, вставляя столбцы, содержащие JSON, - но вы не получите все функции реального ориентированного на документы хранилища.