全部产品
Search
文档中心

大数据开发治理平台 DataWorks:资源管理

更新时间:Feb 18, 2025

Data Studio支持在您的数据分析代码中引用自定义的资源和函数(支持MaxCompute、EMR、CDH、Flink),您需要先创建或上传资源、函数至目标工作空间,上传后才可在该工作空间的任务中使用。您可参考本文了解如何使用DataWorks可视化方式创建资源和函数并在节点中使用。

前提条件

通过上传OSS文件方式创建资源时。

  • 已开通OSS并创建Bucket,将待上传文件存储至OSS Bucket中。基于OSS上传,需选择指定Bucket中的文件。因此,使用该方式创建资源前需先创建Bucket并存储相关文件,详情请参见创建存储空间简单上传

  • 已为操作上传文件的阿里云账号授予可访问目标Bucket的权限。为避免权限限制,上传文件前需提前为相关操作账号进行授权,详情请参见权限控制

使用限制

  • 资源大小

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

  • 资源发布

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

    说明

    开发环境和生产环境的数据源信息存在差异,查询对应环境的表、资源等操作前,请先明确相应环境的数据源信息。查看不同环境对应的MaxCompute数据源信息,详情请参见创建MaxCompute数据源

  • 资源管理

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

支持的资源和函数

资源

数据源

资源

支持创建方式

MaxCompute

MaxCompute Python

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

  • 上传本地资源

  • 上传OSS资源

MaxCompute Jar

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

MaxCompute Archive

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

MaxCompute File

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

EMR

  • EMR File

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

  • EMR Jar

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

  • 上传本地资源

  • 上传OSS资源

CDH

  • CDH File

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

  • CDH Jar

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

本地

Flink

Flink Jar

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

本地

函数

支持创建MaxCompute、EMR、CDH和Flink函数。

步骤一:进入资源管理

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

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

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

步骤二:创建资源或函数

创建资源

  1. 配置资源的相关信息:

    选择文件来源本地OSS,然后根据页面提示补充文件内容。

  2. 单击顶部的保存,然后单击发布。发布后的资源才能在数据开发中使用。

创建函数

说明

您需基于资源创建函数,因此,创建函数前请先创建资源,并将该资源上传至DataWorks。

  1. 配置函数的相关信息。

    MaxCompute函数

    关键参数说明:

    参数

    描述

    函数类型

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

    类名

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

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

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

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

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

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

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

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

    类型

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

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

    • 选择嵌入式函数时,除了选择资源列表外,还需要配置语言(支持JAVA、PYTHON2和PYTHON3)和代码。有关嵌入式函数的更多信息,请参见UDF(嵌入式)

    资源列表

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

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

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

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

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

    命令格式

    该UDF的具体使用方法示例。

    EMR函数

    关键参数说明:

    参数

    描述

    函数类型

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

    类名

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

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

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

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

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

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

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

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

    资源列表

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

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

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

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

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

    命令格式

    该UDF的具体使用方法示例。

    CDH函数

    关键参数说明:

    参数

    描述

    函数类型

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

    类名

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

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

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

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

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

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

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

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

    资源列表

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

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

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

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

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

    命令格式

    该UDF的具体使用方法示例。

  2. 单击顶部的保存,然后单击发布。发布后的函数才能在数据开发中使用。

步骤三:使用资源或函数

  1. 创建资源或函数对应类型的数据开发节点。

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

    • 引用资源成功后,会显示##@resource_reference{"资源名称"}格式的代码。例如,PyODPS 3节点显示的样式为##@resource_reference{"资源名称"}。各类型节点显示格式存在差异,请以实际界面为准。

      说明

      如果PyODPS代码依赖第三方包,需要通过自定义镜像安装所需的包到运行环境,然后再在运行环境中执行PyODPS代码,自定义镜像的更多信息,请参见镜像管理

    • 引用函数成功后,在当前节点编辑页面快速生成自定义函数名称。