从每月表到Bigquery的每日表

时间:2016-08-19 21:38:46

标签: google-bigquery gcloud

我尝试将每月表分解为每日表以提高性能。假设我有以下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)
    )
  )

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

1 个答案:

答案 0 :(得分:3)

在Web UI中 - 保留架构 - 您应该在下面执行

  1. 点击“显示选项”
  2. for Legacy SQL

    1. 设置表
    2. 选中“允许大结果”复选框
    3. 取消选中“展平结果”复选框
    4. 用于标准SQL

      1. 设置表
      2. 取消选中“使用旧版SQL”复选框
      3. 然后,您应该使用以下内容:

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