Phoenix连接hbase的sql操作
phoenix,直译为凤凰,构建在Hbase之上,使用标准的SQL操作Hbase,可以做联机事务处理,拥有低延迟的特性。
phoenix会把SQL编译成一系列的Hbase的scan操作,然后把scan结果生成标准的JDBC结果集,
其底层由于使用了Hbase的API,协处理器,过滤器,处理千万级行的数据也只用毫秒或秒级就搞定。
支持有:SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY等操作。
但phoenix目前不支持Intersect, Minus操作,Oracle是支持此操作的。
phoenix连接hbase:
查看当前集群中存在的数据表:
创建表、查询表:
表插入数据:
alter修改表数据:
Phoenix中不存在 update
的语法关键字,而是 upsert
,功能上替代了 Insert+update。所以如下会报错:
据官方介绍:
只需要在upsert
语句中指定存在的 s_id
即可实现更新,在phoenix客户端中操作如下:
复杂查询:通过phoenix连接还支持where、group by、case when等复杂的查询条件
添加数据:
如上:当s_id=5被创建两次时,前一条会被覆盖
删除操作: delete、drop
更多操作案例可在官方学习:https://phoenix.apache.org
也可参考此博客学习:https://blog.csdn.net/javastart/article/details/69397676
Phoenix支持的sql语句: https://phoenix.apache.org/language/index.html
Phoenix 支持的DataTypes: https://phoenix.apache.org/language/datatypes.html
Phoenix 支持的函数: https://phoenix.apache.org/language/functions.html