我希望从本土流媒体服务器迁移到Apache Flink。我们所拥有的一件事是像DRPC接口这样的Apache Storm,可以针对处理拓扑中保存的状态运行查询。
例如:我有一堆传感器,我正在运行移动平均线。我想在拓扑上运行查询并返回平均值高于固定值的所有传感器。
在Flink中是否存在等价物,或者如果没有,实现等效功能的最佳方法是什么?
答案 0 :(得分:4)
开箱即用的Flink目前没有提供查询内部运营状态的解决方案。但是你很幸运,因为有两种解决方案:我们做了一个允许查询状态的有状态字数例子的例子。这可以在这里找到:https://github.com/dataArtisans/query-window-example
对于即将推出的Flink版本之一,我们还在研究可查询状态用例的通用解决方案。这将允许查询任何内部操作的状态。
此外,在您的情况下,只需使用Window Operation定期将值输出到Elasticsearch之类的内容即可。然后可以从Elasticsearch简单地查询结果。
答案 1 :(得分:1)
他们将在下一版本中推出名为Queryable State的开箱即用解决方案。 这是一个例子 https://github.com/apache/flink/blob/master/flink-tests/src/test/java/org/apache/flink/test/query/QueryableStateITCase.java
但我建议你先阅读一下,然后再看一下这个例子。