0

http://www.datastax.com/documentation/cassandra/1.2/cassandra/cql_reference/create_table_r.htmlの Datastax サイトのドキュメントを読んでいると、 「複合パーティション キーを使用すると、Cassandra は列を処理します。ネストされた括弧内にパーティション キーとして格納し、行の列を複数のノードに格納します。」

与えられた例は次のとおりです。

特定の行の連続した「列」として実際にディスクに格納される方法に関して、クラスター列 (この場合は color と short_hair) がどのように機能するかを理解しています。私が理解していないのは、「...行の列を複数のノードに格納する」という行です。これは正しいですか?

特定の block_id と品種について、この複合キーは「block_id + 品種」のようなパーティション キーを作成するだけではありません。この場合、列/クラスターは同じ行にあり、その物理的な場所はパーティション キーによって決定されます ( block_id + 品種) ?

それとも、主キーが 2 つのフィールドに基づいているため、この行で何らかの分割が行われているのでしょうか?

編集:以下のリチャードの答えはおそらく正しいと思いますが、私が投稿した最初の引用を強制する1.2のDatastaxドキュメントでもこれに出くわしました:

「複合パーティション キー - テーブルの PRIMARY KEY 定義のネストされた括弧で宣言されたパーティション キーを使用して、行の列を複数のノードに格納します。」

なぜ複数のパーティション キー* s * を使用すると言うのでしょうか... 私の知る限り、複合キーを構成するフィールドは唯一の行キーを構成し、それらはすべてキーの作成に使用されます。

次に、行の列を分割できると言いますこれは、(特定のパーティション キーを持つ) 単一の行が異なるノードでその列を分割できることを意味します。つまり、複合キーのフィールドは個別に処理されます。 .

Datastax のドキュメントと、それが実際に正しいかどうかについては、まだ少し混乱しています。

4

1 に答える 1

1

これは、同じ block_id を持つ行が異なるノードに格納されていることを意味していると思います。おっしゃる通り、パーティションキーは「block_id+breed」のようなものなので、block_idが同じでも品種が異なるカラムは、一般的に異なるノードに格納されます。ただし、block_id と品種が同じ列は同じノードに格納されます。

基本的に、パーティションを格納するノードは、パーティション キーのみの関数によって検索されます。複合であるかどうかにかかわらず、行を結合したり分割したりすることはできません。

于 2013-07-15T09:04:01.963 に答える