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存储费用。
|
资源类型 |
描述 |
|
Python |
存放编写的Python代码,用于注册Python UDF函数。后缀为 |
|
JAR |
编译好的Java JAR包,用于运行Java程序。后缀为 |
|
Archive |
仅支持将 |
|
File |
创建的资源类型为 |
使用限制
上传资源需符合以下限制:
-
资源大小:
-
在线编辑:Python类型最大支持10MB;File类型最大支持500KB。
-
上传本地文件:最大支持上传500MB的资源。
-
上传OSS文件:最大支持上传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文件等)上传和关联,以此来管理和扩充您的数据处理功能。
常见问题
Q:通过DataWorks上传的资源并定义为UDF函数后,除了在数据开发中供ODPS SQL节点使用外,是否可以在数据分析SQL查询中使用?
A:可以在数据分析SQL查询中使用,通过DataWorks注册的UDF函数,实际是存储在MaxCompute项目中,因此,不仅可以在MaxCompute SQL节点中使用,还可以在数据分析SQL查询(旧版)中使用。