【发布时间】:2018-11-14 03:07:39
【问题描述】:
我正在尝试使用 KSQL 在时间限制内进行任何处理,并在该时间限制内获得结果。请参阅“处理时间计时器”下的Timely (and Stateful) Processing with Apache Beam,了解使用 Apache Beam 说明的相同想法。
给定:
- 具有唯一键的事务流;
- 在同一流中更新这些事务;和
- 下游处理器希望在事务出现在第一个流中之后的特定超时(例如 20 秒)接收更新的事务。
从概念上讲,我正在考虑创建第一个流的 KTable 以保存事务的最新状态,并使用 KSQL 通过在 KTable 中查询 (create_time + timeout)
我在 KSQL 文档中没有找到执行此操作的方法,即使有内置的 current_time,我也不确定它是否会被评估,直到另一个记录顺流而下。
如何在 KSQL 中做到这一点?我需要自定义 UDF 吗?如果在 KSQL 中做不到,我可以在 KStreams 中做吗?
=====
更新:现在 KStreams 似乎不支持这个 - Apache Flink 似乎是这个用例(以及许多其他用例)的方法。如果您知道绕过 KStreams 限制的巧妙方法,请告诉我!
【问题讨论】:
标签: apache-flink apache-kafka-streams ksqldb