【问题标题】:Hbase multiple column families vs multiple tablesHbase 多列族 vs 多表
【发布时间】:2018-02-15 15:41:11
【问题描述】:

我正在为从不同来源生成的数据开发 Hbase 存储。通常,来自同一来源的列更有可能同时被检索到。预期的写入/读取比率大致在 1/10 到 1/100 之间(取决于不同的来源)。

所以我有两个选择:

  • 多列族:只需创建一个表和多个列族,同一来源的每种数据将形成一个列族。
  • 多个表:为每个源创建一个表(具有一个列族)。

以下是我的一些理解,如有错误请指正。

  • 多表解决方案适用于动态添加新源。虽然多柱系列解决方案可能会停机。
  • 如果不同来源的rowkey有不同的分布(例如,int user_id vs image GUID)或基数,也​​许最好分成不同的表?
  • 我们可能需要同时从不同来源检索同一行键的列。这样,多列族可能会更快(不确定)?

在做出决定之前有什么建议或者我需要考虑其他因素吗?有没有多表/多列族优于其他的典型案例?

谢谢

【问题讨论】:

    标签: hbase column-family


    【解决方案1】:

    你的观点是正确的,只要遵循简单的规则:

    如果来自不同来源的数据相关并且具有相同的键或键可以转换为相同的键,则将其放在不同列族的同一张表中。您将获得更好的扫描和更好的数据排列。

    如果数据不能粘在一起,把它放在单独的表中。一张大表只会导致问题:您将进行更长的扫描,并且大多数列族将是空的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      相关资源
      最近更新 更多