小区网站建设方案怎么写,wordpress编辑器 下载地址,做影视网站算侵权吗,在您的网站首页添加标签大数据时代的数据量是超大规模的#xff0c;传统的关系数据库已经很难存储和管理这些数据了#xff0c;为了存储海量数据#xff0c;我们有了HDFS#xff0c;它可以把成千上万台服务器上的硬盘聚集成一块超级大的硬盘#xff0c;为了让这些数据产生价值#xff0c;我们有…大数据时代的数据量是超大规模的传统的关系数据库已经很难存储和管理这些数据了为了存储海量数据我们有了HDFS它可以把成千上万台服务器上的硬盘聚集成一块超级大的硬盘为了让这些数据产生价值我们有了mapreduce它可以计算这个超大硬盘的数据面对这么大的数据量我们还有一个迫切的需求那就是如何快速检索出我们想要的数据而这个功能就是由hbase来承担。 那么如此海量数据快速检索技术原理又是怎样的呢我觉得原理很简单就是索引技术。Hbase通过rowkey来区别不同类型数据通过列族把经常需要一起被查询出来的数据放在一起例如我们如果要做一个电商平台的交易记录业务表设计对于电商平台下的商户他其实只需要查询出自己的交易信息而不会去关心其他商户的交易信息那么我们就可以把商户号作为rowkey每一个商户的交易的信息我们就放在一个列族里商户号这样的信息就像数据在硬盘上的门牌号我们一传入这个值做查询hbase就能快速找到数据存储的位置这就是hbase能快速检索到数据的原理。 上面讲到的原理只是业务抽象的角度来说在hbase底层它就是根据上面说到的这些原理来设计的hbase里面有region的概念region是一个数据集合那么什么样的数据会放置到某一个region里呢hbase是根据rowkey来把同一类的数据放置在一个region里rowkey下面就是列族列族对应的底层存储就是hfilehfile放置在rowkey对应的region下所以当我们查询时候我们很容易通过业务规则找到我们设计好的rowkey找到了rowkey就找到region那么region下存储的hfile列族信息也就可以全部查询出来了。 Rowkey其实就是hbase的索引也可以说是hbase官方给出的唯一索引因此很多资料里说hbase只有一级索引这个一级索引就指的就是rowkey因此如何设计rowkey就是一门大学问了时常我们一行数据不能满足我们复杂的查询要求我们需要跨行就像scan那么扫描多行数据而region里的行都是按照一定顺序排列的这个顺序就是字典顺序这个我在以前一篇文章里提到过所以碰到这种情况我们一般会通过md5将key散列这样相邻的数据行会排列在一起底层存储数据时候也会存储在同一个地方相同region或者是相互靠近的地方相邻region这样也就可以提升查询的效率。 Hbase内部有两张表一个是-ROOT-表和.META.表客户端程序就是像我上面给出的示例程序首先访问zookeeper通过zookeeper获取含有-ROOT-的region服务器名通过-ROOT-的region服务器可以查询到.META.表里行键rowkey对应的region位置而-ROOT-和.META.客户端访问后就会缓存起来。 其实hbase的表设计本身非常简单对外接口也没有关系数据库那么丰富我最近学习hbase觉得hbase基本都没有关系数据库里那些计算函数可见hbase只是提供一种能快速检索海量数据的一种计算模型而已。转载于:https://www.cnblogs.com/zourui4271/p/6034716.html