转载自: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)细节分析相关推荐

  1. 华为HBase 二级索引调研

    1.Overall Solution 解决思想: 一个user table对应一个index table index的创建与更新全部在RS端的cp-processor里实现 核心思想:一个actual ...

  2. hbase组合rowkey_「从零单排HBase 11」HBase二级索引解决方案

    HBase一个令人惋惜的地方,就是不支持二级索引.因此,社区有了很多补充方案来填补HBase的二级索引能力的缺陷. 今天,我们就来看看有哪些二级索引方案,通过对比各个方案的优缺点,并结合我们的具体场景 ...

  3. 使用solr构建hbase二级索引

    使用solr构建hbase二级索引 @(HBASE)[hbase, solr] 使用solr构建hbase二级索引 一概述 一业务场景描述 二技术方案 1技术方案一 2技术方案二 3关于索引的建议 二 ...

  4. CDH 6 安装 Hbase 二级索引 Solr + Key-Value Store Indexer

    目录 一.集群安装Solr +  Key-Value Store Indexer 二.创建Hbase二级索引 1.更改表结构,允许复制 2.创建相应的SolrCloud集合 3.创建 collecti ...

  5. 基于Solr的Hbase二级索引

    关于Hbase二级索引 HBase 是一个列存数据库,每行数据只有一个主键RowKey,无法依据指定列的数据进行检索.查询时需要通过RowKey进行检索,然后查看指定列的数据是什么,效率低下.在实际应 ...

  6. 基于ES的HBase二级索引方案

    HBase不支持多条件查询,不提供二级索引,难以满足用户对检索功能多样性和高效率两方面的需求.由索引模块的需求分析可知,本文解决通过,提出数据与索引的分离,利用HBase数据库的存储模式灵活多变,容纳 ...

  7. (转)HBase二级索引与Join

    二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性.RDBMS支持得比较好,NOSQL阵营也在摸索着符合自身特点的最佳解决方案. 这篇文章会以HBase做为对象来探讨如何基于Hba ...

  8. 阿里云EMR异步构建云HBase二级索引

    一.非HA EMR构建二级索引 云HBase借助Phoenix实现二级索引功能,对于Phoenix二级索引的详细介绍可参考https://yq.aliyun.com/articles/536850?s ...

  9. Phoenix二级索引(Secondary Indexing)的使用(转:https://www.cnblogs.com/MOBIN/p/5467284.html)

    摘要 HBase只提供了一个基于字典排序的主键索引,在查询中你只能通过行键查询或扫描全表来获取数据,使用Phoenix提供的二级索引,可以避免在查询数据时全表扫描,提高查过性能,提升查询效率 测试环境 ...

最新文章

  1. VirtualBox虚拟机网络连接设置的四种方式
  2. 牛X!Eclipse 开始支持 Java 14~
  3. 反思深度思考:不无脑的行动 有脑的持久行动
  4. auto errored after 报错解决_css重点知识和bug解决方法
  5. ADO.NET多值查询
  6. 企业架构规划及服务器优化参数
  7. ACM Robot Motion
  8. 黑盒测试策略及测试范围
  9. 2.13_binary_search_tree(BST)_二叉搜索树
  10. java 删除list_Java 删除List元素的正确方式
  11. 的内怎么放_燕窝买回来怎么炖?资深窝友告诉你!
  12. $SVN代码版本管理工具的使用
  13. springboot高校学生健康打卡系统的设计与实现毕业设计源码021009
  14. 大咖分享|汪国强:数字化风控下,数据资产如何助力企业降本增效?
  15. 健身用肌酸市场前景分析及行业研究报告
  16. 将文件目录生成文档目录或者excel目录
  17. 个人计算机操作系统支持多用户多任务,windows10是一个多用户多任务操作系统吗...
  18. MyBatis知识汇总(第四篇)分页:LIMT(SQL方式),RowBounds(Java对象方式)
  19. ZYNQ-双核AMP通信(一)
  20. Linux环境AES解密报错:Given final block not properly padded. Such issues can arise if a bad key is used dur

热门文章

  1. Python狼人之夜--文字冒险游戏
  2. Android objdump/nm/readelf使用
  3. jstring转换到C语言所用的char
  4. Linux设备驱动模型三 kset
  5. C#之整数与字符串互转
  6. Matlab二维图导入ansys,(原创教程)利用Matlab对ANSYS数据进行后处理.pdf
  7. css列名不动_利用js+css+html实现固定table的列头不动
  8. 四个变量的图表怎么做_EXCEL系列之基础图表总结
  9. 手机号码正则 中文姓名正则
  10. wordpress虚拟服务器,西部数码虚拟主机安装wordpress教程