【问题标题】:Query performance on record type vs flatten table in BigQueryBigQuery 中记录类型与展平表的查询性能
【发布时间】:2012-11-02 13:50:44
【问题描述】:

我有一个带有“订单”的表格,以及以 JSON 形式提供的“订单行”,将其作为 JSON 存储在 BigQuery 中很简单。我可以运行一个进程将文件展平为行,但这是一种负担,并且会使 BigQUery 表变大。

BigQuery 的最佳性能结构是什么?假设我对总和或产品以及订单行中的销售有疑问。

记录列中“记录”(或“订单行”)数量的最佳做法是什么?它可以包含数千个还是针对少数几个?假设我会像在基于 MongoDB 文档的数据库中一样查询它。

这将帮助我规划正确的架构。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    BigQuery 的列式架构旨在以高性能方式处理嵌套和重复的字段,并且通常可以尽可能快地返回查询结果,就像这些记录被展平时一样。事实上,在某些情况下,(取决于您的数据和您正在运行的查询类型)使用已经嵌套的记录实际上可以让您避免附加额外步骤的子查询。

    简短回答:不要担心扁平化,将数据保持在嵌套结构中,无论哪种方式查询性能通常都是一样的。

    但是,关于您的第二个问题:您的记录限制将取决于您可以在单个记录中存储多少数据。目前是 BigQuery 的per row maximum is 100MB。一条记录中可以有很多很多重复的字段,但它们需要符合这个限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多