EMR资源与函数

Data Studio支持可视化创建并管理EMR JarFile资源,创建的资源可用于创建自定义函数或在数据开发。本文将为您介绍如何创建并使用资源与函数。

前提条件

  • 注册EMR集群至DataWorks,创建资源与函数均基于EMR计算资源进行相关操作。

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

    • 已开通OSS并创建Bucket,将待上传文件存储至OSS Bucket中。需从指定Bucket中选择文件,因此,使用该方式创建资源前需先创建Bucket上传相关文件

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

进入资源管理

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

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

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

创建并使用资源

资源说明

Data Studio资源与函数管理中,支持创建的资源如下表所示,您可将创建的资源存储在OSSHDFS内,并在数据开发和创建自定义函数中使用这些资源。

重要

通过上传EMR资源存储在OSS时,以及使用存储在OSS中的EMR资源时会产生OSS对象存储的基础费用

资源类型

描述

支持的上传方式

本地

OSS

EMR File

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

image

image

EMR Jar

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

使用限制

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

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

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

    说明

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

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

创建资源

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

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

  2. 新建资源完成后,需要在资源内上传OSS对象存储或本地文件,作为文件来源,以下为上传资源的时的关键参数:

    配置项

    配置说明

    文件来源

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

    文件内容

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

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

    存储路径

    为该资源选择存储的路径,包括OSSHDFS两种存储类型:

    • 如果您选择OSS,需要先授权再选择目录的位置。

      说明

      需要主账号在此处进行授权操作。

    • 如果您选择HDFS,需要手动输入存储路径。

      例如:/user/admin/[具体路径]

    说明

    目前您的任务JAR包仅支持如下两种存放路径:

    • JAR包存放在EMR集群的Master机器中。

    • JAR包存放在对象存储服务(Object Storage ServiceOSS)中。推荐您使用OSS进行存放,使用OSS存放JAR

    数据源

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

    资源组

    选择与EMR数据源连通性正常的Serverless资源组

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

    说明

    当使用Serverless资源组提交资源时,DataWorks平台将下发对应新建资源的任务到引擎侧执行,并打印执行过程的执行日志,如果资源提交过程中出现问题,您可以通过日志先自助排查。如果您目前无可用的Serverless资源组,请新增Serverless资源组

使用资源

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

说明

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

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

创建并使用函数

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

函数说明

Data Studio资源与函数管理中,支持将资源注册为EMR函数。在数据开发或SQL查询中,您可以使用Hive提供的内建函数创建的自定义函数

创建函数

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

  2. 单击确认,新建函数资源,并根据函数类型,配置函数的相关信息。

    配置EMR函数前,需确保已将EMR集群在DataWorks内注册为了计算资源,并已上传创建EMR资源,以下为EMR函数关键配置说明。

    参数

    描述

    函数类型

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

    数据源

    选择需要注册EMR函数的数据源。

    EMR数据库

    需要注册函数的EMR数据库。

    资源组

    选择与EMR数据源连通性正常的Serverless资源组

    类名

    UDF函数的类名,格式为资源名.类名,需与JAR包中的实际类完全匹配。

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

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

    资源列表

    从下拉列表中选择本工作空间中已添加的资源,必填。

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

使用函数

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

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

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

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

SELECT example_function(column_name) FROM table;

管理资源与函数

通过Data Studio可视化方式上传的资源或创建函数后,在资源管理页面,可通过单击目标资源或函数,对资源或函数进行管理。

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

    说明

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

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

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