根据消息内容从Dataflow作业写入动态PubSub主题

问题描述 投票:1回答:1

我想根据字段的内容动态地将PCollection的不同元素路由到不同的PubSub主题。主题不是持久的,但是假设它们在运行时执行PubSubIO.Write()时存在。因此,Dataflow应该仅在每个消息的基础上在运行时推断它们的名称。

BigQuery和动态表名称存在该功能:https://beam.apache.org/documentation/sdks/javadoc/2.0.0/org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinations.html

有没有办法与PubSubIO做类似的事情?

也许不是基于消息内容而是基于属性? https://beam.apache.org/documentation/sdks/javadoc/0.6.0/org/apache/beam/sdk/io/PubsubIO.PubsubMessage.html#getAttribute-java.lang.String-

java google-cloud-dataflow apache-beam google-cloud-pubsub
1个回答
1
投票

有没有办法与PubSubIO做类似的事情?

Pub / Sub没有相当于DynamicDestinations的内容。

您需要提前了解所有Pub / Sub主题,并在管道中定义它们。可以基于发布/订阅消息的某个值或属性对管道进行分区,并将其路由到适当的发布/订阅主题。 Partition变换将检查PubsubMessage并确定消息所属的分区。

参考:Partition

也许不是基于消息内容而是基于属性?

是的,您可以访问邮件的属性。

© www.soinside.com 2019 - 2024. All rights reserved.