在 Bigquery 中从每月 table 到每天 table

From monthly table to daily table in Bigquery

我试图将每月 table 分解为每天 table 以提高性能。假设我有以下 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 

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

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

我不想为每个重复的列创建多条记录,我想保留每月 table 的架构和信息。执行此操作的最佳方法是什么?

在 Web 中 UI - 要保留架构 - 您应该执行以下操作

  1. 点击"Show Options"

旧版 SQL

  1. 设置table
  2. 选中 "Allow Large Results" 复选框
  3. 取消选中 "Flatten Result" 复选框

标准 SQL

  1. 设置table
  2. 取消选中 "Use Legacy SQL" 复选框

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

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