华为采用纯Java实现的HBase二级索引:hindex

jopen 10年前

hindex 是华为公司开发的纯 Java 编写的 HBase 二级索引,兼容 Apache HBase 0.94.8。

当前的特性如下:

  • 多个表索引

  • 多个列索引

  • 基于部分列值的索引

  • 使用索引扫描等于和范围条件

  • 批量加载数据来索引表(索引完成批量加载)

工作原理

HBase 二级索引是 100% 服务端实现的。

华为采用纯Java实现的HBase二级索引:hindex

Put 操作

E.g.:

Table –> tab1 column family –> cf

Index –> idx1, cf1:c1 and idx2, cf1:c2

Index table –> tab1_idx (user table name with suffix “_idx” )

华为采用纯Java实现的HBase二级索引:hindex

扫描操作

华为采用纯Java实现的HBase二级索引:hindex

华为采用纯Java实现的HBase二级索引:hindex

IndexedHTableDescriptor htd = new IndexedHTableDescriptor(usertableName);     IndexSpecification iSpec = new IndexSpecification(indexName);     HColumnDescriptor hcd = new HColumnDescriptor(columnFamily);     iSpec.addIndexColumn(hcd, indexColumnQualifier, ValueType.String, 10);     htd.addFamily(hcd);     htd.addIndex(iSpec);     admin.createTable(htd);

</div>

未来会实现的功能:

  • 动态添加和删除索引

  • 集成 HBase Shell 的二级索引管理

  • 优化范围扫描

  • HBCK 工具支持二级索引表

  • WAL 优化二级索引条目

  • 使得扫描评估情报可导入导出

项目主页:http://www.open-open.com/lib/view/home/1408673734819</p> </strong>