当我现在真的不需要此数据时,是否应该避免在HBase表中添加其他列?我的意思是,今天我在过程中有很多细节,一些需要保存到HBase的属性,而某些则不是必需的。我是否应该只保存我收到的所有输入,以防万一将来需要它?这会产生什么影响?为了帮助更好地理解查询,保存400个属性(在400列中)而不是200个属性将如何影响我的系统?
当然,关于可用大小,我将需要两倍大小(这会对成本产生影响,无论是在AWS还是在内部部署)。从表中读取(使用某些API查询它或将数据提取到某个文件中)怎么样?那写桌子呢?还要别的吗?
谢谢!!!

最佳答案

对您的系统的影响可能很大,具体取决于:

  • 您的查询模式是
  • 您如何设计行键
  • 如何将列划分为列族

  • ...还有其他因素。 HBase能够处理400列,但是您必须事先就表的设计做出明智的决定。
    例如,如果您建议仅使用一个列族并将所有列放入其中,那么在查询从200到400时,肯定会看到性能影响。
    另一方面,如果您创建两个列族(“A”和“B”),并将最常查询的列放在A中,而最常查询的列放在B中,那么您更有可能看到您的查询执行效率高。
    如果您还没有的话,建议您阅读《 HBase参考指南》中的本节:
    https://hbase.apache.org/book.html#schema
    了解在设计表时所做的选择如何影响性能和效率。

    关于hadoop - HBase-考虑表中的列数时的任何严重影响(性能,大小等),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64648082/

    10-16 08:31