调度任务

更新时间:

完成导入表映射配置后,需要基于计算源执行调度任务,同时进行ID Mapping计算。调度完成后,计算结果数据将存放在分析源中。

支持三种发起调度的方式:

  • 手动调度:底表更新后,手工发起调度。

  • 周期调度:以日或小时为周期,自动发起调度,适用于底表固定进行周期更新的情况。

  • 触发调度:通过接口发送调度请求,从而发起调度,适用于在底表的加工任务完成后调用接口触发调度。

说明

有一类通过API导入的调度任务,创建者是API同步,其调度方式为周期调度或手动调度。支持查看执行记录,支持其手动调度任务进行手动调度,但不支持其周期调度任务进行手动调度,不支持编辑、移除。

创建调度任务

说明

由于每次调度时都需要对所有数据表涉及的用户重新进行ID Mapping计算,为了避免频繁占用计算资源,建议您将所有数据表的调度创建为同一个任务。

创建手动调度任务

操作步骤:

  1. 选择工作空间>配置管理>数据接入管理>数据导入>调度任务image

  2. 单击右上角新建调度任务

  3. 在弹窗中填写任务名称,选择要调度导入的数据表,支持多选、全选。11111

  4. 调度频次选择手动调度

  5. 单击保存,完成调度任务创建。

调度任务将加入任务列表,当需要调度时,单击3图标,即可手动发起一次调度。

创建周期调度任务

操作步骤:

  1. 选择工作空间>配置管理>数据接入管理>数据导入>调度任务image

  2. 单击右上角新建调度任务

  3. 在弹窗中填写任务名称,选择要调度导入的数据表,支持多选、全选。2222

  4. 调度频次选择日调度小时调度,设置相应的执行周期。

  5. 单击保存,完成调度任务创建。

调度任务将加入任务列表,自动在指定的周期时间调度。

创建触发调度任务

操作步骤:

  1. 选择工作空间>配置管理>数据接入管理>数据导入>调度任务image

  2. 单击右上角新建调度任务

  3. 在弹窗中填写任务名称,选择要调度导入的数据表,支持多选、全选。33333

  4. 调度频次选择触发调度,下方将针对每张表生成一个带token的触发地址URL,请您单击复制,保存这些URL。

  5. 单击保存,完成调度任务创建。

调度任务将加入任务列表。当您需要调度时,可以通过这些URL发起调度,具体规则为:

  • 在Dataphin、DataWorks或其他ETL工具的底表加工任务中,自行写代码调用此接口,或者通过webhook请求调用此接口。

    Dataphin、DataWorks的脚本示例,请参见附录:触发调度脚本示例

  • 若多张表在同一个调度任务内,需要对每张表都通过对应的URL请求调度一次,当所有表都被触发,调度任务才会执行调度。

    在任务列表单击编辑,可以查看各表的触发状态,已通过URL请求调度的表显示为“已触发”。若部分表显示为“未触发”,需要通过该表对应的URL请求调度,当全部表显示为“已触发”时,将开始执行调度。

  • 在任务的调度过程中,再次收到的调度请求将被忽略。

编辑调度任务

单击编辑,可以编辑调度任务,具体操作与创建时相同。从下次调度开始,将按照编辑后的设置执行调度。

手动调度

不仅手动调度可以手动发起调度,周期调度、触发调度也支持手动发起调度。

单击手动调度,即可手动发起一次调度。

查看执行结果

调度任务执行至少一次后,列表将显示最近一次执行的状态(执行成功/执行失败)。

说明

若执行失败,可将鼠标移动到执行失败上方,界面将显示失败原因,帮助您排查问题。

image

单击执行记录,可以进入执行记录列表,查看该调度任务每一次执行的记录与状态,如下图所示。

单击0图标,可展开某次执行调度包含的所有数据表的执行情况。image

移除调度任务

选择image>移除,确认删除后,将删除该调度任务,但仍保留通过该调度任务获得的数据。

附录:触发调度脚本示例

下面提供Dataphin、DataWorks触发导入调度任务的脚本示例。

Dataphin

