Я пытаюсь понять механизм хранения Cassandra, когда дело доходит до составных столбцов. К сожалению, документация, которую я прочитал до сих пор, содержит ошибки и оставляет меня немного пустым.
Во-первых, терминология.
Составные столбцы содержат полностью денормализованные широкие строки с использованием составных первичных ключей.
Это кажется вводящим в заблуждение, потому что, насколько мне известно, составные столбцы могут использоваться для составных ключей, а также просто как составные столбцы отдельно от ключей.
1: Как реализованы составные ключи и имена столбцов? Каждый пример CQL, который я могу найти, показывает только составные ключи в виде столбцов, а не простые составные столбцы.
Допустим, у нас есть столбцы «a», «b», «c», «d» в качестве первичного составного ключа + столбцы «e», «f». Я знаю, что «a» будет ключом строки и раздела.
Допустим, следующие данные:
a b c d e f
1a 1b 1c 1d e1 f1
1a 1b 1c 2d e1 f2
1a 1b 1c 2d e2 f3
2a 2b 2c 2d e2 f4
2: Как это хранится под капотом? Я полагаю, что настоящий вопрос здесь заключается в том, как отображаются «b», «c», «d», поскольку столбцы по определению не являются иерархическими.
3: В документации, которую я прочитал, говорится, что компактное хранилище больше не следует использовать. Но что, если столбцы, не являющиеся первичными ключами, не нужно добавлять... в чем тогда причина не использовать их?