更新时间:2022-08-17 GMT+08:00

开发一个DWS SQL作业

介绍如何在数据开发模块上通过DWS SQL算子进行作业开发。

场景说明

本教程通过开发一个DWS作业来统计某门店的前一天销售额。

环境准备

  • 已开通DWS服务,并创建DWS集群,为DWS SQL提供运行环境。
  • 已开通CDM增量包,并创建CDM集群。

    CDM集群创建时,需要注意:虚拟私有云、子网、安全组与DWS集群保持一致,确保网络互通。

创建DWS的数据连接

开发DWS SQL前,我们需要在“管理中心 > 数据连接”模块中建立一个到DWS的连接,数据连接名称为“dws_link”

关键参数说明:

  • 集群名:环境准备中创建的DWS集群名称。
  • 绑定Agent:环境准备中创建的CDM集群。

创建数据库

在DWS中创建数据库,以“gaussdb”数据库为例。详情请参考新建数据库进行操作。

创建数据表

在“gaussdb”数据库中创建数据表trade_log和trade_report。详情请参考如下建表脚本。

create schema store_sales;
set current_schema= store_sales;
drop table if exists trade_log;
CREATE TABLE trade_log
(
        sn           VARCHAR(16), 
        trade_time   DATE,
        trade_count   INTEGER(8)        
);
set current_schema= store_sales;
drop table if exists trade_report;
CREATE TABLE trade_report
( 
        rq   DATE,
        trade_total   INTEGER(8)        
);

开发DWS SQL脚本

“数据开发 > 脚本开发”模块中创建一个DWS SQL脚本,脚本名称为“dws_sql”。在编辑器中输入SQL语句,通过SQL语句来实现统计前一天的销售额。

图1 开发脚本

关键说明:

  • 图1中的脚本开发区为临时调试区,关闭脚本页签后,开发区的内容将丢失。您可以通过“提交”来保存并提交脚本版本。
  • 数据连接:创建DWS的数据连接中已创建的连接。

开发DWS SQL作业

DWS SQL脚本开发完成后,我们为DWS SQL脚本构建一个周期执行的作业,使得该脚本能定期执行。

  1. 创建一个数据开发模块空作业,作业名称为“job_dws_sql”

    图2 创建job_dws_sql作业

  2. 然后进入到作业开发页面,拖动DWS SQL节点到画布中并单击,配置节点的属性。

    图3 配置DWS SQL节点属性

    关键属性说明:

    • SQL脚本:关联开发DWS SQL脚本中开发完成的DWS SQL脚本“dws_sql”
    • 数据连接:默认选择SQL脚本“dws_sql”中设置的数据连接,支持修改。
    • 数据库:默认选择SQL脚本“dws_sql”中设置的数据库,支持修改。
    • 脚本参数:通过EL表达式获取"yesterday"的值,EL表达式如下:
      #{Job.getYesterday("yyyy-MM-dd")}
    • 节点名称:默认显示为SQL脚本“dws_sql”的名称,支持修改。

  3. 作业编排完成后,单击,测试运行作业。
  4. 如果运行成功,单击画布空白处,在右侧的“调度配置”页面,配置作业的调度策略。

    图4 配置调度方式

    说明:

    2021/08/06至2021/08/31,每天2点执行一次作业。

  5. 单击“提交”,执行调度作业,实现作业每天自动运行。