使用自动 Detection:Error 架构的动态 BigQuery 架构没有字段

Dynamic BigQuery Schema using Auto Detection:Error Schema has no fields

我试图破坏 Bigquery 中的自动检测功能,目前我在 table.

上更新架构时遇到问题

我目前做了什么。

  1. 我在 Bigquery 中手动创建了一个数据集和 table 名称。
  2. 执行我的第一个 bq 加载命令(工作得很好):
bq --location=${LOCATION} load --autodetect --source_format=${FORMAT} ${DATASET}.${TABLE} ${PATH_TO_SOURCE}.
  1. 我尝试附加一个新的 JSON 对象,引入新字段以更新当前模式。
  2. 执行第二个 bq 加载命令:
bq --location=${LOCATION} load --autodetect --schema_update_option=ALLOW_FIELD_ADDITION --source_format=${FORMAT} ${DATASET}.${TABLE} ${PATH_TO_SOURCE}
  1. 抛出错误:

    Error in query string. Error processing job. Schema has no fields.

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

第一个对象:

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

第二个对象:

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

我重现了您的步骤,但无法重现您在下图中看到的相同错误:


首先加载 JSON



第一个table的数据



第二次加载 JSON



第二个 table 数据

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

希望对您有所帮助。