Это в значительной степени зависит от версии Cassandra, которую вы используете, поскольку Cassandra организует изменения данных между C * 2.2 и C * 3.0. Вы можете прочитать об этих изменениях здесь . До C * 3.0 SSTables состояли из ключей разделов и их ячеек; в 3.0 SSTables состоят из разделов и их строк (которые содержат ячейки).
Лучший способ выяснить, как организованы данные, - использовать такой инструмент, как sstabledump
(C * 3.0+) или sstable2json
, чтобы наблюдать за организацией данных. на диске после выполнения некоторых обновлений и сброса на диск.
Следующая статья дает обзор того, как использовать sstabledump.
Для предложенной схемы и вставки приведен пример того, как все выглядит:
[
{
"partition" : {
"key" : [ "1" ],
"position" : 0
},
"rows" : [
{
"type" : "row",
"position" : 32,
"liveness_info" : { "tstamp" : "2018-09-06T00:03:38.558182Z" },
"cells" : [
{ "name" : "c2", "value" : 2 },
{ "name" : "c3", "value" : 3 }
]
}
]
}
]
Как видите, данные организованы по разделам, а затем внутри раздела есть строки. В каждой строке находятся ячейки, каждая из которых представляет значение столбца.
Существуют также дополнительные метаданные, которые могут присутствовать на уровне раздела, строки и ячейки. Механизм хранения C * 3 также оптимизирует пространство, не сохраняя имена каждого столбца в каждой ячейке (где это делал C * 2).