2016-12-10 2 views
0

私はHBaseと同様にPhoenixを使用する初心者です。動的列の列ファミリ名を持つPhoenixを使用してテーブルステートメントを作成します。

動的列の列ファミリ名でphoenixのUPSERTステートメントを使用することができません。

私のCREATE TABLE文:

CREATE TABLE TEST(
A UNSIGNED_LONG NOT NULL, 
B VARCHAR NOT null, 
C UNSIGNED_LONG NOT null, 
CONSTRAINT rowkey PRIMARY KEY(A,B,C) 
) 

マイアップサート声明:

UPSERT INTO TEST(A,B,C,d.D INTEGER,d.E INTEGER,e.F INTEGER) VALUES (30000,alice,200000,1,1,1) 

エラーメッセージ:

ERROR 1001 (42I01): Undefined column family. familyName=D.null 

私はここで何をしないのですか?あなたは、列ファミリ「d」を定義していませんでしたが、あなた:

+0

あなたがアップしようとしている 'D'、' E'および 'F'列は' TEST'テーブルに存在しません。 – pheeleeppoo

+0

はい、これらは動的な列です。 – Blank

答えて

0

私はちょうどあなたがこのURL

あなたの質問のための

http://phoenix.apache.org/dynamic_columns.html

を確認することができますphoenix.Maybeのこの作品を研究していた、ここで問題がなければなりませんあなたは2つの列ファミリ( "e")を使用していました。create tableスクリプトでは、少なくとも列ファミリ "d"を定義する必要があります(私は、デフォルト列ファミリ "0" define)、phoenixは動的列の挿入をサポートできますが、動的列ファミリの挿入をサポートできるかどうかはわかりません。

CREATE TABLE TEST(
A UNSIGNED_LONG NOT NULL, 
B VARCHAR NOT null, 
C UNSIGNED_LONG NOT null, 
"d".D integer 
CONSTRAINT rowkey PRIMARY KEY(A,B,C) 
) 

、あなたは次のようにアップサートすることができます

UPSERT INTO TEST(A,B,C,"d".D,"d".E INTEGER,"d".f INTEGER) VALUES (30000,'alice',200000,1,1,1); 

私はそれが動作テストします。

関連する問題