【发布时间】:2018-07-30 19:16:30
【问题描述】:
我有一个定期触发的批处理作业,它将数据写入 MongoDB。这项工作大约需要 10 分钟,之后我想接收这些数据并使用 Apache Flink 进行一些转换(映射、过滤、清理......)。记录之间存在一些依赖关系,这意味着我必须一起处理它们。例如,我喜欢转换客户 ID 为 45666 的最新批处理作业中的所有记录。结果将是一条聚合记录。
是否有任何最佳实践或方法可以做到这一点,而无需自己实现所有内容(从最新工作中获取不同的客户 ID,为每个客户选择记录和转换,标记转换后的客户等......)?
我无法流式传输它,因为我必须将多条记录一起转换,而不是一一转换。
目前我正在使用 Spring Batch、MongoDB、Kafka 并考虑使用 Apache Flink。
【问题讨论】:
-
只想指出,即使您必须同时转换多条记录,使用有状态流式处理也可能有意义。 Flink 将让您保持记录状态,直到您拥有产生结果所需的所有部分。当然,这可能是一个好主意,也可能不是一个好主意,这取决于您的其他要求。
-
我只确定在读取整个源文件之前没有关于组的更多信息,并且可能在 10 到 35 GB 之间。
标签: apache-flink