google-bigquery - 当目标包含 REPEATED 字段时,如何从一个 BigQuery 表复制到另一个?
问题描述
我有两个具有相似架构的表,但一个具有模式设置为 REPEATED 的字段子集。例如:
模式 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 数组,每个数组只有一个元素。我假设一个 SQL 命令INSERT INTO TABLE2 (id, name, created ...) SELECT id, name, created FROM TABLE1;
应该可以完成这项工作,但我找不到正确的语法。
(将来表 2 将有多行parameters
写入的数据,因此需要复制)
我在https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax看到了文档,但似乎没有任何建议适合我的用例。你能为我指出正确的方向吗?
谢谢!
解决方案
推荐阅读
- linux - “crontab”与“crontab -”当管道进入它时?
- java - Skybox 在使用 LWJGL 和 PNGDecoder 加载纹理时呈现黑色
- arrays - React Native:对多维数组进行排序
- c# - 使用 MSBuild 15 发布 ASP.NET Core
- ios - 如何在加载 URLRequest 之前在 webView 中设置 localStorage 项?
- python - 如何使用 Python/Pandas 将数据框的其他行合并到当前行
- python - 类以某种方式链接列表
- c# - 如何从高分系统的 JSON 对象中获取所有值
- radeditor - RadEditor 点点外观
- android - 保存 HTML 并在 Android 中阅读