使用多个不同的 SQL 查询(聚合)设置 Flink 应用程序
Setup Flink application with multiple different SQL query(aggregation)
我需要构建一个管道,其中包含来自同一来源的不同列聚合,例如,一个来自 userId,另一个来自 productId,等等。我还想有不同的粒度聚合,比如说,每小时,每天。每个聚合都会有一个不同的接收器,比如不同的 nosql table.
使用 Table API 构建 SQL 查询似乎很简单。但是我想减少管理太多 Flink 应用程序的操作开销。所以我正在考虑将所有不同的 SQL 查询放在一个 pyflink 应用程序中。
这是我第一次构建 Flink 应用程序。所以我不确定这有多可行。我特别想知道:
- 阅读 Flink 文档,我看到有应用程序与作业的概念。所以我很好奇每个 SQL 聚合查询是否是一个 Flink 作业?
- 会不会因为一个Flink app的query太多而导致整体性能下降?
- 由于查询共享相同的源(来自 kinesis),每个查询都会获得源的副本。基本上,我想确保每个事件都将由每个 sql 聚合查询处理。
谢谢!
如果使用语句集,则可以将多个查询放入一个作业中: https://docs.ververica.com/user_guide/sql_development/sql_scripts.html