使用Phoenix创建包含动态列

时间:2016-12-10 03:07:03

标签: hbase phoenix

我是初学者,使用Phoenix和HBase。

我无法使用带有列族名称的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 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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我正在研究这片凤凰。也许你可以查看这个网址 http://phoenix.apache.org/dynamic_columns.html 对于你的问题,这里的问题应该是:你没有定义一个列族“d”,但你在upsert中使用它,你甚至使用了两个列族(“e”)。在create table脚本中你至少应该定义列系列“d”(我知道有一个默认的列族“0”,如果你没有定义),凤凰可以支持动态列插入但我不确定它是否可以支持动态列族插入。所以我认为代码应该是: 创建表测试( 一个UNSIGNED_LONG非空, B VARCHAR NOT null, C UNSIGNED_LONG非null, “d”.D整数 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); 我测试它的工作原理。