如何使用 DML 语法在 BigQuery 中插入带有 RECORD 字段的记录?

Posted

技术标签:

【中文标题】如何使用 DML 语法在 BigQuery 中插入带有 RECORD 字段的记录?【英文标题】:How do I insert a record with a RECORD field in BigQuery using DML syntax? 【发布时间】:2018-09-16 04:43:04 【问题描述】:

我有这个字段,它是一个记录类型,表中有 3 个子字段(比如说表 A)。我想从另一个表(比如说表 B)复制到这个表,其中这 3 个字段是 BigQuery 中的单独字段:

表 A:

env       Record
env.temp  INTEGER
env.ts    TIMESTAMP
env.desc  STRING

表 B:

env_temp  INTEGER
env_ts    TIMESTAMP
env_desc  STRING

我不知道如何特别为这个记录字段 (env) 构造 INSERT SQL 语句:

INSERT table_A (env) SELECT ???? FROM table_B

请赐教!

【问题讨论】:

【参考方案1】:

你需要做一个STRUCT,例如:

INSERT table_A (env)
SELECT STRUCT(env_temp AS temp, env_ts AS ts, env_desc AS desc) AS env
FROM table_B

【讨论】:

以上是关于如何使用 DML 语法在 BigQuery 中插入带有 RECORD 字段的记录?的主要内容,如果未能解决你的问题,请参考以下文章

在 BigQuery 中安排一系列 DML 语句

BigQuery:使用 DML 原子地替换日期分区

无法在 BigQuery 中使用 DML 语句的作业中设置目标表

BigQuery - 分区表上的 DML 支持

04.DML语言

04.DML语言