hbase建索引的两种方式
2015-11-24 11:33
302 查看
转载自http://blog.csdn.net/ryantotti/article/details/13295325
在二级索引的实现技术上一般有几个方案:
1. 表索引
使用单独的hbase表存储索引数据,业务表的索引列值做为索引表的rowkey,业务表的rowkey做为索引表的qualifier或value。
问题:对数据更新性能影响较大;无法保证一致性;Client查询需要2次RPC(先索引表再数据表)。
2. 列索引
与业务表使用相同表,使用单独列族存储索引,用户数据列值做为索引列族的Qualifier,用户数据Qualifier做为索引列族的列值。适用于单行有上百万Qualifier的数据模型,如网盘应用中网盘ID做为rowkey,网盘的目录元数据都存储在一个hbase row内。(facebook消息模型也是此方案)
可保证事务性。
问题:仅适用于特定的应用场景。
在二级索引的实现技术上一般有几个方案:
1. 表索引
使用单独的hbase表存储索引数据,业务表的索引列值做为索引表的rowkey,业务表的rowkey做为索引表的qualifier或value。
问题:对数据更新性能影响较大;无法保证一致性;Client查询需要2次RPC(先索引表再数据表)。
2. 列索引
与业务表使用相同表,使用单独列族存储索引,用户数据列值做为索引列族的Qualifier,用户数据Qualifier做为索引列族的列值。适用于单行有上百万Qualifier的数据模型,如网盘应用中网盘ID做为rowkey,网盘的目录元数据都存储在一个hbase row内。(facebook消息模型也是此方案)
可保证事务性。
问题:仅适用于特定的应用场景。
相关文章推荐
- HttpClient+List<NameValuePair>发送和接收参数——基于struts2或者ssh等框架
- 文件压缩及解压缩命令
- 框架:关闭多个activity的方案之一(用list记录create过的activity)
- opencv2.4.9中期望最大(EM)算法理解
- IOS7、8模态半透明弹出框
- HTML中<script ...>....</script>标签的正则表达式?
- socket通信初级篇——服务员与客人(服务端与客户端)
- 构建高性能WEB之HTTP首部优化
- GDB Core,gdb 调试大全,core文件调试
- 非root用户 如何将cscope安装到指定目录
- PHP $_SERVER常用变量
- 信息显示命令
- DNS反向解析问题引起邮件被拒绝
- SecureCRT无法连接VMware
- DUBBO的通讯方式(一)NIO,长连接心跳
- 多态之:向下转型和向上转型
- 搜索文件命令
- RPG Maker MV 之如何使用插件
- flash转换成mp4,在线转换
- 国内android aosp源代码下载方法