У Кассандрі кожен рядок (до якого звертається ключ) містить один або кілька "стовпців". Стовпці самі по собі є парами ключ-значення. Назви стовпців не потрібно задавати заздалегідь, тобто структура не є фіксованою. Стовпці в рядку зберігаються у відсортованому порядку відповідно до їх ключів (імен).
У деяких випадках у вас може бути дуже велика кількість стовпців підряд (наприклад, щоб діяти як індекс, щоб увімкнути певні типи запитів). Кассандра може ефективно обробляти такі великі структури, і ви можете отримувати певні діапазони колон.
Існує ще один рівень структури (не так часто вживаний), який називається супер-стовпцями, де стовпець містить вкладені (допоміжні) стовпці.
Ви можете уявити загальну структуру як вкладений хеш-таблицю / словник з 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
Щодо: порівняння з орієнтованими на документи базами даних - останні зазвичай вставляють цілі документи (як правило, JSON), тоді як у Кассандрі ви можете звертатися до окремих стовпців або суперколонок та оновлювати їх окремо, тобто вони працюють на різному рівні деталізації. Кожен стовпець має свою окрему позначку часу / версію (використовується для узгодження оновлень у розподіленому кластері).
Значення стовпця Кассандри - це просто байти, але їх можна ввести як ASCII, текст UTF8, числа, дати тощо.
Звичайно, ви можете використовувати Кассандру як примітивний сховище документів, вставляючи стовпці, що містять JSON - але ви не отримаєте всіх можливостей справжнього сховища, орієнтованого на документи.