Phoenix之全局索引(Global Index)使用

日复一日伐树的熊哥 日复一日伐树的熊哥 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

目录

 

索引使用

全局索引(Global Indexing)

使用前提(开发、测试、生产环境已准备完毕)

使用示例

创建phoenix的schema

创建phoenix的表

创建phoenix的全局索引

phoenix插入数据

Phoenix更新数据


索引使用

全局索引(Global Indexing)

名词解释:

全局索引,适用于读多写少的业务场景。使用Global indexing在写数据的时候开销很大,因为所有对数据表的更新操作(DELETE, UPSERT VALUES and UPSERT SELECT),都会引起索引表的更新,而索引表是分布在不同的数据节点上的,跨节点的数据传输带来了较大的性能消耗。在读数据的时候Phoenix会选择索引表来降低查询消耗的时间。在默认情况下如果想查询的字段不是索引字段的话索引表不会被使用,也就是说不会带来查询速度的提升。

使用前提(开发、测试、生产环境已准备完毕)

做好hbase安装与phoenix连接的相关配置

使用示例

创建phoenix的schema

示例的schema是vaas_lxy_two

create schema if not exists "vaas_lxy_two";

创建phoenix的表

表名:vaas_lxy_tb

列簇:C1

主键:id

压缩算法:Snappy (可选)

create table if not exists "vaas_lxy_two"."vaas_lxy_tb"("id" varchar not null primary key,"C1"."name" varchar,"C1"."sex" varchar)COMPRESSION='Snappy'; 

 

注意:列族只能在非主键列中进行指定。

创建phoenix的全局索引

索引名称:id_index

索引字段:id

包含字段:C1.name;C1.sex

列簇:C1

create index id_index on "vaas_lxy_two"."vaas_lxy_tb"("id") include ("C1"."name","C1"."sex");

 

注意:查询涉及到的条件字段和查询字段必须都要在索引字段或者include字段范围内!!!

phoenix插入数据

upsert into "vaas_lxy_two"."vaas_lxy_tb"("id","C1"."name","C1"."sex") values('1','zhangsan','男'); 
upsert into "vaas_lxy_two"."vaas_lxy_tb"("id","C1"."name","C1"."sex") values('2','李四','男'); 
upsert into "vaas_lxy_two"."vaas_lxy_tb"("id","C1"."name","C1"."sex") values('3','七妹','女');

 数据表数据:

索引表数据:

Phoenix更新数据

upsert into "vaas_lxy_two"."vaas_lxy_tb"("id","C1"."name","C1"."sex") values('2','更新李四为王五','男');

 数据表数据:

索引表数据:

 

 

...全文

相关推荐

评论
收藏 已收藏
分享
返回顶部