标签:
范围查询的方式: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列族里有许多列
标签:
原文地址:http://www.cnblogs.com/kxdblog/p/4328699.html