BigTable:将ID存储为限定符吗?

时间:2019-02-27 16:17:55

标签: bigtable google-cloud-bigtable

在GCP文档上显示:

  

由于Cloud Bigtable表稀疏,因此您可以在每一行中创建任意数量的列限定符。连续的空单元格没有空间损失。结果,将列限定符视为数据通常很有意义。例如,如果表存储用户帖子,则可以将每个帖子的唯一标识符用作列限定符。

https://cloud.google.com/bigtable/docs/schema-design#column_families

有人可以帮我举个例子吗? 如果我有1M用户,每个帖子有1000条帖子,那么拥有1B列限定符(1M * 1000)是否有意义?

谢谢!

1 个答案:

答案 0 :(得分:1)

这里有两个相关的约束:

  1. 每行硬限制为256 MB
  2. 不能在不同的节点上拆分行,这会阻止并行化

因此,您要避免在一行中存储来自多个用户的数据。这样一来,您就不会再有1B个帖子了。但是,如果有1M行,每行有1000个限定符,则应该没问题。您可以将列限定符视为Hashmap中的键。 与SQL或列族不同,每行中的限定符与另一行中的限定符完全无关。