【问题标题】:From monthly table to daily table in Bigquery从 Bigquery 中的月表到日表
【发布时间】:2023-12-06 16:58:01
【问题描述】:

我尝试将月表分解为日表以提高性能。假设我有以下 n 行模式:

field1  STRING  NULLABLE    
field2  STRING  NULLABLE    
field3  RECORD  NULLABLE    
field4  STRING  REPEATED    
field5  STRING  REPEATED    
field5  STRING  REPEATED    
field6  STRING  NULLABLE
.
.
.
.
fieldn  STRING  REPEATED 

我尝试使用 Web UI 创建表,每天查询数据,将结果保存到另一个表(每日表)[1]。但是我有很多REPEATED 列,所以我不得不FLATTEN 表。

SELECT
  ...
FROM (
    FLATTEN((
      SELECT
        ...
      FROM (
          FLATTEN((
            SELECT
              ...
            FROM
              table),
            field3)
          )
        ),
      f4)
    )
  )

我不想为每个重复列创建多条记录,我想保留月表的架构和信息。最好的方法是什么?

【问题讨论】:

标签: google-bigquery gcloud


【解决方案1】:

在 Web UI 中 - 保留架构 - 你应该在下面做

  1. 点击“显示选项”

对于旧版 SQL

  1. 设置餐桌
  2. 选中“允许大型结果”复选框
  3. 取消选中“扁平化结果”复选框

对于标准 SQL

  1. 设置餐桌
  2. 取消选中“使用旧版 SQL”复选框

那么,你应该在下面使用:

SELECT * FROM YourTable WHERE <condition to filter given day rows>

【讨论】:

    最近更新 更多