Data Studio支持管理MaxCompute项目资源,包括从本地或OSS文件创建资源,并且可以将这些创建的资源注册为函数,以便在数据开发节点中使用。本文将详细介绍如何通过资源管理创建MaxCompute不同类型的资源和函数的具体操作事项。
前提条件
已完成资源文件的开发,文件可从本地上传或从OSS对象存储中获取。当通过上传OSS文件方式创建资源时,需满足以下条件。
已开通OSS并创建Bucket,并将待上传资源文件存储至OSS Bucket中,详情请参见:创建存储空间和简单上传。
说明支持上传的资源文件可参见资源说明。
已为操作上传文件的阿里云账号授予可访问目标Bucket的权限。为避免权限限制,上传文件前需提前为相关操作账号进行授权。
进入资源管理
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的 ,进入Data Studio。
在左侧导航栏单击资源管理按钮
,进入资源管理页面。
在资源管理页面,单击
按钮进行新建资源或函数。您也可以先新建目录,规划资源管理目录后,再在相应目录上右键,选择新建,选择需要创建的资源或函数类型。
创建并管理资源
资源说明
资源是MaxCompute实现UDF或MapReduce功能的基础。在Data Studio中,您可以通过可视化方式上传本地或OSS存储的资源。这些资源可以在用户自定义函数(UDF)及MapReduce的运行过程中读取和使用。支持创建的MaxCompute资源类型如下。
通过DataWorks上传资源至MaxCompute,会产生MaxCompute存储费用。
资源类型 | 描述 | 支持的上传方式 | |
本地 | OSS | ||
Python | 存放编写的Python代码,用于注册Python UDF函数。后缀为 | ||
JAR | 编译好的Java JAR包,用于运行Java程序。后缀为 | ||
Archive | 仅支持将 | ||
File | 创建的资源类型为 |
使用限制
上传资源需符合以下限制:
资源大小:最大支持上传500MB的资源。
资源发布:若您使用的是标准模式的工作空间,则需将资源发布至生产环境。发布后,生产环境的项目才会存在该资源。
说明开发环境和生产环境的数据源信息可能存在差异,查询对应环境的表、资源等操作前,请先确认相应环境的数据源信息。
资源管理:DataWorks仅支持查看与管理通过DataWorks上传的资源。
创建资源
MaxCompute资源支持本地上传和OSS上传,创建好的资源可直接在数据开发中引用,也可以创建为函数使用。
在资源管理页面,创建资源打开新建资源和函数弹窗时,配置资源的类型、存储的路径以及资源名称。
上传OSS或本地文件作为来源,以下为上传资源的时的关键参数:
配置项
配置说明
文件来源
目标文件的来源,包括本地和OSS两种来源。
文件内容
如果您选择本地,在上传文件中单击点击上传即可上传本地文件。
如果您选择OSS,在选择文件下拉框中选择对应的OSS文件。
数据源
选择上传的MaxCompute资源所属的数据源。
在上方工具栏对资源保存并发布,只有发布后的资源才能在数据开发中使用。
使用资源
完成资源创建后,在编辑数据开发节点时,在左侧导航栏单击资源管理,然后找到目标资源或函数后,右键选择引用资源。引用资源成功后,会显示##@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查询中,您可以使用通过创建函数,直接将已上传发布的资源创建为函数外,还支持通过JAVA
、PYTHON2
或PYTHON3
创建嵌入式函数,或直接使用MaxCompute内置函数。
创建函数
在资源管理页面,创建函数打开新建资源和函数弹窗时,配置下拉配置函数的类型、存储的路径以及函数名称。
新建函数资源,配置函数的相关信息。
配置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.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
)和代码。
资源列表
选择注册函数所需使用的资源。
可视化模式:仅支持选择已上传或添加至DataWorks的资源。
脚本模式:支持输入相应数据源中的所有资源。如果UDF中调用了多个资源,则多个资源使用英文逗号(,)分隔。
说明无需填写已添加的资源的路径。
DataWorks不支持可视化上传的资源(如表资源),或已经通过其他方式上传至MaxCompute不在DataWorks可视化管理的资源,都可以用脚本模式手动填写。
命令格式
该UDF的具体使用方法示例。
在上方工具栏对函数保存并发布,只有发布后的函数才能在数据开发中使用。
使用函数
使用自定义函数
函数创建完成并发布后,在数据开发或SQL查询中,可直接引用创建的函数。
在编辑数据开发节点时,在左侧导航栏单击资源管理,然后找到目标资源或函数后,右键选择引用函数。
引用函数成功后,在当前节点编辑页面快速生成自定义函数名称,例如:
example_function()
。在编辑SQL查询时,可直接使用已创建的函数。
SELECT example_function(column_name) FROM table;
使用内置函数
DataWorks支持两种函数:自定义函数和MaxCompute系统内置函数。您可按类型查看内建函数,也可以按字母排序查看内建函数。
注意事项:使用内建函数的注意事项请参见注意事项。
使用限制:内建函数的使用限制请参见JSON函数的使用限制和字符串函数的使用限制。
查看内建函数,可通过以下三种方式进行查看:
按类型查看内建函数。
在MaxCompute SQL节点中使用以下命令查看内建函数。
show builtin functions [<function_name>]; --<function_name>为指定的内建函数名称。
说明<function_name>
为占位符,实际操作时为您可指定为内建函数名称。如果使用MaxCompute客户端(odpscmd)执行
show builtin functions;
命令,则需要odpscmd版本为0.43.0及以上版本。
内建函数的典型案例请参见:
如果您想快速定位内建函数使用过程中遇到的问题,请参考:
管理函数
在资源管理页面,可通过单击目标函数,对函数执行相关的管理操作。
查看历史版本:单击函数编辑页面右侧的版本按钮,您可查看、对比已保存或已提交的函数版本,获取不同版本的资源变更情况。
说明版本对比时,至少需选择两个版本进行比对。
删除资源:鼠标右键单击目标函数,选择删除按钮,删除函数。
若需删除生产环境下该函数,则需进行任务发布,将资源删除操作发布至生产环境,发布成功后,生产环境该函数才会同步删除。详情请参见发布任务。
查看自定义函数列表
//查看当前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查询与分析中使用。