amazon-dynamodb - 从flink集群外部访问flink状态有哪些方式?

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

我是 Apache flink 的新手,正在构建一个简单的应用程序,在其中读取来自 kinesis 流的事件,例如

TestEvent{
 String id,
 DateTime created_at,
 Long amount
} 

对上述流上以 id 键控的字段 amount 执行聚合(求和)。该转换相当于 SQL select sum(amount) from testevents group by id ,其中 testevents 是迄今为止收到的所有事件。 聚合结果存储在 flink 状态中,我希望通过 API 公开结果。有什么办法可以做到吗?

PS:我们可以将 flink 状态存储在 dynamoDB 中并在那里创建 API 吗?或者任何其他方式来坚持并将国家暴露给外界?

最佳答案

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

如果您已经使用 Kinesis 进行输入,您还可以使用 Kinesis 从 Flink 输出结果。然后,您可以使用 AWS 提供的适用于 DynamoDB 的 Kinesis 适配器,如 related stackoverflow post 中进一步所述。 .

回到你原来的问题:你可以查询 Flinks 状态并将 REST API 与你的流应用程序一起发布,但这是实现你的目标不需要的大量工作。您还可以通过状态 API 访问检查点/保存点状态,但这又是相当多的手动工作,可以通过上面列出的通常路线来节省。

关于amazon-dynamodb - 从flink集群外部访问flink状态有哪些方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59029211/

相关文章:

apache-flink - 如果数据源一段时间没有发出数据,Flink算子的水印会继续前进吗?

java - Flink 状态架构迁移

java - 如何根据数据将一个数据流输出到不同的输出端?

amazon-web-services - AWS AppSync-使用GSI排序键将全局二级索引添加到DynamoDB和分页

java - Flink Tumble Window 触发时间

java - Apache Flink 连续 split 奇怪的行为

java - 如何在 Apache Flink 中平面映射到数据库?

java - 使用Java从EC2中的S3读取CSV文件

amazon-dynamodb - dynamodb 的细粒度访问策略中可以使用通配符 (*) 吗?

java - DynamoDBAttribute 上的 AWS DynamoDB 约束