Bigquery:无效:非法模式更新

Posted

技术标签:

【中文标题】Bigquery:无效:非法模式更新【英文标题】:Bigquery: invalid: Illegal Schema update 【发布时间】:2014-09-17 14:11:27 【问题描述】:

我尝试将查询中的数据附加到 bigquery 表中。

作业 ID job_i9DOuqwZw4ZR2d509kOMaEUVm1Y

错误:写入 Bigquery 时作业失败。无效:非法模式更新。无法在 null 处添加字段(字段:debug_data)

我复制并粘贴上面 jon 中执行的查询,在 web 控制台中运行它并选择要附加的相同 dest 表,它可以工作。

【问题讨论】:

【参考方案1】:

您列出的作业正在尝试将查询结果附加到表中。该查询有一个名为“debug_data”的字段。您要附加到的表没有该字段。此行为是设计使然,以防止人们意外修改其表的架构。

您可以运行 tables.update() 或 tables.patch() 操作来修改表架构以添加此列(请参阅此处使用 bq 的示例:Bigquery add columns to table schema),然后您将能够运行此查询成功。

或者,您可以在查询作业中使用 truncate 而不是 append 作为写入配置;这将覆盖表,并且这样做会允许架构更改。

【讨论】:

【参考方案2】:

请参阅this post,了解如何让 bigquery 在执行追加时自动将新字段添加到架构中。

python中的代码是:

job_config.schema_update_options = ['ALLOW_FIELD_ADDITION']

【讨论】:

以上是关于Bigquery:无效:非法模式更新的主要内容,如果未能解决你的问题,请参考以下文章

Airflow - BigQuery 架构字段中的值无效

Dataproc + BigQuery 示例 - 有可用的吗?

Google Cloud Dataproc 删除 BigQuery 表不起作用

AppEngine BigQuery PHP 库在运行时不隐含?

BigQuery AEAD 功能的密钥集管理最佳实践 [关闭]

使用 Apache Beam 向 BigQuery 传播插入时如何指定 insertId