gpt4 book ai didi

hbase - 基于列或基于行的HBase

转载 作者:行者123 更新时间:2023-12-04 04:57:40 24 4
gpt4 key购买 nike

我想知道HBase是使用基于列的存储还是基于行的存储?

  • 我阅读了一些技术文档,并提到了HBase的优点,即使用基于列的存储将相似的数据存储在一起以促进压缩。因此,这意味着将不同行的相同列存储在一起;
  • 但是我还了解到HBase是一个排序的键-值映射。它使用键来寻址该键(行)的所有相关列,因此它似乎是基于行的存储吗?

  • 如果有人能澄清我的困惑,我将不胜感激。

    提前致谢,
    乔治

    最佳答案

    乔治,这是我从HBaseCon 2012了解HBase模式的演讲:

    http://www.cloudera.com/content/cloudera/en/resources/library/hbasecon/video-hbasecon-2012-hbasecon-2012.html

    简而言之,HBase中的每一行实际上都是键/值映射,您可以在其中具有任意数量的列(键),每列都有一个值。 (而且,从技术上讲,每个参数都可以具有带有不同时间戳的多个值)。

    此外,“列族”使您可以在同一行中的不同物理(磁盘)文件中托管多个键/值映射。这有助于在某些情况下优化您的值集,这些值集通常与其他集不相交地访问(因此,减少了读取磁盘的工作量)。当然,要权衡的是,如果将列分为两个列族,则需要读取一行中的所有值,这是更多的工作,因为所需磁盘访问次数是原来的两倍。

    与更标准的“面向列”数据库不同,我从未听说有人创建过一个HBase表,该表具有每个逻辑列的列族。与列族相关的开销很大,通常建议通常不超过3个或4个。列族是“设计时”信息,这意味着您必须在创建(或更改)表时指定它们。

    通常,我发现列族是一种高级设计选项,只有在您对HBase的体系结构有深刻的了解之后,才可以使用它,并且可以证明这将是一个净 yield 。

    因此,总的来说,虽然HBase确实可以以“面向列”的方式工作,但这并不是HBase中的默认模式,也不是最常见的设计模式。最好将其视为具有键/值映射的行存储。

    关于hbase - 基于列或基于行的HBase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11816609/

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