华为采用纯Java实现的HBase二级索引:hindex
jopen
10年前
hindex 是华为公司开发的纯 Java 编写的 HBase 二级索引,兼容 Apache HBase 0.94.8。
当前的特性如下:
-
多个表索引
-
多个列索引
-
基于部分列值的索引
-
使用索引扫描等于和范围条件
-
批量加载数据来索引表(索引完成批量加载)
工作原理
HBase 二级索引是 100% 服务端实现的。
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” )
扫描操作
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);
未来会实现的功能:
-
动态添加和删除索引
-
集成 HBase Shell 的二级索引管理
-
优化范围扫描
-
HBCK 工具支持二级索引表
-
WAL 优化二级索引条目
-
使得扫描评估情报可导入导出
项目主页:http://www.open-open.com/lib/view/home/1408673734819</p> </strong>