MaxCompute资源与函数

Data Studio支持管理MaxCompute项目资源,包括从本地或OSS文件创建资源,并且可以将这些创建的资源注册为函数,以便在数据开发节点中使用。本文将详细介绍如何通过资源管理创建MaxCompute不同类型的资源和函数的具体操作事项。

前提条件

  • 绑定MaxCompute计算资源

  • 已完成资源文件的开发,文件可从本地上传或从OSS对象存储中获取。当通过上传OSS文件方式创建资源时,需满足以下条件。

进入资源管理

  1. 进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > Data Studio,进入Data Studio。

  2. 在左侧导航栏单击资源管理按钮image,进入资源管理页面。

  3. 资源管理页面,单击image按钮进行新建资源或函数。您也可以先新建目录,规划资源管理目录后,再在相应目录上右键,选择新建,选择需要创建的资源或函数类型。

创建并管理资源

资源说明

资源MaxCompute实现UDFMapReduce功能的基础。在Data Studio中,您可以通过可视化方式上传本地或OSS存储的资源。这些资源可以在用户自定义函数(UDF)及MapReduce的运行过程中读取和使用。支持创建的MaxCompute资源类型如下。

重要

通过DataWorks上传资源至MaxCompute,会产生MaxCompute存储费用

资源类型

描述

支持的上传方式

本地

OSS

Python

存放编写的Python代码,用于注册Python UDF函数。后缀为.py

image

image

JAR

编译好的Java JAR包,用于运行Java程序。后缀为.jar

Archive

仅支持将.zip.tgz.tar.gz.tar.jar等压缩文件上传为资源,通过资源名称的后缀区分压缩类型。

File

创建的资源类型为File类型时,可上传任意文件,实际使用时请以各引擎支持情况为准。

使用限制

上传资源需符合以下限制:

  • 资源大小:最大支持上传500MB的资源。

  • 资源发布:若您使用的是标准模式的工作空间,则需将资源发布至生产环境。发布后,生产环境的项目才会存在该资源。

    说明

    开发环境和生产环境的数据源信息可能存在差异,查询对应环境的表、资源等操作前,请先确认相应环境的数据源信息。

  • 资源管理:DataWorks仅支持查看与管理通过DataWorks上传的资源。

创建资源

MaxCompute资源支持本地上传和OSS上传,创建好的资源可直接在数据开发中引用,也可以创建为函数使用。

  1. 在资源管理页面,创建资源打开新建资源和函数弹窗时,配置资源的类型、存储的路径以及资源名称

  2. 上传OSS或本地文件作为来源,以下为上传资源的时的关键参数:

    配置项

    配置说明

    文件来源

    目标文件的来源,包括本地OSS两种来源。

    文件内容

    • 如果您选择本地,在上传文件中单击点击上传即可上传本地文件。

    • 如果您选择OSS,在选择文件下拉框中选择对应的OSS文件。

    数据源

    选择上传的MaxCompute资源所属的数据源。

  3. 在上方工具栏对资源保存发布,只有发布后的资源才能在数据开发中使用。

使用资源

完成资源创建后,在编辑数据开发节点时,在左侧导航栏单击资源管理,然后找到目标资源或函数后,右键选择引用资源。引用资源成功后,会显示##@resource_reference{"资源名称"}格式的代码。

说明

例如,PyODPS 3节点显示的样式为##@resource_reference{"example.py"}。各类型节点显示格式存在差异,请以实际界面为准。

除了直接使用资源外,还可将资源创建为函数,再在开发节点中使用。

管理资源

DataWorks仅支持查看与管理通过DataWorks可视化方式上传的资源,在资源管理页面,可通过单击目标资源,对资源执行相关的管理操作。

  • 查看历史版本:您可查看、对比已发布的资源版本,获取不同版本的资源变更情况。

    说明

    版本对比时,至少需选择两个版本进行比对。

  • 删除资源:删除操作仅是删除开发环境对应项目中的该资源。若需删除生产环境下该资源,则需进行任务发布,将资源删除操作发布至生产环境,发布成功后,生产环境该资源才会同步删除。详情请参见发布任务

  • 查看其他资源。

    MaxCompute中除了从DataWorks上传的资源外,还有通过其他途径上传的资源,可通过以下方式进行查看。

    • 通过数据目录查看MaxCompute项目下的所有资源。

      在数据目录中将MaxCompute项目添加后,即可在数据目录中打开相应的MaxCompute目录后即可在资源目录下查看当前项目内的所有资源。

    • 通过MaxCompute SQL节点查看MaxCompute项目中的其他资源。

      • 查看当前项目下的所有资源。在数据开发中新建MaxCompute SQL脚本执行该命令时,默认访问开发环境绑定的MaxCompute计算资源。

        list resources;
      • 查看指定项目下的所有资源。

        use MaxCompute项目名称;
        list resources;

      更多命令操作,详情请参见资源操作

创建并管理函数

在创建函数之前,请确保已创建资源

说明

创建MaxCompute资源时,可参考UDF开发(Java)UDF开发(Python3)准备MaxCompute资源文件。

