入门指南:如何快速配置编排和周期调度ETL流程

适用场景

数仓工程师主要工作之一是构建离线数仓,即创建和维护周期调度ETL流程。本文会概要介绍如何基于Lakehouse Studio来配置和编排ETL中的任务、并配置调度属性,使得整个ETL流程能够被定时、按照依赖关系调度运行。

前置阅读

在阅读本指南之前,建议完成以下文档的阅读和理解:

操作指南

入门指南:如何快速创建同步任务来导入数据 中,我们已经创建了一个数据同步任务。本文档的示意,会再继续创建出一个SQL处理任务,并让其依赖上数据同步任务,构建出一个ETL流程,并配置调度定时来定期运行。

使用说明

需要具备 工作空间管理员角色(workspace_admin) 或者 工作空间开发角色(workspace_dev)的用户,才能使用任务开发、提交发布和运维中心的功能。

SQL任务的创建

  1. 通过下图的操作入口,来创建出一个SQL任务:

  2. 在创建任务的弹框中,将任务命名为“SQL_DWS_聚合”,并单独创建出一个名为“数据处理”的文件夹。

  3. SQL任务新建好后,如下图所示,在编辑区可以编写具体的SQL代码。

  4. 前面通过数据同步任务,已经把MySQL的数据同步到Lakehouse的test_json表中。在SQL任务中,基于这张表中数据进行聚合处理,比如把表中的c2_tinyint_column、c3_smallint_column两个字段分别求和。导航到“数据”Tab,定位到目标表 test_json,然后在操作栏里,点击“数据查询”,可以自动把SELECT的代码模板插入到编辑器中,如下图所示,可以帮助编写代码提效。

  5. 基于上述代码模板修改成需要的处理逻辑、保存。这里只做示意,简化处理,聚合的数据未写入到新表。

         SELECT   SUM(c2_tinyint_column),         
                  SUM(c3_smallint_column),
         FROM     test_json;

任务编排和调度配置

完成同步任务和SQL任务创建后,要构建出完整的离线周期处理的ETL流程,还需要配置调度定时和任务依赖关系。

  1. 打开同步任务,通过页面的“调度”按钮,打开调度属性的配置。

  2. 配置调度时间:配置成每天调度、执行多次、每一个小时调度一次,如下图所示。通过“预览调度时间”可以查看基于配置对应的具体定时时间。

  3. 配置实例信息:这里主要需要配置“实例重跑方式”,由于本任务不存在重跑之后产生数据不幂等的问题、可以重跑,选择“运行成功或者失败,都可以重跑”,其它属性使用默认值即可。

  4. 配置调度依赖:同步任务是流程中的第一个任务,没有上游依赖,这里留空即可。

  5. 配置任务产出:任务产出描述本任务写入的是哪张表,用于下游任务消费这张表时,能智能识别到对应的任务。点击“智能解析”按钮,会通过任务配置自动解析出当前任务的产出表并回填配置。

  6. 完成上述调度配置后,点击页面右下角的“确定”按钮将配置保存。回到任务页面,如下图所示“提交”按钮会变成可点击的状态。

  7. 点击“提交”按钮,在弹框中二次核对信息正确,再点击确定,同步任务即被提交到生产环境进行定期调度运行。

  8. 切换到SQL任务,通过页面的“调度”按钮,打开调度属性的配置,需要配置的属性和同步任务相同,即:

    1. 配置成一天调度多次、每小时调度一次,
    2. 重跑属性配置成“运行成功或者失败,都可以重跑”。
    3. 请特别注意需要配置上SQL任务对同步任务的依赖关系。点击页面上“智能解析”按钮,会自动识别到SQL任务依赖的同步任务、自动回填;也可以手动添加。
      )
  9. 同上,SQL任务的调度配置完成后,点击页面右下角的“确定”按钮把配置信息保存下来。回到任务页面,点击“提交”按钮把SQL任务也提交做定时调度。

  10. 进入「任务运维」查看实际效果,有两种方式进入:

    • 方式一:通过左侧导航 运维监控 > 任务运维

    • 方式二:在任务上,直接点击“运维”按钮,直达运维中心里任务的详情页,建议使用此方式。

  11. 查看任务的详情,如下图所示,和预期一致,SQL任务依赖了同步任务:

  12. 点击“任务实例”Tab,可以看到任务对应的具体实例的列表,实例按照配置的定时时间都对应地生成了出来(只生成任务提交时间之后的实例):

  13. 点击实例ID可以进入实例的详情页面进行查看。在定时时间到达后,上游的同步任务实例先运行,运行成功后下游的SQL任务的实例才会开始运行。实例触发运行需要两个条件(充分必要):实例自身定时时间到达&上游实例是运行成功状态。

  14. 至此就完成了一个完整的ETL流程的编排构建,并提交进行周期调度、运行。

限制说明

  • 权限控制:需要具备 工作空间管理员角色(workspace_admin) 或者 工作空间开发角色(workspace_dev)的用户,才能使用任务开发、提交发布和运维中心的功能。

相关文档

  • 您可以阅读 任务开发 的帮助文档来详解了解如何进行任务开发和调度配置。其中 任务组 功能提供了一种可视化编排ETL流程的方式,会更加直观,推荐使用。
  • 您可以阅读 任务和实例运维 的帮助文档来详解了解如何对任务和实例进行各种运维操作。

下一步建议

  • 无。

联系我们
预约咨询
微信咨询
电话咨询