Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Streaming Beam/Cloud数据流:如何将Kafka(或PubSub)主题添加到运行流中_Streaming_Apache Kafka_Google Cloud Dataflow_Apache Beam - Fatal编程技术网

Streaming Beam/Cloud数据流:如何将Kafka(或PubSub)主题添加到运行流中

Streaming Beam/Cloud数据流:如何将Kafka(或PubSub)主题添加到运行流中,streaming,apache-kafka,google-cloud-dataflow,apache-beam,Streaming,Apache Kafka,Google Cloud Dataflow,Apache Beam,(如何)可以将主题作为源或接收器(Kafka或PubSub)动态添加或删除到正在运行的管道中?或者将动态模式作为接收器,就像BigQuery表名一样 一些背景:我们有不同的主题,每个客户一个,以更好地促进下游聚合,并在运行中清理/添加它们。Kafka用于在比PubSub更长的时间段内回填计算 我现在想到的选择要么是扩展KafkaIO以支持这一点,要么是在每次添加或删除主题时更新管道(这意味着更新时流中会有一些延迟)。或者我脑子里有一个错误的设计模式,还有其他解决方案。你是对的,现在最简单的解决方

(如何)可以将主题作为源或接收器(Kafka或PubSub)动态添加或删除到正在运行的管道中?或者将动态模式作为接收器,就像BigQuery表名一样

一些背景:我们有不同的主题,每个客户一个,以更好地促进下游聚合,并在运行中清理/添加它们。Kafka用于在比PubSub更长的时间段内回填计算


我现在想到的选择要么是扩展KafkaIO以支持这一点,要么是在每次添加或删除主题时更新管道(这意味着更新时流中会有一些延迟)。或者我脑子里有一个错误的设计模式,还有其他解决方案。

你是对的,现在最简单的解决方案是更新管道

然而,一个名为SplittableDofn(SDF)的新API目前正在积极开发中;它已经在流模式下的CloudDataflow runner和Direct runner中可用,并且正在Flink和Apex runner中实施

它使“创建卡夫卡主题名称的PCollection并读取每个主题”这样的操作成为可能,因此您可以使用一个管道阶段生成要读取的主题名称(例如,每次添加客户时,名称本身可能会通过Kafka或Pubsub到达,或者您可以编写SDF以查看数据库查询返回客户列表并发出新客户列表的结果),以及阅读这些主题的另一个阶段


请参阅API的设计文档,以及使用此API重构TextIO的示例—您可能希望尝试以类似方式修改KafkaIO自己。

谢谢,我签出了该提案,该提案应该是可行的。在我看来,在没有工作流更新的情况下,也无法将其作为一种新的方式显示在UI中,right?(用于监控目的,以检测引起问题的单个主题)你能澄清一下这个问题吗?你想使用UI手动添加新主题,还是想让UI帮助你查找导致下游问题的主题和记录?这些问题看起来非常不同。抱歉,澄清一下:不通过UI添加。这更多的是关于能够将每个主题订阅/编写器分离到一个单独的步骤/转换(即在UI中可视化时的方框)。原因是更容易监控、错误分析,而且据我所知,还受益于一些数据流恢复和扩展功能,因为这些功能处理传递到各个步骤中的捆绑包。但写这篇文章时,我实际上意识到,这意味着能够从内部动态更新图形,这只有通过一个属性才能实现r到目前为止管道的更新。正确,管道更新确实是修改图表的正确选项。我面临相同的要求。现在有什么新闻或示例可以帮助我吗?Thx。