3

複合列を作成するときに使用されるタイプを理解しようとしています。

CQL3(cqlsh経由)を使用してCFを作成し、次にCLIを使用してdescribeコマンドを発行しています。次のようにソートされた列のタイプ:... CompositeType(Type1、Type2、...)は、私が期待しているものではありません。

Cassandra1.1.6を使用しています。

CREATE TABLE CompKeyTest1 (
             KeyA int,
             KeyB int,
             KeyC int,
             MyData varchar,
             PRIMARY KEY (KeyA, KeyB, KeyC)
           );

返されるCompositeTypeは

CompositeType(Int32,Int32,UTF8)

(Int32、Int32、Int32)ではないでしょうか?

CREATE TABLE CompKeyTest2 (
             KeyA int,
             KeyB varchar,
             KeyC int,
             MyData varchar,
             PRIMARY KEY (KeyA, KeyB, KeyC)
           );

返されるCompositeTypeは

CompositeType(UTF8,Int32,UTF8)

テーブルを定義するときに使用するタイプと同じではないのはなぜですか?タイプの割り当てに基本的なものが欠けている可能性があります...

ありがとう!

4

1 に答える 1

4

複合列名は、主キー2 ... nのと、保存されている非主キー列の名前で構成されます。

(したがって、キー以外のフィールドが5つある場合は、そのような列が5つあり、それらの列名は、最後に構成された値(キー以外のフィールド名)のみが異なります。)

したがって、どちらの例でも、複合列はKeyB、KeyCのと、格納されている列の名前"MyData"(どちらの場合も)で構成されています。だからあなたはそれらCompositeTypesが返されるのを見ているのです。

(ところで、主キーの最初のキーはパーティションキーであり、その値は行キーとしてのみ使用されます(Cassandraに精通している場合)。これは、複合列名の一部としては使用されません。 。)

于 2012-11-04T16:11:22.350 に答える