欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

phoenix 使用详细介绍 创建二级索引

发布时间:2024/8/23 编程问答 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 phoenix 使用详细介绍 创建二级索引 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

phoenix 关联hbase 基本使用参考:https://blog.csdn.net/zhangshenghang/article/details/97491597

Phoenix 创建二级索引

  • hbase中有表test_article ,在表空间 test_ns ,列簇 fn 下有字段 url , text , uid ,name 
  • 连接phoenix
phoenix-sqlline.py hostname:2181:/hbase
  • 创建视图
create view "test_ns"."test_article"( "rowkey1" VARCHAR primary key ,"fn"."url" varchar ,"fn"."text" varchar,"fn"."uid" varchar,"fn"."name" varchar) ;

这时可以直接通过sql查看视图数据,是通过phoenix从hbase中查询,过滤一些条件会慢一些

无法使用 Schema (对应Hbase 表空间),在hbase中设置以下代码

  • 设置二级索引

索引名称为 MY_INDEX_URL_2 ,索引表为 "test_ns"."test_article" ,索引列为 "fn"."name" ,

如果单独索引列,不加入 INCLUDE 后面的字段,查询时只能查询索引的列

如果想显示其他列他会去hbase去扫,速度会很慢,

即 只能 SELECT "name" FROM "test_ns"."test_article" WHERE "name" = '笑忘录' ; 

执行 SELECT "name","url","text" FROM "test_ns"."test_article"  WHERE "name" = '笑忘录' ;  就会很慢。

加入 INCLUDE 即可查询相应设置字段

CREATE INDEX MY_INDEX_URL_2 ON "test_ns"."test_article" ("fn"."name") INCLUDE("fn"."url","fn"."text");

索引超时请查看该文章:https://blog.csdn.net/zhangshenghang/article/details/97926873

索引完成可以通过命令 !table 查看索引状态,ACTIVE即为索引成功


验证查询  600 万数据,速度在毫秒级别

 SELECT "rowkey1","name","url" from "test_ns"."test_article" where "name" = '用户名称';

 

  • 索引多列数据
CREATE INDEX MY_INDEX_TEST ON "test_ns"."test_article" ("fn"."name","fn"."url") INCLUDE("fn"."text","fn"."uid");

简单描述:create index indexName on tableName(a,b,c,...) include (d,e,f,g,....)

  • 删除索引
DROP INDEX 索引名称 ON "表空间"."表名"

 

总结

以上是生活随笔为你收集整理的phoenix 使用详细介绍 创建二级索引的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。