Hbase:RowKey和Filter效率比较

范围查询的方式:1.按RowKey查询  2.filter设置ColumnValue的条件 

对于多个Column存储,从关系数据库中由复合索引的表迁移过来的,自然想到的是在hbase上加二级索引,但是效率却不好,分析一下原因:

Hbase按索引建表

  在HBase中,表格的Rowkey按照字典排序,Region按照RowKey设置split point进行shard,通过这种方式实现的全局、分布式索引,成为了其成功的最大的砝码

  单一的通过Rowkey检索数据的方式,不再满足更多应用的需求,比如不能像SQL一样检索数据,select * from table where col=val。可是,HBase之前的定位是大表的存储,要进行这样的查询,往往是要通过类似Hive、Pig等系统进行全表的MapReduce计算,这种方式既浪费了机器的计算资源,又因高延迟使得应用黯然失色。于是出现了HBase二级索引的方案。

  每一个索引建立一个表,然后依靠表的row key来实现范围检索。row key在HBase中是以B+ tree结构化有序存储的,所以scan起来会比较效率。
单表以row key存储索引,column value存储id值或其他数据 ,这就是Hbase索引表的结构。

Hbase QualifierFilter用于过滤qualifier,也就是一个列族里面data:xxx,冒号后面的字符串

 

hack操作

hbase列族里有许多列

HBase高性能复杂条件查询引擎

文章来自:http://www.cnblogs.com/kxdblog/p/4328699.html
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3