7

私はCQL3でこのようなテーブルを持っています

create table product_info
(
 key text,
 value text,
 Primary key (key)
);

縦型のテーブルです。(key , value ) ペアで新しい行を挿入できるので。

サンプル データは次のようになります。

製品情報

  key                |     value       
  -------------------------------------------
  product_name       |   sample_product   
  quantity           |   2
  manufacture        |   sample_manufacturer   
  ....                   ....

しかし、私が必要としているのは、テーブルを変更せずに列を動的に追加できる水平テーブルです。

製品情報

    product_name     |   quantity   |  manufacture           |  ....
   ------------------------------------------------------------------------------    
    sample_product   |    2         |  sample_manufacturer   |  ....

上記の表のような構造が必要です。その場で列を追加し続ける必要があります。

CQL3 には列を動的に追加するオプションがありますが、その前にテーブルを変更する必要があります。

これを可能にする他の方法があるかどうかを知る必要があります。

thrift api を使用することで可能であることがわかりましたが、thrift はサポートされていないため、使用できません。

ヘクターやこれをサポートする他の A​​PI のような他の API はありますか?

同様のスタック オーバーフローの投稿を確認しましたが、より良い解決策は得られませんでした。

4

2 に答える 2

5
CREATE TABLE product_info(
    product_name text,
    key text,
    value text,
    PRIMARY KEY (product_name, key)
);

キーがクラスタリング列になったため、最大 2B の k/v ペアを挿入できるようになりました。

INSERT INTO product_info (product_name, key, value) 
    VALUES ('iPhone 6', 'quantity', '2');

INSERT INTO product_info (product_name, key, value) 
    VALUES ('iPhone 6', 'manufacturer', 'Apple');

INSERT INTO product_info (product_name, key, value) 
    VALUES ('iPhone 6', 'quantity', '2');

INSERT INTO product_info (product_name, key, value) 
    VALUES ('iPhone 6', 'another column name', 'another column value');

ただし、クエリ アクセス パターンを指定していないため、このデータ モデルはアプリケーションにとって完全に間違っている (または正常である) 可能性があります。

于 2014-12-23T02:43:30.890 に答える