华为hbase二级索引(secondary index)细节分析
转载自:http://ju.outofmemory.cn/entry/50610
华为在HBTC 2012上由其高级技术经理Anoop Sam John透露了其二级索引方案,这在业界引起极大的反响,甚至有人认为,如果华为早点公布这个方案,hbase的某些问题早就解决了。其核心思想是保证索引表和主表在同一个region server上。
更新:目前该方案华为已经开源,详见:https://github.com/Huawei-Hadoop/hindex
下面来对其方案做一个分析。
1.整体架构
这个架构在Client Ext中设定索引细节,在Balancer中收集信息,在Coprocessor中管理二级索引数据。
2.表创建
在创建表的时候,在同一个region server上创建索引表,且一一对应。
3.插入操作
在主表中插入某条数据后,用Coprocessor将索引列写到索引表中去,写道索引表中的数据的主键为:region开始key+索引名+索引列值+主表row key。这么做,是为了让其在同一个分布规则下,索引表会跟主表在通过region server上,在查询的时候就可以少一次rpc。
4.scan操作
一个查询到来的时候,通过coprocessor钩子,先从索引表中查询范围row,然后再从主表中相关row中扫描获得最终数据。
5. split操作处理
为了使主表和索引表在同一个RS上,要禁用索引表的自动和手动split,只能由主表split的时候触发,当主表split的时候,对索引表按其对应数据进行划分,同时,对索引表的第二个daughter split的row key的前面部分修改为对应的主键的row key。
6. 性能
查询性能极大提升,插入性能下降10%左右
总结,本文对华为hbase使用coprocessor进行二级索引的方案的创建表,插入数据,查询数据的步骤进行了一个粗略分析,以窥其全貌。在使用的时候,可以作为一个参考。
华为hbase二级索引(secondary index)细节分析相关推荐
- 华为HBase 二级索引调研
1.Overall Solution 解决思想: 一个user table对应一个index table index的创建与更新全部在RS端的cp-processor里实现 核心思想:一个actual ...
- hbase组合rowkey_「从零单排HBase 11」HBase二级索引解决方案
HBase一个令人惋惜的地方,就是不支持二级索引.因此,社区有了很多补充方案来填补HBase的二级索引能力的缺陷. 今天,我们就来看看有哪些二级索引方案,通过对比各个方案的优缺点,并结合我们的具体场景 ...
- 使用solr构建hbase二级索引
使用solr构建hbase二级索引 @(HBASE)[hbase, solr] 使用solr构建hbase二级索引 一概述 一业务场景描述 二技术方案 1技术方案一 2技术方案二 3关于索引的建议 二 ...
- CDH 6 安装 Hbase 二级索引 Solr + Key-Value Store Indexer
目录 一.集群安装Solr + Key-Value Store Indexer 二.创建Hbase二级索引 1.更改表结构,允许复制 2.创建相应的SolrCloud集合 3.创建 collecti ...
- 基于Solr的Hbase二级索引
关于Hbase二级索引 HBase 是一个列存数据库,每行数据只有一个主键RowKey,无法依据指定列的数据进行检索.查询时需要通过RowKey进行检索,然后查看指定列的数据是什么,效率低下.在实际应 ...
- 基于ES的HBase二级索引方案
HBase不支持多条件查询,不提供二级索引,难以满足用户对检索功能多样性和高效率两方面的需求.由索引模块的需求分析可知,本文解决通过,提出数据与索引的分离,利用HBase数据库的存储模式灵活多变,容纳 ...
- (转)HBase二级索引与Join
二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性.RDBMS支持得比较好,NOSQL阵营也在摸索着符合自身特点的最佳解决方案. 这篇文章会以HBase做为对象来探讨如何基于Hba ...
- 阿里云EMR异步构建云HBase二级索引
一.非HA EMR构建二级索引 云HBase借助Phoenix实现二级索引功能,对于Phoenix二级索引的详细介绍可参考https://yq.aliyun.com/articles/536850?s ...
- Phoenix二级索引(Secondary Indexing)的使用(转:https://www.cnblogs.com/MOBIN/p/5467284.html)
摘要 HBase只提供了一个基于字典排序的主键索引,在查询中你只能通过行键查询或扫描全表来获取数据,使用Phoenix提供的二级索引,可以避免在查询数据时全表扫描,提高查过性能,提升查询效率 测试环境 ...
最新文章
- VirtualBox虚拟机网络连接设置的四种方式
- 牛X!Eclipse 开始支持 Java 14~
- 反思深度思考:不无脑的行动 有脑的持久行动
- auto errored after 报错解决_css重点知识和bug解决方法
- ADO.NET多值查询
- 企业架构规划及服务器优化参数
- ACM Robot Motion
- 黑盒测试策略及测试范围
- 2.13_binary_search_tree(BST)_二叉搜索树
- java 删除list_Java 删除List元素的正确方式
- 的内怎么放_燕窝买回来怎么炖?资深窝友告诉你!
- $SVN代码版本管理工具的使用
- springboot高校学生健康打卡系统的设计与实现毕业设计源码021009
- 大咖分享|汪国强:数字化风控下,数据资产如何助力企业降本增效?
- 健身用肌酸市场前景分析及行业研究报告
- 将文件目录生成文档目录或者excel目录
- 个人计算机操作系统支持多用户多任务,windows10是一个多用户多任务操作系统吗...
- MyBatis知识汇总(第四篇)分页:LIMT(SQL方式),RowBounds(Java对象方式)
- ZYNQ-双核AMP通信(一)
- Linux环境AES解密报错:Given final block not properly padded. Such issues can arise if a bad key is used dur
热门文章
- Python狼人之夜--文字冒险游戏
- Android objdump/nm/readelf使用
- jstring转换到C语言所用的char
- Linux设备驱动模型三 kset
- C#之整数与字符串互转
- Matlab二维图导入ansys,(原创教程)利用Matlab对ANSYS数据进行后处理.pdf
- css列名不动_利用js+css+html实现固定table的列头不动
- 四个变量的图表怎么做_EXCEL系列之基础图表总结
- 手机号码正则 中文姓名正则
- wordpress虚拟服务器,西部数码虚拟主机安装wordpress教程