【问题标题】:Best Design for a Table in BigTableBigTable 中的最佳表格设计
【发布时间】:2021-07-28 18:22:14
【问题描述】:

我有一个工作负载,我需要将表迁移到 BigTable 并包含以下信息:

  • 社会安全号码 (SSN)
  • 每个 SSN 的 600 个分数值。 Scote 的这一数量在未来几年可能会增加。

我们有大约 2.4 亿个 SSN。

必须为在 1000 到数百万个 SSN 范围内寻找 1 到 10 分的查询准备表格。

哪种设计适合这种解决方案?:

选项 A:

  • 仅使用 SSN 作为 RowKey
  • 将每个分数创建为一列

例子:

行键列

123456789 S1:100 S2:200 S3:300 S4:400 ..... S600:600

234567890 S1:101 S2:201 S3:301 S4:401 ..... S600:601

选项 B:

  • 使用 SSN 和 Score 作为 RowKey
  • 作为一个Column,我只有一个Score的值

例子:

行键列

123456789#S1 得分:100

123456789#S2得分:200

123456789#S3得分:300

123456789#S4得分:400

.....

123456789#S600 分数=600

234567890#S1 得分:101

234567890#S2 得分:201

234567890#S3 得分:301

234567890#S4 得分:401

.....

234567890#S600 得分:601

【问题讨论】:

    标签: google-cloud-bigtable


    【解决方案1】:

    根据我在关于ColumnsColumn Families 的最佳实践的documentation 中看到的内容,我知道您提供的第二种方法是最合适的,因为建议避免使用太多任何单行中的列。

    您还可以将第一种方法的列分组到列族中,因为建议将相似的列分组到列族中。

    我看到,在第二个选项之后,您还遵循了将列限定符视为数据的良好做法,总体而言,这让我认为这是最合适的决定。

    您可以在提供的文档中查看一些示例,并了解有关在 Big Table 中构建表格的最佳实践的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 2011-11-18
      • 2019-05-05
      • 2011-10-22
      • 1970-01-01
      相关资源
      最近更新 更多