gpt4 book ai didi

database - HBase区域中的数据可以根据family:column的值手动进行排列

转载 作者:行者123 更新时间:2023-12-02 21:42:44 25 4
gpt4 key购买 nike

我已经在HBase上工作了两个星期,但我的项目仍处于设计状态,并且正在进行POC。现在,在我询问查询之前,请先简要介绍一下我所推断的内容。

HBase中水平可伸缩性的基本单位称为区域。区域是表数据的一个子集,它们本质上是存储在一起的连续,排序的行范围。
当在添加更多行后区域变得太大时,该区域在中间键处被分为两部分,从而形成两个大致相等的一半。

因此,HBase表的多图结构可以总结为
键->家庭->列->时间戳->值。

HBase在内部保留名为-ROOT-和.META的特殊目录表。在其中维护集群中所有 float 区域的当前列表,状态和位置。 -ROOT-表包含.META的列表。表区域。 .META。该表保存所有用户空间区域的列表。这些表中的条目以区域名称为关键字,区域名称由该区域所属的表名称,该区域的开始行,其创建时间以及最后所有前者的MD5哈希组成

可以在一个区域中存储的行数取决于为该区域定义的阈值,即我认为这可以手动给出。

所以我想做的是:-

如果具有USERID,ROLE&YEAR的表与他们一起可以说是数百万个元组。我想创建两层。
具有区域节点的一层根据年份范围有所​​区别。假设一个区域存储了1990年至1995年的数据,另一个区域存储了1996年至2000年的数据,依此类推。
&第二层在角色上有所区别。例如,一个区域节点为admin(id -1)保存数据,为用户(id -2)保留数据,依此类推。
每个层都有自己的区域服务器,并映射到元数据表和由ZOOKEEPER管理的元数据表中。
请引用下图进一步说明:


也许不止一个动物园管理员可以同步工作,由他们上方的另一个动物园管理员管理。

这就是我要提出的设计,我想询问其可行性

最佳答案

如果创建两个表,则hbase会在需要时自动进行拆分和重新平衡。
如果要手动预分割表,则可以在创建时为每个表指定所需的键范围集,hbase将为每个范围创建一个区域。那么平衡器将负责将不同的区域分配给不同的机器。
您不需要关心Zookeeper,-ROOT-或.META。

http://blog.cloudera.com/blog/2013/04/how-scaling-really-works-in-apache-hbase/

关于database - HBase区域中的数据可以根据family:column的值手动进行排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27501809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com