Phoenix创建二级索引及使用

一、CDH5.14集群下Phoenix4.14.0安装及性能对比phoenix/impala/hive

二、CDH6.2中使用parcel离线安装Phoenix5.0.0

三、使用Phoenix映射hbase表创建表和视图

之前提到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类似了,不多赘述。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值