运行及排错

本文为您介绍如何实现节点的运行、运维,并通过查看日志进行排错。

背景信息

设置周期和依赖的操作中,您配置了每周二凌晨2点执行离线同步节点。提交节点后,需要到第2天才能看到调度系统自动执行的结果。DataWorks为您提供测试运行、补数据和周期运行三种触发方式,帮助您确认实例运行的定时时间、相互依赖关系、数据结果产出是否符合预期。

  • 测试运行:手动触发方式。如果您仅需要确认单个节点的定时情况和运行,建议您使用测试运行。详情请参见测试实例

  • 补数据运行:手动触发方式。如果您需要确认多个节点的定时情况和相互依赖关系,或者需要从某个根节点开始重新执行数据分析计算,建议您使用补数据运行。详情请参见执行补数据并查看补数据实例

  • 周期运行:系统自动触发方式。提交成功的节点,调度系统在第二天0点起会自动触发当天不同时间点的运行实例,并在定时时间达到时检查各实例的上游实例是否运行成功。如果定时时间已到并且上游实例全部运行成功,则当前实例会自动触发运行,无需人工干预。详情请参见查看周期实例

说明

手动触发和自动调度的调度系统与周期生成实例的规则一致:

  • 无论周期选择小时、分钟、日、月或周,节点在每一个日期都会生成对应的实例。

  • 仅在指定日期的对应实例,会定时运行并生成运行日志。

  • 非指定日期的对应实例不会实际运行,而是在满足运行条件时,将状态直接转换为成功,因此不会有运行日志生成。

关于任务运维的更多操作和功能说明,请参见运维中心模块。

测试运行

  1. 单击当前页面左上角的image.png图标,选择全部产品 > 数据开发与运维 > 运维中心(工作流),进入运维中心页面。

  2. 在左侧导航栏,单击周期任务运维 > 周期任务

  3. 在弹出的页面中,找到目标节点,在操作列中单击测试

  4. 冒烟测试对话框中,输入冒烟测试名称,并选择业务日期,单击确定

  5. 自动跳转至测试实例页面,单击相应的实例,即可在右侧查看实例DAG图。

    右键单击实例,您可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。

    说明
    • 测试运行是手动触发节点,只要到定时的时间,立即运行,自动忽略实例的上游依赖关系。

    • 根据前文所述的实例生成规则,配置为每周二凌晨2点运行的节点write_result,测试运行时选择的业务日期是周一(业务日期=运行日期-1),实例会在2点真正运行。如果不是周一,则实例在2点转换为成功状态,且没有日志生成。

补数据运行

如果需要确认多个节点的定时情况和相互依赖关系,或者需要从某个根节点开始重新执行数据分析计算,您可以进行补数据操作。

  1. 运维中心页面,单击左侧导航栏中的周期任务运维 > 周期任务

  2. 单击目标节点右侧操作列的补数据 > 当前节点

  3. 配置补数据对话框中的参数,单击确定

    参数

    描述

    补数据名称

    输入补数据名称。

    选择业务日期

    选择补数据的业务日期,业务日期为运行日期-1

    当前任务

    默认为当前节点,不可以更改。

    是否并行

    可以选择不并行或指定允许几组任务同时运行。

  4. 自动跳转至补数据实例页面,单击相应的实例,即可看到实例DAG图。

    右键单击实例,可以查看该实例的依赖关系和详细信息,并进行终止运行、重跑等具体操作。

    说明
    • 补数据任务的实例依赖前一天,例如补2017-09-15到2017-09-18时间段内的任务,如果15号的实例运行失败了,则16号的实例也不会运行。

    • 根据前文所述的实例生成规则,配置为每周二凌晨2点运行的节点write_result,补数据运行时选择的业务日期是周一(业务日期=运行日期-1),实例会在2点真正运行。如果不是周一,则实例在2点转换为成功状态,且没有日志生成。

周期自动运行

周期自动运行,由系统根据所有节点的调度配置自动触发,所以页面没有操作入口。您可以通过以下两种方式查看实例信息和运行日志:

  1. 运维中心页面,单击左侧导航栏中的周期任务运维 > 周期实例,选择业务日期或运行日期等参数,搜索write_result节点对应的实例后,右键查看实例信息和运行日志。

  2. 选择周期实例页面中相应的节点实例并单击,即可看到实例DAG图。

    右键单击实例,可以查看该实例的依赖关系和详细信息并进行终止运行、重跑等具体操作。

    说明
    • 如果上游节点未运行,下游节点也不会运行。

    • 如果节点的实例初始状态为未运行,当定时时间到达时,调度系统会检查该实例的全部上游实例是否运行成功。

    • 只有上游实例全部运行成功,且定时时间到达的实例,才会被触发运行。

    • 处于未运行状态的实例,请确认上游实例已经全部成功且已到定时时间。