Hbase多列系列与多个表

时间:2017-09-07 03:10:14

标签: hbase column-family

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

所以我有两个选择:

  • 多列系列:只需创建一个表和多个列系列,来自同一来源的每种数据都将构成一个列族。
  • 多个表格:为每个来源创建一个表格(包含一个列族)。

以下是我的一些理解,如果有任何错误,请纠正我。

  • 多表解决方案适用于动态添加新源。虽然多列系列解决方案可能会有停机时间。
  • 如果不同来源的rowkey有不同的分布(例如,int user_id vs image GUID)或基数,那么拆分成不同的表可能会更好吗?
  • 我们可能有一些要求同时从同一个rowkey的不同来源检索列。这样,多列系列可能更快(不确定)?

在做出决定之前,我是否需要考虑任何其他因素?是否有任何典型情况下多表/多列系列优于另一个?

由于

1 个答案:

答案 0 :(得分:0)

您的观点是正确的,只需遵循简单的规则:

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

如果数据无法粘在一起,请将其放在单独的表格中。一个大表只会导致问题:您将有更长的扫描时间,大多数列系列都将为空。