phoenix 一些东西(1)

来源:互联网 发布:iphone和mac照片同步 编辑:程序博客网 时间:2024/05/02 11:18


如果集群不允许Eclipse远程连接,则jdbc的测试需要打包后丢到集群上:

java-Djava.ext.dirs=/home/hbase/hbase-0.94.14/lib/:/home/hbase/hbase-0.94.14/ -jar PhoenixCRUD.jar

 

Phoenix的创建表,索引,查询基本没什么可说,测试了下,百万级数据的聚合查询,建索引比不建索引查询时间能提高一倍以上。

官网的sql语法结构说明跟Oracle官方文档的类似。

 

关于phoenix的动态列:

例如有官网上描述的业务需求,创建表时只给了事件字段,但事件的具体属性由于事件的不同而不同,因此事件的属性需要创建phoenix的动态列,

创建表:

CREATE TABLEEventLog (

    eventId BIGINT NOT NULL,

    eventTime TIME NOT NULL,

    eventType CHAR(3) NOT NULL

    CONSTRAINT pk PRIMARY KEY (eventId,eventTime))

   

然后在插入表时:

   

upsert intotablename(eventid,eventtime,eventtype,status1 varchar)values(1,date,'001','s1');

 

那么在查询时就可以这样查询:

 

selecteventid,status1 from tablename(status1 varchar)

 

hbase shellscan一下表,会看到status1是作为hbase的一个列插进表里了。

但在phoenix端做select * from tablename ,不会看到status1。要同过上面那种格式的查询才能看到。

 

关于phoenix源码构建成Eclipse项目比较简单:

直接在Eclipse导入maven项目即可,不像hadoophbase需要在linux环境构建。

或者:

mvn eclipse:eclipse-DskipTests -X

构建完项目有个类还有错误,还要安装个antler phoenix sql解析器,直接在core项目上运行即可:

mvn install-DskipTests


0 0
原创粉丝点击