如何使用 SQL 将重复数据插入 BigQuery 表

Posted

技术标签:

【中文标题】如何使用 SQL 将重复数据插入 BigQuery 表【英文标题】:How to insert repeated data to BigQuery table using SQL 【发布时间】:2018-12-03 13:16:26 【问题描述】:

我有 2 个具有以下架构的表:

    客户(CLIENT_ID, CLIENT_NAME) 地址(ADDRESS_ID, CLIENT_ID, STREET, ZIP_CODE)

假设 1 个地址属于 1 个客户端,而 1 个客户端可能有多个地址。

我想在 BigQuery 中使用 CLIENT_ID, CLIENT_NAME, ADDRESSES 创建一个 D_CLIENTS 表(记录,重复)。如何使用 SQL 的 Insert into 脚本向该表插入数据?

【问题讨论】:

【参考方案1】:

我将编写创建表的查询(否则我无法插入),但将其修改为然后插入应该是微不足道的:

CREATE TABLE `deleting.addresses`
AS

WITH clients AS (
  SELECT 1 AS id, 'Dean Finn' AS name
), addresses AS (
  SELECT * FROM UNNEST([(STRUCT(8 AS id, 1 AS client_id, "Spear" AS street, "94105" AS zip))])
)

SELECT a.id client_id, ANY_VALUE(name) name, ARRAY_AGG(STRUCT(street, zip)) addresses
FROM clients a JOIN addresses b ON a.id=b.client_id
GROUP BY 1

【讨论】:

以上是关于如何使用 SQL 将重复数据插入 BigQuery 表的主要内容,如果未能解决你的问题,请参考以下文章

查询 Bigquery 重复字段

在 C# 中插入具有重复记录列的 BigQuery 行

Datalab 到 BigQuery - 将变量值插入 SQL

如何在 BigQuery 中使用标准 SQL 查询 GA RealtimeView?

在 Cloud SQL 中插入 bigquery 结果

从 Google 脚本将数据插入 BigQuery:遇到“”