使用 Load Table API 时,BigQuery 不接受在线生成的架构定义架构生成器
Posted
技术标签:
【中文标题】使用 Load Table API 时,BigQuery 不接受在线生成的架构定义架构生成器【英文标题】:Schema definition generated online Schema-Generator is not accepted by BigQuery while using Load Table API 【发布时间】:2014-09-03 09:48:17 【问题描述】:我们将不胜感激。
我有几个不同的 JSON 文档需要插入 BigQuery。现在为了避免手动生成模式,我使用了可用的在线 Json 模式生成工具的帮助。但是 BigQuery 加载数据向导不接受它们生成的架构。 例如:对于这样的 Json 数据:
"_id":100,"actor":"KK","message":"CCD is good in Pune",
"comment":["actor":"Subho","message":"CCD is not as good in Kolkata.",
"actor":"bisu","message":"CCD is costly too in Kolkata"]
在线工具生成的schema是:
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Generated from c:jsonccd.json with shasum a003286a350a6889b152
b3e33afc5458f3771e9c",
"type": "object",
"required": [
"_id",
"actor",
"message",
"comment"
],
"properties":
"_id":
"type": "integer"
,
"actor":
"type": "string"
,
"message":
"type": "string"
,
"comment":
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items":
"type": "object",
"required": [
"actor",
"message"
],
"properties":
"actor":
"type": "string"
,
"message":
"type": "string"
但是当我在加载数据向导中将它放入 BigQuery 时,它会因错误而失败。
如何缓解这种情况?
谢谢。
【问题讨论】:
这并没有查看所有 BigQuery 架构,它是其他一些架构,您会感到困惑。你用的是什么生成器? @Pentium 10 - 你可能没有仔细阅读我的问题。我在这里打印的模式是从在线 Json 模式生成器生成的。这是有效的。但 BigQuery 不接受这种格式。现在这里有根据 BigQuery 可接受的格式生成 Schema 的任何工具或实用程序吗? 无效格式错误。无法解析架构。所以它甚至没有创建表。 该工具会为您生成一些 Json Schema,但它不是 BQ 识别的格式。阅读 BQ 文档如何在 BQ 中定义表结构。目前还没有生成器可以执行这些操作。 【参考方案1】:该工具生成的架构比 BigQuery 所需的复杂得多。
查看文档中的示例:
"schema":
"fields": [
"name":"f1", "type":"STRING",
"name":"f2", "type":"INTEGER"
]
,
https://developers.google.com/bigquery/loading-data-into-bigquery?hl=en#loaddatapostrequest
同时,问题中提到的工具添加了诸如 $schema、描述、类型、必需、属性等字段,这些字段对于 BigQuery 架构解析器来说是不必要且令人困惑的。
【讨论】:
谢谢各位!我已经完成了 BigQuery 加载,但我只是想从这个论坛知道的事情,如果有人可以为 BigQuery 架构指出任何自动生成器工具。 @Subhayu 据我们所知,没有用于 BQ 模式的自动生成工具,模式是如此独特以至于您不需要它们。而且手动创建甚至编写json模式都非常简单。 以防其他人在寻找 - bigquery-json-schema-generator.com以上是关于使用 Load Table API 时,BigQuery 不接受在线生成的架构定义架构生成器的主要内容,如果未能解决你的问题,请参考以下文章
使用 load_table_from_dataframe 方法将数据写入 BigQuery 表错误 - 'str' 对象没有属性 'to_api_repr'
使用 load_table_from_dataframe 时出错
错误:使用 load_table_from_json 将数据插入 BigQuery 时,字段 X“已将类型从 NUMERIC 更改为 FLOAT”
sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu