一、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类似了,不多赘述。

 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