查询BigQuery中记录类型与展平表的性能

时间:2012-11-02 13:50:44

标签: google-bigquery

我有一个带有“订单”的表和一个以JSON形式出现的“订单行”,在BigQuery中将其存储为JSON很简单。我可以运行一个进程将文件展平为行,但这是一个负担,并使BigQUery表更大。

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

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

这有助于我规划正确的架构。

1 个答案:

答案 0 :(得分:2)

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

简短回答:不要担心扁平化,将数据保存在嵌套结构中,查询性能通常都是相同的。

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