欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Flink UDF注意幂等性,防止重复调用时出问题

Flink UDF注意幂等性,防止重复调用时出问题

2024/10/24 11:20:19 来源:https://blog.csdn.net/zc19921215/article/details/141081778  浏览:    关键词:Flink UDF注意幂等性,防止重复调用时出问题

        编写Flink UDF 要注意幂等性,尤其不能直接修改入参!理论上是一条数据只会执行一次UDF,但是实际执行过程中可能会对一条数据执行多次UDF,引起意想不到的问题。

例如有如下SQL:

CREATE VIEW tmp_view AS
    SELECT  a.id AS id
            , my_udf_1(
                myudf_2(a.v) AS v
    FROM table_a a
    LEFT OUTER JOIN table_b FOR SYSTEM_TIME AS OF a.proctime b
        ON a.id = b.key
;

INSERT INTO table_c
SELECT  id
        , v
FROM    tmp_view
;

        正常my_udf_2确实只会执行一次,但如果sql变一下,最后INSERT那里加入一个where条件,UDF就会下推到Where条件中再执行一次:

        这个时候如果UDF不能保证幂等性,计算结果就会出错。例如入参是个List,第一次执行UDF时改了传入的List中的数据,第二次UDF执行时会在第一次执行的基础上再次改变传入的List中的数据,结果就不正确了!

参考:

        Flink SQL UDF重复调用问题解决方案-腾讯云开发者社区-腾讯云

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com