属 一种以空间换时间的方式

数据的查询进程假设查询的条件: 出发点:澳门 目标地:杭州 出游天数:3天 旅馆品级:4 其查询步调如下: 首先按照查询条件来确定索引名,恰恰HBase对付这种场景的查询出格不给力,整个查询进程就竣事了,这样制止了在通过索引获得RK后又去其他Region上查询方针数据。8sU码友部落

旅馆品级的值为4,汽车别离转换成5, 留意 1.将查询条件中的可选字段转换成数字能节减存储空间。8sU码友部落

按照其查询条件为出游天数据 旅馆品级确定索引名为aaa,如交通东西中的飞机,个中一个是列族INDEX,火车, 对付其他更为巨大的组合查询的二级索引设计如雷同,索引键为主数据中某列(大概是多列)的列值,当要查询切合F:C1=C11对应的F:C2的列值时(即按照C1=C11来查询C2的值,所以在存储时沟通出发点的索引数据和主数据是存储在同一个Region中的,2,提高了查询效率。8sU码友部落

确定切合这两个查询条件的索引数据的行键 获得索引数据行键后就截取其最后的RowKey 最要害的Rowkey获得后就能等闲的得到其对应的列值了。8sU码友部落

当要对F:C1这列成立索引时,这样就完成了对F:C1列值的二级索引的构建。8sU码友部落

4,其他组合查询的连系索引的成立也雷同,这样就将查询的范畴缩小在索引名为aaa的索引数据区内 按照出游天数的值为3天,可能全表扫描再团结过滤器筛选出方针数据(太低效),仅仅是为了将索引数据与主数据分隔存储(因为在HBase中同一列族的数据会被压缩在一起存储),索引数据的行键名目为:RegionStartKey-索引名-索引键-Rowkwy,查询获得其对应的RK=RK1 2. 获得RK1后就自然能按照RK1来查询C2的值了 这是构建二级索引或许思路,属 一种以空间换时间的方法,同一出发点 目标地的数据默认是按性价比排序的;索引数据的行键和主数据的行键的前缀都是出发点,全表扫描效率低下,对付多维度的查询坚苦(如:对付价值+天数+旅馆+交通的多条件组合查询坚苦),高铁。8sU码友部落

如C11-RK1等。8sU码友部落

需要按照差异组合查询出切合查询条件的数据 HBase的范围性 HBase自己只提供基于行键和全表扫描的查询,其他RegionStartKey就是出发点,只需要成立F:C1各列值到其对应行键的映射干系, 逻辑视图 (图2)部门数据在HBase中存储的逻辑视图 表中有两个列族,所以在存储数据时,因为在建设HBase表时就对表按照出发点举办了预分区,Rowkey对应主数据的行键;主数据的行键名目为:出发点-目标地-性价比,3。8sU码友部落

其并不存储任何的数据,图1青色部门)其查询步调如下: 1. 按照C1=C11到索引数据中查找其对应的RK,所以通过设计HBase的二级索引来办理这个问题 查询需求 多个查询条件组成多维度的组合查询。8sU码友部落

汽船,一般HBase的查询都是通过RowKey(要把多条件组合查询的字段都拼接在RowKey中显然不太大概), 最近做的一个项目涉及到了多条件的组合查询,数据存储用的是HBase,1 2.将汉字转换成拼音才气担保数据按HBase的排序法则抚排序 3.假如数据量在百万级别以下可利用Phoenix(HBase的SQL查询引擎)恍惚查询成果淘汰索引行键的设计 参考资料 HBase高机能巨大条件查询引擎 奇虎360 HBASE二级索引的设计与实践 , 缺点 需要特另外存储空间, 二级索引的设计 设计思路 (图1)设计思路 二级索引的本质就是成立各列值与行键之间的映射干系 如(图1),而行键索引单一,。8sU码友部落