如何将嵌套字段添加到我的 BigQuery 表架构?

Posted

技术标签:

【中文标题】如何将嵌套字段添加到我的 BigQuery 表架构?【英文标题】:How do I add a nested field to my BigQuery table schema? 【发布时间】:2017-01-13 15:40:35 【问题描述】:

我正在尝试向我的 BigQuery 表架构添加一个嵌套字段。我通常可以通过 Web UI 或命令行执行此操作,但是当我尝试使用嵌套字段时,我收到以下错误,因为新字段名称中包含 .

Error updating schema: Fields must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 128 characters long.

如何添加嵌套字段?

【问题讨论】:

【参考方案1】:

使用bq命令行工具,首先导出表的架构:

bq show --format=prettyjson your-project:your_dataset.table_to_update | python -c 'import sys,json; print(json.dumps(json.load(sys.stdin)["schema"]["fields"]))' > table_schema.json

然后手动将新的嵌套字段添加到 JSON。添加后,将更新后的架构推送到 BigQuery:

bq update -t --schema='updated_table_schema.json' your-project:your_dataset.table_to_update

【讨论】:

完美!谢谢。它一开始没有用,因为它引发了No JSON object could be decoded。但是我手动编辑了架构以仅获取字段并且它有效。 写入时启用SchemaUpdateOption.ALLOW_FIELD_ADDITION是否可以自动添加可为空的嵌套字段?

以上是关于如何将嵌套字段添加到我的 BigQuery 表架构?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建保留嵌套 RECORD 字段的 BigQuery 视图

查询 Bigquery 重复字段

使用嵌套字段旋转的 bigquery

Bigquery 表嵌套多值列在查询时出错

如何以编程方式在 BigQuery 表中添加字段描述

使用 Golang 将嵌套数据插入 BigQuery