複合列に関しては、Cassandraのストレージエンジンを理解しようとしています。残念ながら、これまで読んだドキュメントにはエラーが含まれており、少し空白のままになっています。
まず、用語。
複合列は、複合主キーを使用して完全に非正規化された幅の広い行で構成されます。
これは誤解を招くように思われます。なぜなら、AFAIKの複合列は複合キーに使用でき、キーとは別に単純に複合列としても使用できるからです。
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:私が読んだドキュメントには、コンパクトストレージはもう使用すべきではないと書かれています。しかし、非主キー列を追加する必要がない場合はどうなりますか...それを使用しない理由は何ですか?