【发布时间】:2020-08-26 17:32:35
【问题描述】:
Spark 中是否有办法处理超过水印的数据?
考虑一个发送消息的设备用例,这些消息需要在 Kafka + Spark 内部进行处理。虽然 99% 的消息会在 10 分钟内传递到 Spark 服务器,但有时设备可能会在一天或一周内离开连接区域并在内部缓冲消息,然后在连接恢复后一周后传递它们。
Watermark 间隔必须相当有限,因为 (1) 主线案例中的结果必须及时产生,而且 (2) 因为 Spark 内部的缓冲空间也有限,所以 Spark 无法保留一周的消息适用于在为期一周的水印窗口中缓冲的所有设备。
在常规 Spark 流结构中,超过水印的消息将被丢弃。
有没有办法拦截那些“非常晚”的消息并将它们路由到处理程序或单独的流 - 只有那些不属于水印的“拒绝”消息?
【问题讨论】:
-
否也是一个答案。我没有看到其他回复。
标签: apache-spark spark-structured-streaming