更新时间:2025-09-17 GMT+08:00
分享

WITH ARGUMENTS语法

WITH ARGUMENTS语法扩展了现有用户定义函数(UDF)的功能,主要作用是允许用户在UDF运行时设置初始状态。通过这一功能,用户可以:

  • 配置运行时资源和并发度:用户可以指定UDF运行时所需的资源(如内存、CPU等)以及并发执行的实例数量,从而优化性能和资源利用率。
  • 设置类的初始化参数:对于以类(class)形式定义的UDF,用户可以通过WITH ARGUMENTS语法传递初始化构造参数,从而在UDF实例化时设置特定的初始状态。

使用注意事项如下:

  • WITH ARGUMENTS支持几个固定的参数配置,具体的参数信息请参考表1。对于class的初始化参数名称不能与固定参数同名,参数名称是大小写敏感的。
  • 入参列表仅支持常量。
  • 以class形式定义的UDF函数体,用户按需定义class的__init__和__del__成员方法,但必须定义process成员方法,该方法为主函数入口。
  • min_concurrency和max_concurrency需要同时设置,设置成功后表示开启自适应并发度。
表1 UDF运行时配置列表

参数名

参数描述

默认值

concurrency

UDF的运行并发度,取值范围[1,1024]。

1

min_concurrency

UDF的运行最小并发度,取值范围[1,1024]。

0

max_concurrency

UDF的运行最大并发度,取值范围[1,1024]。

0

timeout

UDF执行的超时时间,取值范围[1,3600],单位为s。

1000

dpu

UDF运行时单个actor的资源规格,例如dpu=1,表示规格为1U4G,其取值可以是介于0.33到1.0之间的分数值,也可以是1到32间的整数值,需要注意的是,系统会将输入值四舍五入,保留两位小数。

1

相关文档