flink中的动态sql查询

wgeznvg7  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(666)

我有这样一个sql查询

String ipdetailsSql = "select sid, _zpsbd6 as ip_address, ssresp, reason,  " +
        "SUM(CASE WHEN botcode='r1' THEN 1 ELSE 0 END ) as icf_count, " +
        "SUM(CASE WHEN botcode='r2' THEN 1 ELSE 0 END ) as dc_count, " +
        "SUM(CASE WHEN botcode='r5' THEN 1 ELSE 0 END ) as badua_count, " +
        "COUNT(*) as hits, TUMBLE_START(ts, INTERVAL '1' MINUTE) AS fseen " +
        "from sourceTopic   " +
        "GROUP BY TUMBLE(ts, INTERVAL '1' MINUTE), sid, _zpsbd6, ssresp, reason";

根据用户输入,我想将botcode='r1'更改为给定输入。说出botcode='r10'而不重新启动作业。有没有办法做到这一点。我在flink1.7上使用stream env。我尝试了配置流来读取输入。但仍停留在如何快速更改查询上。有人能帮我吗?提前谢谢

fnatzsnv

fnatzsnv1#

streamsql查询不是执行一次就完成的查询,而是连续计算的声明性表达式。在不使用新查询启动新作业的情况下,不可能对该计算进行任意更改。
不过,在一些简单的情况下,你可以做一些事情。您可以考虑是否可以将sourcetopic与另一个有效地提供一些查询参数的流连接起来。或者,您可能会发现计算所有可能需要的结果,然后在下游选择实际需要的结果是可以负担得起的。

相关问题