在flink流sql中查询和更新流

时间:2018-08-31 10:21:20

标签: apache-flink

我正在寻找基于flink的解决方案,情况是我有一个trans流和一些可以表达为SQL的规则,我想在查询后更新该流(如果匹配的ruleSql1设置了此transEvent respCode = 01 ;如果匹配的ruleSql2,则设置此transEvent respCode = 02;以respCode优先)。

问题是: 1.通过flink sql我可以获得结果,但是如何将结果反馈到原始流,我期望的输出是具有不同respCode的原始流。 2.我有很多规则,如何合并结果。

请原谅我可怜的英语,谢谢!

1 个答案:

答案 0 :(得分:0)

  1. Flink的运算符有流流入,而变换后的流流出。目前尚不清楚您想要的是什么,但是您是否想要修改每个事件以添加带有响应代码的字段,还是很容易做到的。如果使用的是SQL,只需在SELECT子句中描述所需的输出即可。

  2. 您可以使用split/select制作流的 n 副本,然后将规则之一(表示为SQL查询)应用于这些并行副本中的每一个。然后,您可以使用union将它们合并回去(前提是它们都是同一类型)。

您将找到有关拆分,选择和合并in this section of the docs的文档。

Flink training site包含一系列动手练习,尽管没有使用拆分/选择/联合的API,但是您可能会发现它们对学习API的各个部分如何组合很有帮助。