从flink集群外部访问flink状态的方法是什么?

jk9hmnmh  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(471)

我刚接触apache flink,正在构建一个简单的应用程序,在这个应用程序中,我从一个kinesis流中读取事件,比如

TestEvent{
 String id,
 DateTime created_at,
 Long amount
}

对字段执行聚合(求和) amount 在上面的流上键入 id . 转换相当于sql select sum(amount) from testevents group by id 哪里 testevents 所有的事件都收到了。聚合结果存储在flink状态,我希望通过api公开结果。有什么办法吗?
ps:我们能在dynamodb中存储flink状态并在那里创建api吗?或者其他任何方式来坚持并向外界暴露国家?

dnph8jn4

dnph8jn41#

我建议暂时忽略state,而将sinks视为流应用程序输出结果的主要方式。
如果您已经在使用kinesis进行输入,那么也可以使用kinesis从flink输出结果。然后,您可以使用由aws提供的dynamodb的kinesis适配器,如相关stackoverflow post中所述。
回到您最初的问题:您可以查询flinks状态并将restapi与流应用程序一起发布,但要实现您的目标,需要做大量的工作。您还可以通过stateapi访问checkpointed/savepointed状态,但这同样需要大量的手工工作,可以通过上面概述的常规路径来保存。

相关问题