【问题标题】:Hbase schema design - Suggestion RequiredHbase 架构设计 - 需要建议
【发布时间】:2012-08-11 14:20:34
【问题描述】:

我最近开始试验 Hbase 和 hadoop 堆栈。我正在尝试从头开始构建应用程序。我正在为将使用 google n-gram 数据集的应用程序设计架构。

我意识到可以将数据集制成一个模型,其中 ngram 作为行键,一个列族具有许多限定符(Year,page count,match_count),或者模型可以将 n-gram 作为行键和多个Year,page_count,match_count 的列族。

我意识到模型取决于我想使用这些数据的方式,但我想了解这两种方法的优缺点。

干杯, 德瓦拉克

【问题讨论】:

    标签: nosql hbase schema-design


    【解决方案1】:

    考虑阅读 Hbase 书中的这一章:6.2. On the number of column families

    “HBase 目前不能很好地处理两个或三个列族以上的任何内容,因此请保持架构中的列族数量较少。目前,刷新和压缩是在每个区域的基础上完成的,因此如果一个列族携带大量数据带来flush,相邻的family也会被flush,尽管它们携带的数据量很小。当column family多时,flush和compaction的交互会导致一堆不必要的i/o加载(待解决更改刷新和压缩以在每个列族的基础上工作)。”

    “如果可以在架构中尝试使用一个列族。仅在数据访问通常是列范围的情况下引入第二个和第三个列族;即您查询一个列族或另一个但通常不两者同时”

    现在,请记住,所有列族成员在物理上都存储在文件系统中。因为调整和存储规范是在列族级别完成的,所以建议所有列族成员都具有相同的一般访问模式和大小特征。如果您的所有数据都将同时处理,那么您可能需要考虑使用只有一个列族的表。您最好不要使用多个系列,除非它们几乎一直单独使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2011-11-13
      相关资源
      最近更新 更多