4

CQLDatastax Java ドライバーを使用することを考えているので、最近非常に興味を持ち始めました。以前は、column familyテーブルの代わりに使用していて、Astyanax ドライバーを使用していました。ここで何かを明確にする必要があります-

実稼働クラスターで以下の列ファミリー定義を使用しています。また、列ファミリー スキーマを実際に変更することなく、任意の列 (その値を含む) をオンザフライで挿入できます。

create column family FAMILY_DATA
with key_validation_class = 'UTF8Type'
and comparator = 'UTF8Type'
and default_validation_class = 'BytesType'
and gc_grace = 86400;

しかし、この投稿を行った後、次のようになります-挿入する新しい列を取得するたびにスキーマを変更する必要がありますが、これは私がやりたいことではありません... CQL3には列メタデータが存在する必要があると信じています.. .

Datastax Java ドライバーを使用する場合、任意の列とその特定の値を追加できますか?

コードサンプル/例は、理解を深めるのに役立ちます..ありがとう..

4

2 に答える 2

4

コレクションを使用してこの問題を解決するCQLを信じています。

フィールドのデータ型をマップとして定義し、任意の数のキーと値のペアをマップに挿入できます。これは、従来の Thrift で動的列が行ったように動作するはずです。

何かのようなもの:

CREATE TABLE data ( data_id int PRIMARY KEY, data_time long, data_values map );
INSERT INTO data (data_id, data_time, data_values) VALUES (1, 21341324, {'sum': 2134, 'avg': 44.5 });

詳細はこちら

さらに、DataStaxドライバーで使用されるCQL3型とJava型の間のマッピングについては、こちらを参照してください。

于 2013-10-01T07:24:48.610 に答える