我已经在批处理中使用了apache flink一段时间,但现在我们想将这个批处理作业转换为流式作业。我遇到的问题是如何运行端到端测试。
它是如何在批处理作业中工作的
使用批处理时,我们使用黄瓜创建了端到端测试。
流媒体工作中的问题
我们想做一些与流媒体工作类似的事情,除了流媒体工作没有真正完成。
所以:
我们可以在每次测试后等待5秒钟,并假设所有事情都已经过处理,但这会使一切都变慢。
题:
有什么方法或最佳实践在流式flink作业上运行端到端测试而不会在x秒后强制终止flink作业
大多数Flink DataStream源,如果它们从有限输入读取,将在它们到达结束时注入值为LONG.MAX_VALUE的水印,之后作业将被终止。
Flink training exercises说明了对Flink工作进行端到端测试的一种方法。我建议克隆github repo并查看测试是如何设置的。他们使用custom source and sink并重定向输入和输出以进行测试。
这个话题也在documentation中讨论过。