如何避免在写入固定窗口输出的 Google Dataflow 流管道中进行随机播放

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

希望实现一个 Dataflow(或 flink)流管道,从 pub-sub 读取数据,将数据转换为 parquet,并每隔几分钟写入输出。

这需要固定窗口吗?如果是这样,窗口中的所有事件最终都会发送到单个工作人员(固定窗口工作人员)

如果在窗口之前添加一个键,则会导致随机播放。如何避免这种情况?

即希望实现一些可以扩展到 N 个工作线程的东西,独立处理和写出 N 个文件,无需随机播放。这是一个简单的 ETL 流程。

apache-flink google-cloud-dataflow apache-beam
1个回答
0
投票

您不需要使用窗户。只需有一个带有源的工作流程,然后是 Map(或 FlatMap)函数,然后是接收器。

如果您的作业并行性与输入并行性相匹配(例如 Kafka 中的分区数量),这会很有效...不知道它如何与您使用的任何 pub-sub 系统一起工作。

如果您需要生成 N 个输出文件,其中 N 与您的源并行度不匹配,那么您将必须进行某种洗牌。您可以将接收器的并行度设置为您想要的任何值,Flink 将自动进行重新平衡(洗牌)以处理不同的源与接收器并行度。

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