发布/订阅 csv 数据到 Dataflow 到 BigQuery

时间:2021-01-02 18:23:55

标签: google-cloud-platform google-bigquery google-cloud-dataflow apache-beam google-cloud-pubsub

我的管道是 IoTCore -> Pub/Sub -> Dataflow -> BigQuery。最初我得到的数据是 Json 格式,管道工作正常。现在我需要转移到 csv,问题是我使用的 Google 定义的数据流模板使用 Json 输入而不是 csv。是否有一种简单的方法可以通过数据流将 csv 数据从 pub/sub 传输到 bigquery。模板可能可以更改,但它是用 Java 实现的,我从未使用过,因此需要很长时间才能实现。我还考虑在 python 中实现一个完整的自定义模板,但这会花费太长时间。 这是谷歌提供的模板的链接: https://github.com/GoogleCloudPlatform/DataflowTemplates/blob/master/src/main/java/com/google/cloud/teleport/templates/PubSubToBigQuery.java

示例:目前我的 pub/sub 消息是 JSON 并且这些工作正常

"{"Id":"123","Temperature":"50","Charge":"90"}"

但我需要将其更改为逗号分隔值

"123,50,90"

2 个答案:

答案 0 :(得分:1)

很简单:什么都不做!!如果您查看 this line,您会发现所使用的消息类型是 PubSub 消息 JSON,而不是您的 JSON 内容。

因此,为了防止出现任何问题(查询和插入),请写入另一个表,它应该可以正常工作!

答案 1 :(得分:1)

能否请您分享您正在解析 JSON 格式数据和新旧数据示例的现有 Python 代码,以便对其进行相应的定制。

另外你可以参考Python code这里,它已经在PCollection上进行了字数转换逻辑,希望它能给你一些参考来定制你的代码。