BigQuery 手册指出只能添加新字段,而不能修改现有字段。我的问题是是否可以将现有字段添加到记录字段中。假设原始架构是:
{"type":"RECORD","name":"record","mode":"REPEATED"
"fields":[
{"type":"STRING","name":"f1","mode":"NULLABLE"}
]
}
Run Code Online (Sandbox Code Playgroud)
我想添加 f2 所以架构将是:
{"type":"RECORD","name":"record","mode":"REPEATED"
"fields":[
{"type":"STRING","name":"f1","mode":"NULLABLE"},
{"type":"STRING","name":"f2","mode":"NULLABLE"}
]
}
Run Code Online (Sandbox Code Playgroud)
是否可以?
控制台不支持向 STRUCT 添加新字段,但您可以使用 BigQuery CLI 添加它,如下所示
在控制台模式下:
经典 BigQuery 网页界面当前不支持向现有 RECORD 列添加新的嵌套字段。
使用 BigQuery CLI:
在此选项中,您可以创建新架构并用于bq update project_id:dataset.table schema更新表。
正如您可以在链接中找到的:
- 首先,发出带有 --schema 标志的 bq show 命令并将现有表架构写入文件。如果您要更新的表位于默认项目以外的项目中,请按以下格式将项目 ID 添加到数据集名称:project_id:dataset.table。[...]
bq show \
--schema \
--format=prettyjson \
project_id:dataset.table > schema_file
Run Code Online (Sandbox Code Playgroud)
- 在文本编辑器中打开架构文件。该架构应如下所示。在此示例中,column3 是嵌套的重复列。嵌套列是nested1 和nested2。fields 数组列出了嵌套在 column3 中的字段。[...]
- 将新的嵌套列添加到 fields 数组的末尾。在此示例中,nested3 是新的嵌套列。[...]
- 更新架构文件后,发出以下命令来更新表的架构。如果您要更新的表位于默认项目以外的项目中,请按以下格式将项目 ID 添加到数据集名称:project_id:dataset。[...]
bq update mydataset.mytable /tmp/myschema.json
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
9219 次 |
| 最近记录: |