使用自动检测的动态 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 JSON
(BigQuery
期望的 JSON 类型)。
你可以找到更多关于它的信息here。
如果它为您澄清了什么,请告诉我。
希望对你有帮助。
【讨论】:
谢谢,我可能会看看这个。因为基本上我正在尝试做的事情。干杯! :)以上是关于使用自动检测的动态 BigQuery 架构:错误架构没有字段的主要内容,如果未能解决你的问题,请参考以下文章
BigQuery 自动检测架构导致加载 Google Drive CSV 失败
在 Bigquery 中查询外部表并且新数据到达时没有架构自动检测