google-bigquery - 将数据附加到通过 BigQuery 中的 Avro 文件创建的表

标签 google-bigquery avro

每天早上,自 Action 业都会从 Avro 文件创建一个新表。下午,我需要通过查询将一些数据附加到该表中。

当尝试这样做时,我收到以下错误:

Error: Invalid schema update. Field chn has changed mode from REQUIRED to NULLABLE

我注意到我可以在 BigQuery Web UI 中将字段 chn 的属性从 REQUIRED 更改为 NULLABLE,然后它就可以正常工作,但我必须每天手动执行此操作,这不是我想要的。

有没有办法在追加查询期间将字段“转换”为REQUIRED

或者在第一次从 Avro 文件导入期间,强制字段为 NULLABLE 而不是 REQUIRED

谢谢!

最佳答案

允许在查询或加载作业中放松字段的功能很快就会在生产中提供。当它上线时(可能在一周内)我会更新这个答案。

更新:2016 年 8 月 25 日

您可以在加载或查询作业配置中提供 schemaUpdateOptions。 可以提供多个选项。 它允许更新目标表的架构,作为加载或查询作业的副作用。在两种情况下支持架构更新选项:

  • 当 writeDisposition 为 WRITE_APPEND
  • 当 writeDisposition 为 WRITE_TRUNCATE 且目标表是由分区装饰器指定的表的分区时 对于非分区表,WRITE_TRUNCATE 将始终覆盖架构。
  • 支持以下值:

  • ALLOW_FIELD_ADDITION:允许向架构添加可为空的字段
  • ALLOW_FIELD_RELAXATION:允许将原始架构中的必填字段放宽为可为空
  • 注意:目前这不适用于架构自动检测。我们计划很快提供支持。

    关于google-bigquery - 将数据附加到通过 BigQuery 中的 Avro 文件创建的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38999897/

    相关文章:

    google-app-engine - 如何将 Stackdriver 日志导入 BigQuery

    java - 如何获取压缩avro文件中每个avro记录的开始和结束?

    hadoop - CDH 5 中的 AvroRecord 类发生了什么变化?

    hadoop - 从AVSC创建Hive表,其中包含对先前定义的架构的引用作为一种类型

    tensorflow - tf.data.Dataset 中大量数据集的最佳数据流和处理解决方案

    python - 表情符号在上传到 Bigquery 时崩溃

    python - Kafka AvroConsumer 使用 offsets_for_times 从时间戳消费

    maven-plugin - 无法调用 avro-maven 插件

    google-bigquery - SPLIT 可以与多个分隔符一起使用吗?

    google-bigquery - 大查询 : Deleting Duplicates in Partitioned Table