为什么 BigTable 有列族?

use*_*457 4 bigtable google-cloud-bigtable

为什么 BigTable 的结构是“family:qualifier”的两级层次结构?具体来说,为什么要强制执行此操作,而不是仅仅拥有列,并建议用户将其限定符命名为“vertical:column”?

我感兴趣的是强制执行此操作是否可以实现某些工程优化,或者这是否严格来说是一个设计问题。

Sol*_*kis 7

家庭团体有几个优点:

  1. 通过在单个列族中获取一组列限定符,查询变得更加容易

  2. Bigtable 有一个“局部性组”的概念。位置组允许将列族写入单独的文件,这在某些列族访问频率低于其他列族的情况下很有帮助。您可以在 HBase 与 Bigtable 的分析中看到一些有关位置组的信息。

  • 嗨,Solomon Duskis,感谢您提到“本地群体”的概念。这可能可以解释为什么当我们将数据分割到多个列族时,我们的基准测试中没有看到立即性能提升(如此处报告:/sf/ask/3252603371/列族)。难道我们的两个列族仍然存储在同一个位置组中吗?如何确定局部组中列族的分组?这是根据访问模式动态完成的,还是我们可以显式声明? (2认同)