0

私は、列指向データベースについて説明し、概念を非常によく説明しているビデオを見ていました。しかし、私がビデオから得られなかったのは、列指向データベースがどのようにデータをディスクに格納するのかということです。また

Cassandra はどのようにデータをディスクに保存しますか? 同様の質問を読みました:なぜ多くの人が Cassandra を列指向データベースと呼ぶのですか? 、しかし、受け入れられた回答または回答は、データがディスクにどのように保存されているかを示していません。

利点と、列指向データベースの正確な内容を理解しています。各列のデータは、ディスク内の個別のファイルに保存されます。以下のようなものを想定しています。たとえば、テーブル名:CarOwnerと主キー:Id

Row Oriented: Each record is stored together in the disk, probably in the same block.
Id  |   Name   |   Car   |   Age 
----------------------------------
1   |   John   |   BMW   | 34
2   |   Terry  |   Audi  | 31
3   |   Josh   |   Tesla | 24
4   |   Dan    |   Ford  | 50

I 行ストア ルックアップは簡単です。フィルターに一致するように各クロックでスキャンを実行するか、クエリキーがインデックス化されている場合は、インデックスを参照した後に対応するブロックを取得できます。

ディスク内の列指向構造: 「仮定」

Name File:- say starts at block block1 in disk
John
Terry
Josh
Dan

Similarly, Car and Age are stored in separate files.

では、特定の ID の名前と車を取得したい場合、次のようなファイルを維持して参照する必要がありますか?

1 : {Name: block1-offset1, Car: block4-offset1,...}
2 : {Name: block1-offset4, Car: block4-offset3,...}
3 : {Name: block1-offset7, Car: block4-offset5,...}

これは、列ストアでのキーのルックアップの仕組みですか? それが正しい場合、他の保存方法は何ですか?

Cassandra はどのようにデータを保存しますか? 列指向DBにも分類されるためです。

4

1 に答える 1