在Dataphin通过Shell周期任务触发导入调度任务,步骤如下:

  1. 添加沙箱白名单,将创建触发调度任务时生成的所有触发地址URL添加为要访问的IP地址,具体操作请参见Dataphin添加沙箱白名单

  2. 新建Shell周期任务,具体操作请参见新建Shell任务。调度类型选择周期任务

    如果同一个调度任务包含多张表,则会生成多个触发地址URL,对应地需创建多个Shell周期任务。

    Shell脚本示例如下:

    #!/bin/bash
    # {触发地址URL} 替换为触发地址URL
    QA_TRIGGER_URL="{触发地址URL}"
    echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling Start."
    echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling Url:" $QA_TRIGGER_URL
    result=$(curl -k -s ${QA_TRIGGER_URL})
    if [ ! -n "$result" ]; then  
      echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger Failed"  $result
    else  
      echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling Response:" $result
      echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling End."
    fi
  3. (可选)您可以手动点击执行Shell任务,测试是否能成功触发导入调度任务,观察输出日志中是否有如下成功信息:

    QuickAudience Trigger scheduling Response: {"data":"true","errorCode":null,"errorDesc":null,"exStack":null,"opers":[],"solution":null,"success":true,"traceId":"0bc1409e16667784903588235e2ef1"}
  4. 进行Shell任务调度配置,具体操作请参见调度配置

    单击新建上游依赖,关联进行当前数据表数据产出的上游依赖。当上游依赖已产出数据,并且到达配置的调度时间时,将触发Shell任务调度。

    当导入调度任务的所有触发地址URL对应的Shell任务均已触发时,将触发导入调度任务。

DataWorks

DataWorks支持Shell节点、PyODPS 3节点两种方式触发导入调度任务。

Shell节点

在DataWorks通过Shell节点触发导入调度任务,步骤如下:

  1. 由于Shell节点需要使用独享调度资源组进行调度,请参照独享调度资源组进行配置。

    否则Shell节点会调度失败,显示如下错误信息:

    curl: (1) Protocol https not supported or disabled in libcurl
  2. 新建Shell节点,具体操作请参见Shell节点

    如果同一个调度任务包含多张表,则会生成多个触发地址URL,对应地需创建多个Shell节点。

    Shell脚本示例如下:

    #!/bin/bash
    # {触发地址URL} 替换为触发地址URL
    QA_TRIGGER_URL="{触发触发地址URL}"
    echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling Start."
    echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling Url:" $QA_TRIGGER_URL
    result=$(curl -k -s ${QA_TRIGGER_URL})
    if [ ! -n "$result" ]; then  
      echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger Failed"  $result
    else  
      echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling Response:" $result
      echo $(date "+%Y-%m-%d %H:%M:%S") "QuickAudience Trigger scheduling End."
    fi   
  3. (可选)您可以手动点击执行Shell节点,测试是否能成功触发导入调度任务,观察输出日志中是否有如下成功信息:

    QuickAudience Trigger scheduling Response: {"data":"true","errorCode":null,"errorDesc":null,"exStack":null,"opers":[],"solution":null,"success":true,"traceId":"0bc1409e16667784903588235e2ef1"}
  4. 进行Shell节点调度配置,具体操作请参见配置调度依赖

    如下图所示,新建上游依赖,关联进行当前数据表数据产出的上游节点。当上游节点已产出数据,并且到达配置的调度时间时,将触发Shell节点调度。image

    当导入调度任务的所有触发地址URL对应的Shell节点均已触发时,将触发导入调度任务。

PyODPS 3节点

在DataWorks通过PyODPS 3节点触发导入调度任务,步骤如下:

  1. PyODPS 3节点可使用公共资源组或独享调度资源组进行调度。

  2. 新建PyODPS 3节点,具体操作请参见PyODPS 3节点

    如果同一个调度任务包含多张表,则会生成多个触发地址URL,对应地需创建多个PyODPS 3节点。

    Python 3脚本示例如下:

    import requests
    from datetime import datetime
    
    # {触发调度的地址} 替换为触发调度的地址
    QA_TRIGGER_URL = "{触发调度的地址}"
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") + " QuickAudience Trigger scheduling Start.")
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") + " QuickAudience Trigger scheduling Url:" + QA_TRIGGER_URL)
    response = requests.get(QA_TRIGGER_URL)
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") + " QuickAudience Trigger scheduling Response:" + response.text)
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S") + " QuickAudience Trigger scheduling End.")
  3. (可选)您可以手动点击执行PyODPS 3节点,测试是否能成功触发导入调度任务,观察输出日志中是否有如下成功信息:

    QuickAudience Trigger scheduling Response: {"data":"true","errorCode":null,"errorDesc":null,"exStack":null,"opers":[],"solution":null,"success":true,"traceId":"0bc1409e16667784903588235e2ef1"}
  4. 进行PyODPS 3节点调度配置,具体操作请参见配置调度依赖

    如下图所示,新建上游依赖,关联进行当前数据表数据产出的上游节点。当上游节点已产出数据,并且到达配置的调度时间时,将触发PyODPS 3节点调度。image

    当导入调度任务的所有触发地址URL对应的PyODPS 3节点均已触发时,将触发导入调度任务。