You need to enable JavaScript to run this app.
导航

任务模板

最近更新时间2023.09.28 17:56:36

首次发布时间2022.09.02 10:44:43

1 概述

任务模板功能,提供便捷式的创建项目级任务模板,用于常用任务逻辑规范管理,来降低常用代码的运维成本。您可以快速引用现成的任务模板,只需修改几个参数,即可实现核心数据处理逻辑的复用,减少重复代码建设,提升开发效率等。本文将为您介绍任务模板的操作说明。

2 使用前提

  1. DataLeap 产品若仅开通 Dataleap大数据集成服务,不支持创建 Shell 任务。

  2. 火山引擎 E-MapReduce(EMR)流式数据开发任务使用前提,详见 EMR Java FlinkEMR Flink SQL

3 新建任务模板

  1. 登录DataLeap租户控制台

  2. 概览界面,显示加入的项目中,单击数据开发进入对应项目。

  3. 任务开发界面,左侧导航栏中,单击模板列表,进入到任务模板界面。

  4. 在模板列表右侧的更多按钮中,新建子目录或新建任务模板。

  5. 在新建任务模板窗口中,输入以下参数新建模板:

    参数说明
    模板名称输入模板名称信息,只允许字符.、字母、数字、下划线、[]、【】、()、()以及中文字符,200个字符以内。
    模板描述输入该任务模板的描述信息,方便后续管理使用。
    选择目录选择任务模板存放的文件路径。
    支持任务类型选择任务模板对应的任务类型,支持以下 5 种任务类型:EMR SQL、LAS SQL、Shell、EMR Flink SQL、EMR Java Flink。
  6. 参数配置完成后,单击确认按钮,完成新建任务模板。

4 模板列表管理

4.1 任务模板筛选

任务模板目录树中,支持以下几种筛选方式:

  1. 勾选“我的”按钮,筛选出项目下由当前登录账号创建的任务模板。

  2. 您可以在输入框中,输入任务模板名称信息,进行模糊搜索。

  3. 单击折叠按钮,出现右侧的筛选框,在这里您可以通过任务类型、模板责任人的方式进行筛选,支持多选;也可单击重置按钮,将所有筛选内容清空,展现出所有任务模板。

4.2 子目录文件夹管理

您可以单击文件夹名称右侧的更多按钮,您可以在文件夹下新建子目录、新建任务模板、移动文件夹位置、删除文件夹、重命名文件夹等操作。

注意

删除子目录文件夹,需确认当前当前文件夹下是否还存在子节点,需先清空子节点后,再操作删除。

4.3 任务模板管理

您可以单击任务模板名称右侧的更多按钮,操作任务模板的重命名、移动至其他文件夹目录、删除、 复制等操作。

注意

删除任务模板,需确认当前模板是否有线上任务引用,若存在任务引用,删除失败并弹窗提醒,您需先解除线上任务引用关系后,方可继续删除。

  • 鼠标移至任务模板名称时,会显示出模板的详细信息:任务模板名称、创建责任人、创建时间等。您也可以在详细信息界面上,直接引用当前任务模板,操作详见:引用任务方式

5 编辑任务模板

单击任务模板名称,打开模板编辑器,您可在编辑器中输入通用的代码逻辑,或者选择通用的参数信息。

注意

已有任务模板做更新时,需确认是否对已引用的任务有影响,可以在右侧引用记录中,查看任务引用的模板版本,需谨慎更新任务模板。

5.1 LAS/EMR SQL

  1. 输入通用代码逻辑,表名、字段名分别可以用@{type1}、@{tablename}表示,时间参数仍可用${}获取,以下为简单代码示例:
select @{type1}, @{type2} from @{tablename} WHERE date = '${date}';
  1. 参数设置

    • 自动解析参数:您可以根据代码逻辑,来自动解析模板中需要使用到的参数信息。

    • 新增参数:可以自定义添加模板额外需要填写的参数信息。

  2. 功能区按钮说明:

功能名称描述

预检查

您可通过预检查功能,检查 EMR SQL、LAS SQL 模板中输入的语句是否符合逻辑等要求。
其中:
当项目控制台,绑定多个 EMR 集群时,在预检查配置窗口,您需先下拉选择对应检查的 EMR 引擎实例,来检查输入的模版语句是否能正确执行。

