将数据从 Google PubSub 主题流式传输到 Google BigQuery

Stream data from Google PubSub topic to Google BigQuery

我想读取有关 Google PubSub 主题的传入数据,处理数据并将其转换为统一的数据结构,然后将其插入 Google BigQuery 中的数据集。据我了解,可以使用某种流式传输数据的管道。但是,我很难找到实现此目的的任何好的和简洁的示例。

我的项目是用 Scala 编写的,所以我更喜欢用该语言编写的示例。否则 Java 中的一些简洁的东西也可以。

谢谢!

我会说 Google Cloud Dataflow 是适合您的用例的产品。它恰好用于您所描述的内容:从不同来源读取输入数据(在您的情况下为 Pub/Sub),对其进行转换,然后将其写入接收器(此处为 BigQuery)。

Dataflow 与 BatchStreaming 管道一起工作。在前者中,所有数据在创建时都可用,而后者是您需要的版本,它不断从无限制的源(例如 Pub/Sub 订阅)读取数据,并尽快处理数据当它到达管道时。

此外,您会发现 Dataflow 团队最近发布了一些模板的测试版很有用,您可以使用这些模板更轻松地开始使用 Dataflow。在这种情况下,甚至还有 Cloud Pub/Sub to BigQuery template available, which you can use as it is, or modify its source code (available in the official GitHub repository) 以便添加您想要在 Pub/Sub-read 和 BigQuery-write 之间应用的任何转换。

请注意,最新的 Dialogflow Java SDK 基于 Apache Beam,其中包含大量您可能会感兴趣的文档和代码参考: