嗨,我打算使用 flink 作为我的功能的后端,我们将向用户显示一个 UI,以图形方式创建事件模式,例如: 来自同一 IP 地址的多次登录失败。
我们将在 UI 中使用用户使用给定条件以编程方式创建 flink 模式。
有没有关于如何动态创建 jar 文件并将作业动态提交到 flink 集群的文档?
对于使用 apache flink 的这种用例,是否有任何最佳实践?
另一种可以实现的方法是,你可以有一个包含类似"解释器"的jar,你将以某种格式(例如json)将模式的定义传递给它。之后,"解释器"将这个 json 翻译给 Flink 的运算符。它是在 Flink 基于 https://github.com/TouK/nussknacker/执行引擎中以这种方式完成的。如果使用这种方法,则需要在自己的应用程序中处理新定义的重新部署。
实现此目的的一种直接方法是为每个模式生成一个SQL脚本(使用MATCH_RECOGNIZE),然后使用Ververica平台的REST API来部署和管理这些脚本: https://docs.ververica.com/user_guide/application_operations/deployments/artifacts.html?highlight=sql#sql-script-artifacts
Flink 不提供用于自动创建或提交 JAR 文件的工具。这是您可以使用 CI/CD 管道来做的事情(例如,github 操作)。
免责声明:我为Ververica工作。