函数说明

Data Studio资源与函数管理中,支持将资源注册为函数。在数据开发或SQL查询中,您可以使用通过创建函数,直接将已上传发布的资源创建为函数外,还支持通过JAVAPYTHON2PYTHON3创建嵌入式函数,或直接使用MaxCompute内置函数

创建函数

  1. 在资源管理页面,创建函数打开新建资源和函数弹窗时,配置下拉配置函数的类型、存储的路径以及函数名称

  2. 新建函数资源,配置函数的相关信息。

    配置MaxCompute函数前,需确保已将MaxCompute项目在DataWorks内注册为了计算资源,并已上传MaxCompute类型的资源,以下为MaxCompute函数关键配置说明。

    参数

    描述

    函数类型

    选择函数类型,包括MATH(数学运算函数)、AGGREGATE(聚合函数)、STRING(字符串处理函数)、DATE(日期函数)、ANALYTIC(窗口函数)和OTHER(其他函数)。

    类名

    UDF函数的类名,格式为资源名.类名。其中,资源名可以为Java包名称或Python资源名称。

    DataWorks创建自定义函数时支持使用JAR包及Python两种类型的MaxCompute资源。不同类型资源的类名配置如下

    • 资源类型为JAR,配置的类名格式为Java包名称.实际类名,您可以在IntelliJ IDEA中通过Copy Reference语句获取。

      例如,com.aliyun.odps.examples.udfJava包的名称,UDAFExample为实际类名,则类名参数配置为com.aliyun.odps.examples.udf.UDAFExample

    • 资源类型为Python,配置的类名格式为Python资源名称.实际类名

      例如,LcLognormDist_shPython资源名称,LcLognormDist_sh为实际类名,则类名参数配置为LcLognormDist_sh.LcLognormDist_sh

    说明
    • 填写资源名称时,无需添加.jar.py后缀。

    • 资源需要提交并发布后才可以使用。

    类型

    支持选择资源函数嵌入式函数

    • 选择资源函数时,配置资源列表即可。

    • 选择嵌入式函数时,除了选择资源列表外,还需要配置语言(支持JAVAPYTHON2PYTHON3)和代码

    资源列表

    选择注册函数所需使用的资源。

    • 可视化模式:仅支持选择已上传或添加至DataWorks的资源。

    • 脚本模式:支持输入相应数据源中的所有资源。如果UDF中调用了多个资源,则多个资源使用英文逗号(,)分隔。

    说明
    • 无需填写已添加的资源的路径。

    • DataWorks不支持可视化上传的资源(如表资源),或已经通过其他方式上传至MaxCompute不在DataWorks可视化管理的资源,都可以用脚本模式手动填写。

    命令格式

    UDF的具体使用方法示例。

  3. 在上方工具栏对函数保存发布,只有发布后的函数才能在数据开发中使用。

使用函数

使用自定义函数

函数创建完成并发布后,在数据开发或SQL查询中,可直接引用创建的函数。

  • 在编辑数据开发节点时,在左侧导航栏单击资源管理,然后找到目标资源或函数后,右键选择引用函数

    引用函数成功后,在当前节点编辑页面快速生成自定义函数名称,例如:example_function()

  • 在编辑SQL查询时,可直接使用已创建的函数。

SELECT example_function(column_name) FROM table;

使用内置函数

DataWorks支持两种函数:自定义函数和MaxCompute系统内置函数。您可按类型查看内建函数,也可以按字母排序查看内建函数

管理函数

在资源管理页面,可通过单击目标函数,对函数执行相关的管理操作。

  • 查看历史版本:单击函数编辑页面右侧的版本按钮,您可查看、对比已保存或已提交的函数版本,获取不同版本的资源变更情况。

    说明

    版本对比时,至少需选择两个版本进行比对。

  • 删除资源:鼠标右键单击目标函数,选择删除按钮,删除函数。

    若需删除生产环境下该函数,则需进行任务发布,将资源删除操作发布至生产环境,发布成功后,生产环境该函数才会同步删除。详情请参见发布任务

查看自定义函数列表

//查看当前DataWorks绑定的MaxCompute计算资源项目下的函数。
SHOW FUNCTIONS;

查看自定义函数详情

  • 可以使用DESCRIBE或简写的DESC命令,后跟函数名来查看自定义函数的详细信息。

    //使用简写形式查看自定义函数的详细信息
    DESC FUNCTION <function_name>;
  • DataWorks中,如果您在业务流程中需要的处理逻辑无法通过现有函数实现,可以编写MaxCompute自定义函数,并将相应的资源(如JAR包、Python文件等)上传和关联,以此来管理和扩充您的数据处理功能。

附录:常见问题

通过DataWorks上传的资源并定义为UDF函数后,除了在数据开发中供ODPS SQL节点使用外,是否可以在数据分析SQL查询中使用?

可以在数据分析SQL查询中使用,通过DataWorks注册的UDF函数,实际是存储在MaxCompute项目中,因此,不仅可以在MaxCompute SQL节点中使用,还可以在数据分析SQL查询与分析中使用。