2017-09-07 46 views
1

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

所以有是我两个选择:

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

这里有一些我的理解,请纠正我,如果有任何错误。

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

任何建议或做我需要之前考虑任何其他因素做出决定?是否有任何典型案例多表/多列家族胜过其他?

感谢

回答

0

你点是正确的,只要按照简单的规则:

如果来自不同来源的数据是相关的,具有相同的键或键可以转换为相同的密钥,把它放在同一表在不同的列家庭。你会得到更好的扫描和更好的数据安排。

如果数据不能粘在一起,请将它放在单独的表中。一张大桌子只会导致问题:您将有更长的扫描时间,大多数柱子系列将为空。