我正在寻找基于 flink 的解决方案,情况是我有一个 trans 流和一些可以表示为 SQL 的规则,我想在查询后更新流(如果匹配 ruleSql1 设置这个 transEvent respCode = 01;如果匹配 ruleSql2,则设置这个 transEvent respCode = 02;respCode 有优先级(。
问题是:
- 通过 flink sql,我可以得到一个结果,但是如何将结果反馈到原始流,我期望的输出是具有不同 respCode 的原始流。
- 我有很多规则,如何合并结果。
-
Flink 的运算符有流进来,转换后的流出来。目前还不清楚你想要什么 - 但无论你是想修改每个事件以添加带有响应代码的字段,还是其他东西,都很容易完成。如果使用 SQL,只需在 SELECT 子句中描述所需的输出。
-
您可以使用
split/select
创建流的n个副本,然后将其中一个规则(表示为 SQL 查询(应用于其中每个并行副本。然后,您可以使用union
将它们重新合并在一起(前提是它们都是同一类型(。
您将在文档的此部分找到有关拆分、选择和并集的文档。
Flink 培训站点有一系列动手练习,您可能会发现这些练习有助于了解 API 的各个部分如何组合在一起,但没有一个练习使用拆分/选择/联合。