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重复调用问题解决方案-腾讯云开发者社区-腾讯云

相关推荐
Qdgr_1 小时前
传统报警难题频现,安全运行隐患重重
大数据·人工智能·安全
张先shen3 小时前
Elasticsearch深度分页解决方案:search_after原理剖析
大数据·elasticsearch·搜索引擎
泊浮目3 小时前
生产级Rust代码品鉴(一)RisingWave一条SQL到运行的流程
大数据·后端·rust
vivo互联网技术4 小时前
vivo Pulsar 万亿级消息处理实践(3)-KoP指标异常修复
java·大数据·服务器·后端·kafka·消息队列·pulsar
武子康4 小时前
大数据-36 HBase 增删改查 列族详解 实测
大数据·后端·hbase
rui锐rui5 小时前
大数据学习1:Hadoop单机版环境搭建
大数据
Fireworkitte5 小时前
ES 压缩包安装
大数据·elasticsearch
UI设计和前端开发从业者6 小时前
大数据时代UI前端的智能化转型之路:以数据为驱动的产品创新
大数据·前端·ui
智海观潮16 小时前
Flink CDC支持Oracle RAC架构CDB+PDB模式的实时数据同步吗,可以上生产环境吗
大数据·oracle·flink·flink cdc·数据同步