首页 > 解决方案 > 如何将 JSON 数据发布到 PubSub,然后推送到 BigQuery?

问题描述

我正在以 JSON 格式获取 Twitter 数据,并且我想将该数据(相同的 JSON 格式)推送到 PubSub 主题中。我能够在主题中发布数据,但是当我尝试将数据推送到BigQuery中时,它将数据存储到“ Error record table”中(我已经创建了BigQuery具有正确模式的表并给出了table_iddataset_idas credentials

标签: pythongoogle-cloud-platformgoogle-bigquerygoogle-cloud-pubsub

解决方案


问题可能是由于以下原因:

1] 目标表架构和以 JSON 格式指定的表架构不同。

2] 列的数据类型和 JSON 格式指定的数据类型不同。

可以采取以下纠正措施:

1] 为了解决架构不匹配问题,请确保匹配 JSON 和目标表架构。在创建架构时,请尝试遵循文档 [1] 中提到的这些步骤,该文档解释了如何指定 BigQuery 表的架构。

2] 由于数据类型不匹配,请尝试确保指定正确的数据类型。

考虑以下 JSON 模式:

{"message":"hi","id":65,marks:89.8}

在上面的例子中,其中 message=string,id=integer,marks=float

因此,任何数据类型不匹配的消息都会在错误记录表中发布。

参考:

[1] https://cloud.google.com/bigquery/docs/schemas

[2] https://cloud.google.com/bigquery/docs/error-messages#metadata-errors-for-streaming-inserts

[3] https://cloud.google.com/dataflow/docs/guides/templates/provided-streaming#cloudpubsubtobigquery


推荐阅读