从flink集群外部访问flink状态的方法有哪些?

时间:2019-11-25 09:58:23

标签: amazon-dynamodb apache-flink flink-streaming flink-cep

我是Apache flink的新手,他构建了一个简单的应用程序,从中读取运动学流中的事件,像这样

TestEvent{
 String id,
 DateTime created_at,
 Long amount
} 
amount键控的上述流上的字段id上的

执行聚合(总和)。转换等效于SQL select sum(amount) from testevents group by id,其中testevents是到目前为止收到的所有事件。 汇总结果以flink状态存储,我希望通过API公开结果。有什么办法吗?

PS:我们可以将flink状态存储在dynamoDB中并在其中创建API吗?或其他任何方式来维持国家与外界的接触?

2 个答案:

答案 0 :(得分:1)

我建议暂时忽略状态,而将接收器视为流应用程序输出结果的主要方式。

如果已经使用Kinesis进行输入,则还可以使用Kinesis从Flink输出结果。然后,您可以使用由AWS提供的DineamoDB的Kinesis适配器,如related stackoverflow post所述。

回到您的原始问题:您可以查询Flinks状态并与流应用程序一起交付REST API,但这并不是实现目标所需的大量工作。您还可以通过状态API访问检查点/保存点状态,但是同样,通过执行上面概述的常规路线,可以节省大量的手动工作。

答案 1 :(得分:0)

这是 Flink 的文档,提供了一些用例queryable_state

您也可以使用 API 离线阅读State Processor API