Logo
    立即注册
    数说方舟
    产品文档
    DAG作业
    最近更新时间:2022-08-16 10:28:12

    DAG作业

    DAG作业概述

    DAG作业是以多个TASK任务作为基础,以DAG(有向无环图)形式构成构建的复杂ETL作业。目前支持大量可自由编程的TASK,一个TASK为DAG作业下的最小执行单元。可通过连线的方向,关联若干个TASK组成一个DAG作业配置。

    作业通用配置

    参数 描述
    任务名称 任务ID,在单个作业内唯一,支持中文
    任务描述 任务作用的简单描述
    所属标签 用于判断作业执行的节点,默认为空
    超时重试次数 作业超时重试的次数,默认0,则不进行重试
    失败重试次数 作业失败后进行的重试次数,默认0,则不进行重试
    重试间隔 每次重试的时间间隔,默认600秒
    超时时间 任务运行超时时间,默认1800秒
    成功通知 任务成功后发送对应邮件通知,默认”是“
    通知邮箱 任务完成后(含成功、失败等状态)邮件所发送到的邮箱

    调度

    对已配置完的DAG作业配置对应的调度(Quartz方式),会根据Quartz设置时间定时启动DAG作业,并按照TASK先后依赖顺序,启动并执行对应的任务。目前的DAG作业支持的调度配置基于CRON表达式,相关参数如下:

    参数 描述
    调度描述 简单描述调度的用途
    调度时间 Quartz时间配置
    负责人 作业负责人,用于“负责人统计”
    超时时间 调度超时时间,默认1800秒
    通知邮箱 由于失败告警、成功提醒,多个使用“;”分隔

    Java Task

    自定义java程序,但是需要引用系统提供的类

    具体见程序说明,支持的参数说明:

    a) JVM参数:JVM的参数,可以用于指定内存等

    b) JAR包:运行的jar包,应该讲依赖jar包全部打包在一起(fat jar)

    c) 运行类:运行哪个类的全路径

    d) 运行队列:如果运行的yarn应用,则可以读取该队列信息,目前并未强制,看用户自己代码实现

    e) 自定义参数:自定义参数,json格式

    f) 环境变量:json格式

    SHELL Task

    系统支持shell,参数说明:

    a) zip/sh文件:如果是单个shell脚本,则直接上传即可;如果shell中调用了其他脚本,则可以将相关的代码打包成zip

    b) 执行的sh:对于打包成zip的需要指定运行哪个shell

    c) 运行参数:脚本参数,按照空格分隔

    d) 环境变量:json格式

    SQL Task

    直接在界面进行HIVE的SQL(HQL)编写。参数说明:

    a) 添加文件:添加jar/文件,则在执行SQL之前会执行“add jar …、add file …”,这样可以方便的添加需要的udf或者script脚本

    b) 运行队列:指定运行在yarn时的队列名

    c) 额外参数:填写额外参数,则会在执行SQL之前执行“set hivevar:{k}={v}”,格式为json

    d) SQL:填写HQL,支持多个语句,每个语句结束应该按照“;换行符”分隔,目前SQL中不支持注释。

    注意,一般编写的语句是“insert into table … select …”,这样才能将结果保存在HIVE表中。同时可以在任务中建表(create table),如果非HIVE临时表,则要在建表语句中加上“if not exists”,从而避免第二次运行报错。

    KETTLE Task

    用户同时也可以使用kettle在pc上配置好kettle的job/transformation,将配置好的kjb/ktr导出,参数说明:

    a) zip/kjb/ktr文件:kjb是kettle job,ktr是kettle transformation。如果配置中有依赖其他代码,则可以将相关代码一起打包成zip

    b) 执行的kjb/ktr:对于zip包,则需要指定

    c) 运行参数:脚本参数,按照空格分隔

    d) 环境变量:json格式

    数据同步 Task

    目前支持“关系数据表”导入“HIVE表”、“HIVE表”导出“关系数据表”、“FTP文件”导入“HIVE表”,详细参数:

    a) 来源类型 – 流向类型:选了“关系数据库”、“FTP”,则去向只能选择“HIVE”;反之亦然。

    b) 关系数据库说明:

    1) 库表:选择“关系数据库”和“HIVE”对应的库和表

    2) 表字段:关系数据库的字段可以忽略(不导入),HIVE表对应的字段必须包含关系表选择的字段

    3) 抽取控制:“关系数据库”的抽取可以指定where条件,进行并行导入时的分割数据的字段,并且可以指定并行数。“HIVE”的抽取则可以指定分区。

    c) FTP说明:

    1) 选择主机

    2) 填写FTP路径,支持“特殊时间字符串”

    3) 如果FTP路径是目录,则可以填写需要导入文件的后缀,默认是“*”

    4) 文件的分隔符,默认是“\t”

    5) 是否递归,表示如果是目录是否导入其全部子目录中的文件

    d) 加载控制:“关系数据库”的加载可以是否需要预先清空数据以及清空的where条件。“HIVE”的加载则需要指定分区。

    数据质检 Task

    数据质检目前支持基于以SQL形式对多个表进行数据对比,用户可在界面上以SQL形式查询,对比多个SQL结果,系统会自动输出对应的数据不一致的报告。

    a}数据源配置

    ​ 1)选择数据源:系统会读取数据源背后的JDBC链接信息,以此决定提交SQL查询的集群、账号

    ​ 2)SQL输入框:此处可任意输入查询类SQL,可支持单个集群内多表的查询

    ​ 3)添加按钮:增加一组选择数据源和SQL输入框配置

    b)对比配置

    ​ 1)基准字段:读取SQL中存在的字段进行选择,仅可选择多个SQL中共有的字段。基准字段作为多份数据质检的对比维度(常见如城市、品牌等),主要用来作为多份数据的join条件。

    ​ 2)比较字段:读取SQL存在的字段内进行选择,仅可选择多个SQL中共有的字段。对比字段为多分数据质检的对比指标(常见为销售额、数据条数等),主要用来作为实际对比值

    c)任务输出

    ​ 1)文件名:用户自行命名报告的文件名,报告由对比报告和异常数据两部分组成。其中异常数据输出前10万条

    调度检测 Task

    调度检测主要用于判断系统此前相关作业当前的完成状态,根据不同的作业状态执行后续不同的TASK调度,类似状态机的作用,可以支持多个作业判断,多个作业判断之间为“且”关系

    相关配置参数说明:

    a)任务名称/id:需要判断的作业ID或名称

    b)状态:下拉选项,支持了目前系统各个作业状态,常见如成功、失败等

    c)回溯周期配置:检测的任务需要在此时间段内出现过对应的状态的情况,常用于周期性任务的判断

    作业引用 Task

    引用作业可读取系统内各个作业(包括批处理作业)的配置进行执行,可在一个DAG作业内引入另外一个DAG作业。需要注意,引用的DAG之中,不能出现引用自身等死循环操作。

    相关配置参数说明:

    a)任务名称:TASK名称,仅支持中英文和下划线

    b)任务备注:用于备注说明

    c)任务类型:工场作业=批处理作业;海纳任务=DAG作业

    d)任务ID:对应的批作业ID或者DAG作业ID

    微信扫描二维码在线咨询