格式化依据在个性化设置中的 SQL 格式化风格的设置,格式化书写的代码,使其语法结构看起来简洁明了。

表管理

您可在表管理中快速创建所需要的数据表,操作详见:库表管理

说明

表管理操作,仅在 EMR SQL、LAS SQL 任务模板中使用。

执行引擎

  • LAS 任务类型仅支持 Spark 引擎能力。

  • EMR 任务类型支持 Spark、Hive 引擎能力。

任务模板中,您可以添加 Java Flink 作业需要使用到的 Flink 参数信息,同时您也可以设置更多的自定义参数在任务中使用:

  1. 固定参数:添加 Flink 作业的固定参数信息,依次添加参数名称、参数值(数值类型)、参数说明等信息。

  2. 计算参数:将“固定参数”和flink任务资源参数当作变量计算,公式支持 + - * / () 以及数字,或者输入“@” 符号,可选择已有变量,例如:(@{固定参数key}+@{JM_CORESa})*2 。

Flink 相关的动态参数和执行参数,具体设置详见 Flink 官方文档

  1. 在任务模板的代码开发编辑界面,通过 DDL 和 DML 编写通用 SQL,表名、字段名分别可以用@{type1}、@{tablename}表示,以下以 EMR Flink SQL示例代码为例:

    详细语法可参考文档 Flink 官方文档

CREATE  TEMPORARY TABLE @{tablename1} (@{type1} INT)
        WITH (
            'connector' = 'datagen',
            'rows-per-second' = '5',
            'fields.f_sequence.kind' = 'sequence',
            'fields.f_sequence.start' = '1',
            'fields.f_sequence.end' = '1000000'
        );

CREATE  TEMPORARY TABLE @{tablename2} (@{type1} INT)
        WITH ('connector' = 'print', 'print-sample-ratio' = '1');

INSERT INTO @{tablename2}
SELECT  *
FROM    @{tablename1};
  1. 参数设置

    • 自动解析参数:您可以根据代码逻辑,来自动解析模板中需要使用到的参数信息。

    • 新增参数:可以自定义添加模板额外需要填写的参数信息。
      alt

  2. 功能区按钮说明:

功能名称描述
格式化依据在个性化设置中的SQL格式化风格的设置,格式化书写的代码,使其语法结构看起来简洁明了。
执行引擎默认选择 EMR 进群中 Flink 组件对应的执行引擎版本。

5.4 Shell

  1. 在任务模板的代码开发编辑界面,编写通用的 Shell 脚本,以下为简单脚本示例:

    #! /bin/bash
    function commonFunction() {
    ARGS=`getopt -a -o u:p: -l yarn_cluster:,yarn_queue:, -- "$@"`
    if [ $? != 0 ];
        then echo "Terminating"
        exit 1
    fi
    eval set -- "${ARGS}"
    while true; do
            case "$1" in
                -u|--yarn_cluster)
                    yarn_cluster="$2"
                    shift
                    ;;
                -p|--yarn_queue)
                    yarn_queue="$2"
                    shift
                    ;;
                --)
                    shift
                    break
                    ;;
                
            esac
        shift
    done
    
    echo ${yarn_cluster}
    echo ${yarn_queue}
    }
    
    commonFunction
    
  2. 镜像地址:
    支持您自定义镜像,建议使用火山引擎镜像仓库,填写示例如下:

    • 北京地域:dataleap-cn-beijing.cr.volces.com/studio/spark:online

    • 上海地域:dataleap-cn-shanghai.cr.volces.com/studio/spark:online

    说明

    1. 自定义镜像中须安装 python3,方可正常使用。

    2. 基础镜像地址中仅包含最基础的 Linux 和 Python 命令,简单场景下,您也可基于基础镜像地址,并额外补充一些依赖来使用。

      基础镜像地址:dataleap-cn-beijing.cr.volces.com/studio/runtime_light:online。

    3. 若您自定义镜像的文件中有需加密的文件,希望该镜像文件只允许被固定任务使用,则您可以创建私有镜像类型,并将镜像仓库地址、用户名密码等私有镜像配置信息,添加至独享计算资源组中,通过独享计算资源组来访问镜像文件。修改资源组镜像配置操作详见资源组管理

    4. 私有镜像地址需要您手动填写 OCI 制品仓库中,具体镜像版本对应的网络地址信息,以实际填写的镜像地址为准。若遗漏填写的情况下,会访问到默认的基础镜像地址。

  3. 参数设置

    您可在界面下方操作新增参数组

    • 参数组名:输入参数组名,一个参数组名下,允许包含多个参数名称。

      1. 新增参数:在当前参数组名下,添加多个参数配置。

      2. 设置:自定义参数的前缀内容;参数和参数内容之间的连接符合。

      3. 删除:支持删除整个参数组内容。

      alt

    • 参数名称:自定义脚本中所需的参数名称、默认值、字段类型(包含String和JSON类型)、参数说明等信息。

    说明

    Shell任务模板参数替换逻辑如下:

    1. 在参数设置中,添加脚本中需使用到的参数名称:yarn_cluster、yarn_queue,根据实际场景填入默认值,您也可选择不填写,直接在shell任务引用模版时替换。

    2. 填入的参数和参数值,将会拼接在最后一行脚本中,如在以上示例代码中,shell 任务引用后,最后一行脚本被替换为:commonFunction -yarn_cluster=chris -yarn_queue=script,整体通过读取参数值,并调用 commonFunction 函数方法,使用 getopt 来解析执行。



