gpt4 book ai didi

bigdata - Bigtable 性能影响列族

转载 作者:行者123 更新时间:2023-12-03 17:16:16 26 4
gpt4 key购买 nike

我们目前正在调查使用多个列族对我们的 bigtable 查询性能的影响。我们发现将列拆分为多个列族并不会提高性能。有没有人有过类似的经历?

关于我们的基准设置的更多细节。此时,我们生产表中的每一行都包含大约 5 列,每列包含 0.1 到 1 KB 的数据。所有列都存储在一个列族中。执行行键范围过滤器(平均返回 340 行)并应用列正则表达式拟合器(每行仅返回 1 列)时,查询平均需要 23.3 毫秒。我们创建了一些测试表,其中每行的列/数据量增加了 5 倍。在测试表 1 中,我们将所有内容都保留在一个列族中。正如预期的那样,这将同一查询的查询时间增加到 40.6 毫秒。在测试表 2 中,我们将原始数据保留在一个列族中,但将额外的数据放入另一个列族中。当查询包含原始数据的列族(因此包含与原始表相同的数据量)时,查询时间平均为 44.3ms。所以当使用更多的列族时,性能甚至会下降。

这与我们预期的完全相反。例如。这在 bigtable 文档中提到( https://cloud.google.com/bigtable/docs/schema-design#column_families )

Grouping data into column families allows you to retrieve data from a single family, or multiple families, rather than retrieving all of the data in each row. Group data as closely as you can to get just the information that you need, but no more, in your most frequent API calls.



有人对我们的发现有解释吗?

benchmark results

(编辑:添加了更多细节)

单行内容:

表 1 :
  • CF1
  • col1
  • col2
  • ...
  • col25

  • 表 2 :
  • CF1
  • col1
  • col2
  • ..
  • col5
  • CF2
  • col6
  • col7
  • ..
  • col25

  • 我们正在执行的基准测试是使用 go 客户端。调用API的代码基本如下:
    filter = bigtable.ChainFilters(bigtable.FamilyFilter(request.ColumnFamily),
    bigtable.ColumnFilter(colPattern), bigtable.LatestNFilter(1))
    tbl := bf.Client.Open(table)
    rr := bigtable.NewRange(request.RowKeyStart, request.RowKeyEnd)
    err = tbl.ReadRows(c, rr, func(row bigtable.Row) bool {return true}, bigtable.RowFilter(filter))

    最佳答案

    如果您每行检索 X 个单元格,无论这些单元格是在 X 个单独的列族中还是在具有 X 个列限定符的 1 个列族中,都不会产生重大的性能差异。

    如果您实际上只需要具有某些特定用途的行的单元格,则性能差异就会出现 - 您可以避免选择该行的所有单元格,而只获取一个列族(通过指定 filter on the ReadRow call )

    一个更重要的因素是简单地选择一个准确描述您的数据的模式。如果你这样做,上述类型的任何 yield 都会自然而然地出现。此外,您将避免达到 100 个列族推荐限制。

    例如:假设您正在编写排行榜软件,并且您想要存储玩家在每场比赛中的得分和一些个人详细信息。您的架构可能是:

  • 行键:用户名
  • 列族用户信息
  • 列限定符 全名
  • 列限定符 密码哈希
  • 列族 game_scores
  • 列限定符 candy_royale
  • 列限定符 坦克冲突

  • 将每个游戏作为一个单独的列存储在 game_scores 列族中允许一次获取用户的所有分数而无需同时获取 user_info,允许保持列族的数量可管理,允许每个游戏独立的时间序列分数和其他好处从反射(reflect)数据的性质。

    关于bigdata - Bigtable 性能影响列族,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46465762/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com