accumulo 索引表

来源:互联网 发布:ubuntu git 支持中文 编辑:程序博客网 时间:2024/05/29 11:11

   近期调研accumulo ,发现相关资料较少,根据自身学习总结如下

   关于索引表的理解,是根据网上Hbase及accumulo网站资料总结得出

理论目标
在accumulo 中实现二级索引与索引Join需要考虑三个目标:
1,高性能的范围检索。
2,数据的低冗余(存储所占的数据量)。
3,数据的一致性。

1、按索引建表

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

accumulo 查询方式:

1) 根据rowkey 单个或范围查找

2)全表扫描

a 单索引表

原表数据

rowkey1     cf  age   value1

       rowkey2     cf   age  value2

      索引表

      age   rowkey

      20 rowkey1

     20 rowkey2 

Join 方式 就是根据 索引查询出 rowkey 上面 就可以查询出 age=20的  所有rowkey 信息   


b. 组合索引表

根据多个 组合条件组成 索引表 的rowkey  

      具体方式 可以参见 Hbase创建 例子  http://blog.csdn.net/adsitbbs/article/details/6674652


2、列索引

     根据 accumulo存储模型 

Key

Value

Row ID

Column

Timestamp

Family

Qualifier

Visibility



可以 添加 一个列存储 关联数据的 类型  和 rowkey   如 下图 


RowIDColumn FamilyColumn QualifierValue

EntityID

Attribute Name

Attribute Value

Weight

EntityID

Edge Type

Related EntityID

Weight


以上都是自己总结,希望大家一起交流。其中如有不正确之处,请指正。


     

0 0