6 引用任务方式

在任务模板配置完成后,您可通过以下两种方式来引用:

  1. 任务开发节点功能区(LAS/EMR SQL、Flink SQL、Shell任务类型支持)

    1. 任务开发界面,左侧导航栏中单击数据开发

    2. 进入模板对应任务类型的编辑器界面,单击上方导航栏功能区中的任务模板。

    3. 进入任务模板弹窗中进行选择是否使用任务模板,需要使用时,需完成以下配置信息:

    参数说明
    选择模板选择对应任务类型的任务模板,下拉框中会展现项目下所属类型的模板名称信息。

    版本

    您可以指定版本号,或者选择始终使用最新

    注意

    选择始终使用最新时:若后续更新任务模板时,将同步更新关联线上任务,需谨慎使用。

    参数设置若任务模板中需要参数替换时,您可以通过单行编辑模式脚本编辑模式,将需替换的参数,填写具体的参数值信息。
    预览结果预览的结果中,会展现最终完整的代码逻辑,您可再次确认逻辑是否有误。
  2. LAS/EMR Java Flink编辑界面引用。

    1. 任务开发界面,左侧导航栏中单击数据开发

    2. 进入 Java Flink 任务编辑界面,在Flink 运行参数栏中,选择使用任务模板。

    3. 在下拉框中,选择项目下 Java Flink 类型所属的模板,并选择需要使用的版本信息。

  3. 直接任务模板引用

    1. 在引用前,您需要先打开对应任务类型的编辑器界面,若与模板任务类型不匹配时,则不支持引用。

    2. 鼠标移动至任务模板名称上,右侧的详细信息中,直接单击引用,在弹窗中单击确认按钮,即可实现任务模板引用,可支持多个任务引用。

7 其他信息

任务模板界面,创建好模板后,您可在界面右侧导航栏,查看任务模板的基本信息、历史版本、引用记录等信息。

  • 基本信息:查看任务模板的模板名称/ID、模板描述、以及任务类型的信息等。

  • 历史版本:保存或更新模板后,会记录各个版本的更新情况,您也可以进行以下操作:

    • 查看:查看任务模板的代码设置、自定义参数等信息。

    • 恢复至草稿:可以恢复至历史的草稿版本,方便及时回滚任务模板代码。

    • 版本对比:您可以勾选两个历史版本进行对比,查看两个版本之间代码、参数配置等信息的不同。

  • 引用记录:

    • 您可以查看当前任务模板已被哪些任务应用,单击查看按钮,即跳转到对应的任务开发界面。

    • 离线任务已上线但关闭后,引用记录对应删除。

    • 流式任务关闭后不清理引用记录,引用记录依旧存在。