文档

Azkaban调度XIHE SQL

更新时间:

Azkaban是一个批量工作流任务调度器,可以构建、执行和管理包含复杂依赖关系的工作流。您可以使用Azkaban调度云原生数据仓库 AnalyticDB MySQL 版的XIHE SQL作业。

前提条件

  • 在安装Azkaban的服务器上,已安装MySQL服务端。具体操作,请参见MySQL官方文档

  • 已安装Azkaban。具体操作,请参见Azkaban官方文档

  • 已将运行Azkaban的服务器IP地址添加至AnalyticDB for MySQL集群的白名单中。具体操作,请参见设置白名单

数据准备

本文示例的AnalyticDB for MySQL数据库名为azkaban_test,在该库中创建一张名为azkaban_test.names的表,并插入测试数据,示例如下:

-- 创建数据库
CREATE DATABASE azkaban_test;
-- 创建表
CREATE TABLE azkaban_test.names (
  id BIGINT,
  name STRING
);
-- 插入数据
INSERT INTO azkaban_test.names VALUES(1, 'Li'), (2, 'Yang');

操作步骤

  1. 编写工作流文件。

    1. 创建工作流文件夹,并在该文件夹下创建开始任务、查询任务、结束任务的脚本。

      • 开始任务的脚本:

        #start
        type=command
        command=echo 'job start'
      • 查询任务的脚本:

        type=command
        dependencies=start
        command=mysql -hamv-bp165vrm0g8s****.ads.aliyuncs.com -utest -padb14**** -P3306 -e "create table azkaban_test.duplicated_names as select * from azkaban_test.names"

        参数说明:

        • -h:AnalyticDB for MySQL集群的连接地址。可通过控制台集群信息页面,查看连接信息。

        • -u:AnalyticDB for MySQL集群的数据库账号。

        • -p:AnalyticDB for MySQL集群的数据库名称。

        • -P:AnalyticDB for MySQL集群的端口号,固定为3306。

        • -e:业务具体的SQL语句。

      • 结束任务的脚本:

        #end
        type=command
        dependencies=exec_query
        command=echo 'job end'
    2. 将工作流文件夹压缩成ZIP格式。

  2. 创建项目并上传步骤1压缩的工作流文件。

    1. 访问Azkaban Web界面,在顶部导航栏单击Project

    2. 单击页面右上角的Create Project

    3. 在弹出的Create Project对话框中配置NameDescription参数。

    4. 单击页面右上角的Upload

    5. 在弹出的Upload Project Flies对话框中上传工作流文件,单击Upload

  3. 运行工作流。

    1. Project页面,单击Flows页签。

    2. 单击Execute Flow

    3. 单击Execute

    4. 在弹出的Flow submitted对话框中,单击Continue

  4. 查看工作流详细信息。

    1. 在顶部导航栏单击Executing

    2. 单击Recently Finished页签。

    3. 单击Execution Id,并单击Job List页签查看每一个Job的执行详情。

    4. 单击Log查看Job的日志信息。