HBase检索能力增强思路

(1)HBase

主表一个rowkey,只能设计一个rowkey=X|Y这种场景。

合适场景:

  • X=a

  • X>=a, X>a

  • X<=a,或者X<a

  • X=a and Y = b

  • X=a and Y <= b

  • X=a and Y>=b

优点:

  • 高并发、高效快速

缺点:

  • 只有一个rowkey设计,后期业务变化不不能修改rowkey结构

  • 检索场景简单,有局限性,一个rowkey必须由前缀X出现才能快速查找,比如上述只提供Y=b的话,依然需要全表扫描


(2)Phoenix/自建HBase索引

扩展更多rowkey设计,允许更多rowkey=X|Y rowkey=Y|Z rowkey=X|Z等这种设计。

合适场景:

  • 一个表,允许更更多类似左边的场景

  • 更多X、Y、Z...条件来组合来进⾏行行

  • 类似左边描述的条件查询

优点:

  • 依然保持高并发、高效rowkey查询。允许有更多rowkey设计,最大化hbase rowkey检索优势

缺点:

  • 表变多,如果业务有U/V/W/X/Y/Z 6个条件两两组合的业务场景,就需要15个表,数据膨胀,例如这个时候,X在索引⾥里里被保存了5次

  • 查询也有局限性


(3)Solr/ES

任意条件 X、Y、Z。

合适场景:

  • X = a or Y= b (rowkey设计不不能实现的)

  • X> a and Y < b (rowkey设计不不能实现的)

  • X like “%hbase%”

  • Geo地理距离检索

  • 支持分词查询

  • 支持facet/group分类分组查询返回,例如一个关键词搜索新闻网站,它可以分政治、体育、经济等类别返回统计与结果

  • 任意条件组合查询等

优点:

  • 支持检索功能更丰富; OR 组合查询,多个条件范围组合查询,like、分词等全文检索,这些查询使用hbase rowkey设计是难以满足的

  • 对于类似U/V/W/X/Y/Z 6个条件两两组合的业务场景,数据膨胀率远低于 hbase的rowkey方案

缺点:

  • 类似hbase这种简单kv查询下,并发不如hbase高效快速


HBase for Solr介绍

HBase rowkey查询已经不能满足复杂多变的用户业务查询需求,HBase for Solr就是为了满足广大HBase用户日益变化的查询需求,是HBase查询检索能力的补充,是大数据多模式数据库发展趋势的基础之一,比如一些图、时空等应用,都可以使用solr提供的索引服务。









 


©著作权归作者所有:来自51CTO博客作者mb5fdb0a6739180的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. MySql基础查询-流程控制函数
  2. [Phoenix系列]Phoenix入门到精通续集
  3. MySql基础查询-分组函数
  4. MongoDB模糊查询时带有括号的情况
  5. MySql基本查询-基本函数
  6. MySql基础语法的学习-基础的查询语句
  7. Apache Hive 联邦查询(Query Federation)
  8. 一文了解 Apache Spark 3.0 动态分区裁剪(Dynamic Partition Pru
  9. 《程序人生》系列-害敖丙差点被开除的P0事故

随机推荐

  1. Android开发常用代码片段(二)
  2. Android 启动过程详解
  3. (二)Android事件分发机制 - ViewGroup篇
  4. Android字体(一)
  5. Android消息循环实现原理分析
  6. Google Play Store 应用无法安装解决方案
  7. android bitmap compress(图片压缩)
  8. Ubuntu安装Android的SDK
  9. Android(安卓)greenDao开源数据库框架
  10. Android(安卓)Display System -- Surface