使用自动检测的动态 BigQuery 架构:错误架构没有字段

Posted

技术标签:

【中文标题】使用自动检测的动态 BigQuery 架构:错误架构没有字段【英文标题】:Dynamic BigQuery Schema using Auto Detection:Error Schema has no fields 【发布时间】:2020-02-18 05:42:40 【问题描述】:

我试图弄乱 Bigquery 中的自动检测功能,目前我在更新我的表上的架构时遇到了问题。

目前我做了什么。

    我在 Bigquery 中手动创建了数据集和表名。 执行我的第一个 bq 加载命令(运行良好):
bq --location=$LOCATION load --autodetect --source_format=$FORMAT $DATASET.$TABLE $PATH_TO_SOURCE.
    我尝试附加一个引入了新字段的新 JSON 对象,以更新当前架构。 执行第二个 bq 加载命令:
bq --location=$LOCATION load --autodetect --schema_update_option=ALLOW_FIELD_ADDITION --source_format=$FORMAT $DATASET.$TABLE $PATH_TO_SOURCE
    引发错误:

    查询字符串错误。 错误处理作业。 Schema 没有字段。

我认为当启用--autodetect 标志时,bq load 命令不会在您的加载作业中请求模式。有人遇到过这个问题吗?

第一个对象:

  
    "chatSessionId": "123",
    "chatRequestId": "1234",
    "senderType": "CUSTOMER",
    "senderFriendlyName": "Player"
  

第二个对象:


    "chatSessionId": "456",
    "chatRequestId": "5678",
    "senderType": "CUSTOMER",
    "senderFriendlyName": "Player",
    "languageCode": "EN"
  

【问题讨论】:

你能提供一段你加载的第一个数据和你用来更新的数据吗?您发布的错误是完全错误? 【参考方案1】:

我重现了您的步骤,但无法重现您在下图中看到的相同错误: 加载第一个 JSON 第一张表的数据 加载第二个 JSON 秒表数据

我在你的数据中唯一改变的是格式:你提供了一个JSON,我把它变成了一个NEWLINE DELIMITED JSONBigQuery 期望的 JSON 类型)。 你可以找到更多关于它的信息here。 如果它为您澄清了什么,请告诉我。

希望对你有帮助。

【讨论】:

谢谢,我可能会看看这个。因为基本上我正在尝试做的事情。干杯! :)

以上是关于使用自动检测的动态 BigQuery 架构:错误架构没有字段的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 自动检测架构导致加载 Google Drive CSV 失败

让 BigQuery 自动检测架构

在 Bigquery 中查询外部表并且新数据到达时没有架构自动检测

BigQuery 代码段中的错误

BigQuery - 通过应用脚本上传带有模式自动检测的 csv

BigQuery 自动检测不适用于不一致的 json?