Phoenix创建二级索引及使用
一、CDH5.14集群下Phoenix4.14.0安装及性能对比phoenix/impala/hive二、CDH6.2中使用parcel离线安装Phoenix5.0.0三、使用Phoenix映射hbase表创建表和视图之前提到phoenix实现了hbase的sql接口,并且支持二级索引,本篇内容就介绍一下如何使用Phoenix创建二级索引及使用。官方文档-二级索引创建索引建索引:CREATE IN
一、CDH5.14集群下Phoenix4.14.0安装及性能对比phoenix/impala/hive
二、CDH6.2中使用parcel离线安装Phoenix5.0.0
之前提到phoenix实现了hbase的sql接口,并且支持二级索引,本篇内容就介绍一下如何使用Phoenix创建二级索引及使用。
创建索引
建索引:
CREATE INDEX noah_app ON "kafka_md"."noahgroup_app" ("cf"."MD5"); #必须有列族
删索引:
drop index NOAH_APP ON "kafka_md"."noahgroup_app";
异步建索引
使用上面的命令建索引的时候会在命令行一直等待,如果想要在后台异步建索引则只需要在命令后加上ASYNC即可:
CREATE INDEX noah_app ON "kafka_md"."noahgroup_app" ("cf"."MD5") ASYNC;
超时时间配置
如果Hbase的数据量较多,则在建索引的时候会超时报错,报错后该索引的INDEX_STATE会一直处在BUILDING状态:
java.sql.SQLTimeoutException: Operation timed out.
在CM中hbase的hbase-site.xml的服务端和客户端新增参数然后重启hbase之后即可解决此Error。
<property>
<name>phoenix.query.timeoutMs</name>
<value>7200000</value>
</property>
索引数据长什么样?
建好的索引在phoenix中的INDEX_STATE为ACTIVE状态,在hbase中会以索引列和rowkey列组合作为一个索引表的rowkey。
hbase中的phoenix索引表的数据:将索引列+'\x00'+rowkey组成一个新的hbase表,这点就和mysql和oracle类似了,不多赘述。
更多推荐
所有评论(0)