gpt4 book ai didi

google-cloud-dataflow - 数据流作业的初始状态

转载 作者:行者123 更新时间:2023-12-04 15:42:00 24 4
gpt4 key购买 nike

我试图弄清楚我们如何为一些流式数据流作业“播种”窗口状态。场景是我们有一个论坛消息流,我们希望始终为每个主题发出运行计数的消息,因此我们有一个带有全局窗口的流式数据流作业,并在每次主题记录进入时触发. 到目前为止一切都很好。但是在流源之前,我们有一个大文件,我们想要处理它以获得我们的历史计数,而且,因为主题永远存在,我们需要历史计数来通知来自流源的输出,所以我们善良'我需要相同的逻辑来运行文件,然后在文件耗尽时开始运行流源,同时保持窗口状态。

目前的想法:

  • 编写一个自定义的无界源来做到这一点。读取文件直到耗尽,然后开始从流中读取。不是很有趣,因为编写自定义源不是很有趣。
  • 在文件上以批处理模式运行逻辑,并在最后一步以某种方式将状态发送到流接收器,然后启动逻辑的流式版本,从状态流和数据流中读取,并以某种方式组合二。这似乎有一定道理,但不确定如何确保流作业在读取数据流之前从状态源读取所有内容,以进行初始化。
  • 将历史数据管道传输到一个流中,编写一个从两个流中读取的作业。与第二个解决方案相同的问题,不确定如何确保首先“消耗”一个流。

  • 编辑:最新的选项,以及我们要做什么,是编写计算作业,这样事件到达的顺序根本无关紧要,所以我们只需将存档推送到发布/订阅主题,然后一切都会好起来的。这在这种情况下有效,但显然它会影响下游消费者(需要支持更新或撤回),所以我很想知道人们有哪些其他解决方案来播种他们的窗口状态。

    最佳答案

    您可以执行第 2 点中建议的操作 --- 运行两个管道(在同一个主管道中),第一个管道从大文件中填充 pubsub 主题。这类似于StreamingWordExtract例子确实如此。

    关于google-cloud-dataflow - 数据流作业的初始状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35278930/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com