我正在为从不同来源生成的数据开发 Hbase 存储。通常,来自同一来源的列更有可能同时被检索到。预期的写入/读取比率大致在 1/10 到 1/100 之间(取决于不同的来源)。
所以我有两个选择:
- 多列族:只需创建一个表和多个列族,同一来源的每种数据将形成一个列族。
- 多个表:为每个源创建一个表(具有一个列族)。
以上是我的一些理解,如有错误请指正。
- 多表解决方案适用于动态添加新源。而多列系列解决方案可能会有停机时间。
- 如果不同来源的rowkey具有不同的分布(例如,int user_id vs image GUID)或基数,也许最好拆分成不同的表?
- 我们可能有一些要求来同时从不同来源检索同一行键的列。这样,多列族可能会更快(不确定)?
在做出决定之前有什么建议或者我需要考虑任何其他因素吗?有没有典型案例多表/多列族优于其他?
谢谢