2016-12-10 1 views
0

HBase뿐만 아니라 Phoenix를 처음 사용합니다.동적 열의 열 패밀리 이름이있는 Phoenix를 사용하여 테이블 명령문을 만듭니다.

동적 열에 대해 열 패밀리 이름과 함께 phoenix의 UPSERT 문을 사용할 수 없습니다.

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 성명서 :

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

upsert하려고하는'D','E' 및'F' 열이 'TEST'테이블에 존재하지 않습니다. – pheeleeppoo

+0

예, 동적 열입니다. – Blank

답변

0

난 그냥이 URL

질문에 대한

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

을 검토 할 수 있습니다 phoenix.Maybe이 조각을 공부하고, 여기에 문제가되어야합니다 upsert에서 사용하고 심지어 두 개의 열 패밀리 ("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 수 있습니다

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

나는 그것이 작동 테스트합니다.

관련 문제