本文为您介绍如何通过DataWorks加工采集至MaxCompute的数据,并获取清洗后的数据。

前提条件

开始本文的操作前,请首先完成准备数据中的操作。

新建表

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 数据开发页面,单击相应业务流程左侧的展开图标,展开该业务流程。
  3. 右键单击MaxCompute,选择新建 >
  4. 新建表对话框中,输入表名,单击提交
    注意 表名必须以字母开头,不能包含中文或特殊字符,且不能超过64个字符。
    此处需要创建的数据表,如下所示:
    • 创建三张表,分别存储同步过来的电量下降趋势数据、指标数据和窃电标志数据清洗之后的数据(clean_trend_dataclean_indicators_dataclean_steal_flag_data)。
    • 创建表data4ml,存储汇聚后的数据。
  5. 打开创建的表,单击DDL模式,分别输入以下相应的建表语句。
    --清洗后的电量下降趋势数据
    CREATE TABLE clean_trend_data (
        `uid` bigint,
        `trend` bigint
    )
    PARTITIONED BY (dt string)
    LIFECYCLE 7;
    --清洗后的指标数据
    CREATE TABLE clean_indicators_data (
        `uid` bigint,
        `xiansun` bigint,
        `warnindicator` bigint
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
    --清洗后的窃电标志数据
    CREATE TABLE clean_steal_flag_data (
        `uid` bigint,
        `flag` bigint
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
    --汇聚后的数据
    CREATE TABLE data4ml (
        `uid` bigint,
        `trend` bigint,
        `xiansun` bigint,
        `warnindicator` bigint,
        `flag` bigint
    )
    COMMENT '*'
    PARTITIONED BY (ds string)
    LIFECYCLE 36000;
  6. 建表语句输入完成后,单击生成表结构确认覆盖当前操作。
  7. 返回建表页面后,在基本属性中输入表的中文名。
  8. 完成设置后,分别单击提交到开发环境提交到生产环境提交环境

设计业务流程

业务流程的新建及依赖关系的配置请参见新建业务流程

进入业务流程开发面板,并向面板中拖入两个ODPS SQL节点,依次命名为数据清洗数据汇聚,并配置如下图所示的依赖关系。依赖关系

配置ODPS SQL节点

  • 配置数据清洗节点。
    1. 双击数据清洗节点,进入节点配置页面。
    2. 编写处理逻辑。编写SQL
      SQL逻辑如下所示。
      INSERT OVERWRITE TABLE clean_trend_data PARTITION(dt=${bdp.system.bizdate})
      SELECT  uid
              ,trend
      FROM    trend_data
      WHERE   trend IS NOT NULL
      AND     uid != 0
      AND     dt = ${bdp.system.bizdate}
      ;  
      
      INSERT OVERWRITE TABLE clean_steal_flag_data PARTITION(ds=${bdp.system.bizdate})
      SELECT  uid
              ,flag
      FROM    steal_flag_data
      WHERE   uid != 0
      AND     ds = ${bdp.system.bizdate}
      ;
      
      INSERT OVERWRITE TABLE clean_indicators_data PARTITION(ds=${bdp.system.bizdate})
      SELECT  uid
              ,xiansun,warnindicator
      FROM    indicators_data
      WHERE   uid != 0
      AND     ds = ${bdp.system.bizdate}
      ;
    3. 单击工具栏中的保存图标。
  • 配置数据汇聚节点。
    1. 双击数据汇聚节点,进入节点配置页面。
    2. 编写处理逻辑。编写SQL
      SQL逻辑如下所示。
      INSERT OVERWRITE TABLE data4ml PARTITION (ds=${bdp.system.bizdate})
      SELECT  a.uid
              ,trend
              ,xiansun
              ,warnindicator
              ,flag
      FROM    
      (
          SELECT uid,trend FROM clean_trend_data where dt=${bdp.system.bizdate}
      )a  
      FULL OUTER JOIN 
      (
          SELECT uid,xiansun,warnindicator FROM  clean_indicators_data where ds=${bdp.system.bizdate}
      )b
      ON      a.uid = b.uid
      FULL OUTER JOIN 
      (
          SELECT uid,flag FROM  clean_steal_flag_data where ds=${bdp.system.bizdate}
      )c 
      ON      b.uid = c.uid
      ;
    3. 单击工具栏中的保存图标。

提交业务流程

  1. 打开业务流程配置面板,单击工具栏中的提交图标。
  2. 选择提交对话框中需要提交的节点,输入备注,并选中忽略输入输出不一致的告警提交
  3. 单击提交,待显示提交成功即可。

运行业务流程

  1. 打开业务流程配置面板,单击工具栏中的运行图标。
  2. 在左侧导航栏,单击临时查询
  3. 临时查询页面,右键单击临时查询,选择新建节点 > ODPS SQL
    临时查询
  4. 编写并执行SQL语句,查看导入表clean_trend_dataclean_indicators_dataclean_steal_flag_datadata4ml的记录数。
    临时查询
    SQL语句如下所示,其中分区列需要更新为业务日期。例如,任务运行的日期为20190809,则业务日期为20190808。
    --查看是否成功写入MaxCompute
    SELECT count(*) from clean_trend_data where dt=业务日期;
    SELECT count(*) from clean_indicators_data where ds=业务日期;
    SELECT count(*) from clean_steal_flag_data where ds=业务日期;
    SELECT count(*) from data4ml where ds=业务日期;

发布业务流程

提交业务流程后,表示任务已进入开发环境。由于开发环境的任务不会自动调度,您需要将配置完成的任务发布至生产环境。

说明 将任务发布至生产环境前,您需要对代码进行测试,确保其正确性。
  1. 打开业务流程配置面板,单击工具栏中的发布图标。
  2. 创建发布包页面,选中待发布的任务,单击添加到待发布添加到待发布
  3. 进入右上角的待发布列表,单击全部打包发布打包发布
  4. 发布包列表页面查看已发布的内容。

在生产环境运行任务

  1. 任务发布成功后,单击右上角的运维中心
  2. 选择周期任务运维 > 周期任务中的相应节点。
    周期任务
  3. 右键单击DAG图中的start节点,选择补数据 > 当前节点及下游节点补数据
  4. 选中需要补数据的任务,并选择业务日期
    确定
  5. 单击确定
  6. 补数据实例页面,单击刷新,直至SQL任务都运行成功即可。

后续步骤

现在,您已经学习了如何创建SQL任务、如何处理原始数据。您可以继续下一个教程,学习如何通过机器学习,载入处理好的数据并构建窃漏电用户的识别模型。