本文为您介绍如何管理Flink-Vvp自定义函数(UDF),包括注册、更新和删除。

背景信息

为了避免JAR依赖冲突,您需要注意以下几点:
  • Pom依赖的Flink版本需要和EMR集群的Flink版本保持一致。

    例如,EMR集群的Flink版本是1.10-vvr-1.0.2时,Pom需要依赖flink-1.10.x版本。

  • 上传的JAR包中请不要包含Runtime层的类,即Pom中Runtime层的依赖应该使用<scope>provided</scope>
  • 上传的JAR包中请不要包含Hadoop的类,即Pom中Hadoop层的依赖应该使用<scope>provided</scope>,或者使用<exclusion>排除Hadoop的类。
  • 其他第三方依赖请采用Shade方式打包,Shade打包详情参见Apache Maven Shade Plugin

注册UDF

如果您的SQL需要使用UDF,您需要先注册您的UDF,才能在SQL中使用。

  1. 登录Flink-Vvp控制台,详情请参见访问Flink-Vvp的Web UI
  2. 在左侧导航栏上,单击SQL图标。
  3. SQL编辑器页面,单击 Artifacts页签。
  4. UDF JARs区域,单击添加图标。
  5. 上传UDF JAR文件。
    上传UDF JAR
  6. 单击确认
  7. 单击创建Function
    create function
    说明 您的UDF JAR文件会被上传到您选择的OSS Bucket中的artifacts目录下。此外,开发控制台会解析您UDF JAR文件中是否使用了Flink UDF、UDAF和UDTF接口的类,并自动提取类名,填充到Function Name字段中。

    在SQL编辑器页面的左侧Artifacts页签,您可以看到所有注册成功的UDF。

更新UDF JAR

如果您的UDF JAR中,新增了UDF或已注册了UDF的类代码变更,您可以按照以下步骤更新UDF JAR。

  1. 登录Flink-Vvp控制台,详情请参见访问Flink-Vvp的Web UI
  2. 在左侧导航栏上,单击SQL图标。
  3. SQL编辑器页面,单击 Artifacts页签。
  4. UDF JARs列表中,鼠标悬停在目标JAR名称上,单击更新JAR图标。
  5. 上传JAR文件。
    更新JAR
    注意
    • 您上传的新UDF JAR中,必须包含当前已经注册UDF的所有类,不能出现某个已注册UDF的类消失的情况。
    • 只有重启作业或提交新作业时,才会使用新JAR文件中的代码。如果您引用该UDF JAR的作业正在运行,则依然会使用旧JAR文件。
  6. 单击修改

删除UDF JAR

如果您的UDF JAR不再使用,您可以按照以下步骤删除UDF。

  1. 登录Flink-Vvp控制台,详情请参见访问Flink-Vvp的Web UI
  2. 在左侧导航栏上,单击SQL图标。
  3. SQL编辑器页面,单击Artifacts页签。
  4. UDF JARs列表中,鼠标悬停在目标JAR名称上,单击删除JAR图标。
    说明 在删除JAR文件前,请确定其注册的UDF没有被作业或SQL文件引用,否则无法删除。
  5. 勾选Drop以上所有Functions并且删除关联的JAR。
    如果您要删除该JAR文件,则需要删除该JAR注册的所有UDF,避免有脏数据残留。
  6. 单击确认