我研究了 Apache Flink 的新 Stateful Functions 2.0 API。我阅读了以下文档链接https://ci.apache.org/projects/flink/flink-statefun-docs-stable/。我还在 Git 存储库中运行了示例。( https://github.com/ververica/stateful-functions/tree/master/stateful-functions-examples )\n我对实现有几个问题。
\n\nhttps://flink.apache.org/stateful-functions.html --> 页面末尾有一个示例,用于欺诈检测的交易评分。
\n\n第一个问题是关于状态 TTL 的。我如何向 TTL 提供状态?示例表示:30 天后,\xe2\x80\x9cFraud Count\xe2\x80\x9d 函数将收到一条过期消息(来自其自身)并清除其状态。我应该阅读本手册还是还有其他功能?我该如何做这本手册?
\n\n关于keyedstream的第二个问题。示例表示: \xe2\x80\x9cFraud Count\xe2\x80\x9d 的多个实例将存在 \xe2\x80\x94 例如,每个客户帐户一个。我应该给 赋值PersistedTable<K,V>吗?例如<customerid,count>。我可以清除特定键的状态吗?
最后一个问题是关于窗口和水印的。如何将这些功能实现到 Stateful Functions 2.0?
\nstate stream-processing apache-flink flink-streaming flink-statefun
开发apache flink有状态函数时使用python或java有什么优缺点。
我们的项目中有flink-conf.yaml本地运行。我们希望能够在本地运行 flink 进行测试。我们团队的一部分使用 Mac,另一部分使用 PC。我们想设置state.checkpoint.dir一些普遍接受的路径,最好在用户的主目录下。问题是,是否可以根据我们运行的操作系统以编程方式设置它,如果没有,在此设置中当前用户的主目录是否有一个普遍有效的快捷方式,例如 *NIX 上的“~”?
对于 Flink 流/Flink 有状态功能,已知较小setBufferTimeout的值(例如 5 毫秒)将提供“最佳”延迟体验。在优化 Flink 流或有状态函数作业中的延迟时,必须注意的其他推荐配置值(设置、重置、修改......)是什么?