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需要同时设置,设置成功后表示开启自适应并发度。
参数名 |
参数描述 |
默认值 |
---|---|---|
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 |