【发布时间】:2020-02-20 21:55:20
【问题描述】:
我有两个具有相似架构的表,但一个具有将模式设置为重复的字段子集。例如:
架构 1:
[
{"name": "id", "type": "NUMERIC", "mode": "REQUIRED"},
{"name": "name", "type": "STRING", "mode": "REQUIRED"},
{"name": "created", "type": "TIMESTAMP", "mode": "REQUIRED"},
{"name": "valid", "type": "BOOLEAN", "mode": "REQUIRED"},
{"name": "parameter1", "type": "STRING", "mode": "REQUIRED"},
{"name": "parameter2", "type": "FLOAT", "mode": "REQUIRED"},
{"name": "parameter3", "type": "BOOLEAN", "mode": "REQUIRED"}
]
架构 2:
[
{"name": "id", "type": "NUMERIC", "mode": "REQUIRED"},
{"name": "name", "type": "STRING", "mode": "REQUIRED"},
{"name": "created", "type": "TIMESTAMP", "mode": "REQUIRED"},
{"name": "valid", "type": "BOOLEAN", "mode": "REQUIRED"},
{"name": "parameters", "type": "RECORD", "mode": "REPEATED", "fields":
[
{"name": "parameter1", "type": "STRING", "mode": "REQUIRED"},
{"name": "parameter2", "type": "FLOAT", "mode": "REQUIRED"},
{"name": "parameter3", "type": "BOOLEAN", "mode": "REQUIRED"}
]
}
]
我使用这些模式创建了 Table1 和 Table2。 Table1 已写入,Table2 为空。我想将 Table1 的内容复制到 Table2,其中 Table1.parameter1、Table1.parameter2 和 Table1.parameter3 被写入一个 Table2.parameters 数组,每个数组只有一个元素。我假设像 INSERT INTO TABLE2 (id, name, created ...) SELECT id, name, created FROM TABLE1; 这样的 SQL 命令应该可以完成这项工作,但我找不到正确的语法。
(将来表 2 中将写入多行 parameters 的数据,因此需要复制)
我在https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax 看到了文档,但似乎没有一个建议适合我的用例。你能指出我正确的方向吗?
谢谢!
【问题讨论】:
标签: google-bigquery