本文为您介绍如何通过DataWorks加工采集至MaxCompute的数据,并获取清洗后的数据。
前提条件
开始本文的操作前,请首先完成准备数据中的操作。
新建表
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
在数据开发页面,展开目标业务流程。
右键单击MaxCompute,选择新建表。
在新建表对话框中,输入表名称,单击新建。
重要表名必须以字母开头,不能包含中文或特殊字符,且不能超过64个字符。
此处需要创建的数据表,如下所示:
创建三张表,分别存储同步过来的电量下降趋势数据、指标数据和窃电标志数据清洗之后的数据(clean_trend_data、clean_indicators_data和clean_steal_flag_data)。
创建表data4ml,存储汇聚后的数据。
打开创建的表,单击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;
- 建表语句输入完成后,单击生成表结构并确认覆盖当前操作。
- 返回建表页面后,在基本属性中输入表的中文名。
完成设置后,分别单击提交到开发环境和提交到生产环境。
设计业务流程
业务流程的新建及依赖关系的配置请参见新建业务流程。
进入业务流程开发面板,并向面板中拖入两个ODPS SQL节点,依次命名为数据清洗和数据汇聚,并配置如下图所示的依赖关系。
配置ODPS SQL节点
配置数据清洗节点。
双击数据清洗节点,进入节点配置页面。
编写处理逻辑。
SQL逻辑如下所示。
INSERT OVERWRITE TABLE clean_trend_data PARTITION(dt=${bdp.system.bizdate}) SELECTuid ,trend FROMtrend_data WHEREtrend IS NOT NULL ANDuid != 0 ANDdt = ${bdp.system.bizdate} ; INSERT OVERWRITE TABLE clean_steal_flag_data PARTITION(ds=${bdp.system.bizdate}) SELECTuid ,flag FROMsteal_flag_data WHEREuid != 0 ANDds = ${bdp.system.bizdate} ; INSERT OVERWRITE TABLE clean_indicators_data PARTITION(ds=${bdp.system.bizdate}) SELECTuid ,xiansun,warnindicator FROMindicators_data WHEREuid != 0 ANDds = ${bdp.system.bizdate} ;
单击工具栏中的图标。
配置数据汇聚节点。
双击数据汇聚节点,进入节点配置页面。
编写处理逻辑。
SQL逻辑如下所示。
INSERT OVERWRITE TABLE data4ml PARTITION (ds=${bdp.system.bizdate}) SELECTa.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 FROMclean_indicators_data where ds=${bdp.system.bizdate} )b ONa.uid = b.uid FULL OUTER JOIN ( SELECT uid,flag FROMclean_steal_flag_data where ds=${bdp.system.bizdate} )c ONb.uid = c.uid ;
单击工具栏中的图标。
提交业务流程
打开业务流程配置面板,单击工具栏中的图标。
选择提交对话框中需要提交的节点,输入备注,并选中忽略输入输出不一致的告警。
单击确认,待显示提交成功即可。
运行业务流程
打开业务流程配置面板,单击工具栏中的图标。
在左侧导航栏,单击临时查询。
在临时查询页面,右键单击临时查询,选择 。
编写并执行SQL语句,查看导入表clean_trend_data、clean_indicators_data、clean_steal_flag_data和data4ml的记录数。
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=业务日期;
发布业务流程
提交业务流程后,表示任务已进入开发环境。由于开发环境的任务不会自动调度,您需要将配置完成的任务发布至生产环境。
将任务发布至生产环境前,您需要对代码进行测试,确保其正确性。
打开业务流程配置面板,单击工具栏中的图标。
在创建发布包页面,选中待发布的任务,单击添加到待发布。
进入右上角的待发布列表,单击全部打包发布。
在发布包列表页面查看已发布的内容。
在生产环境运行任务
任务发布成功后,单击右上角的运维中心。
选择 中的相应节点。
右键单击DAG图中的start节点,选择 。
选中需要补数据的任务,并选择业务日期。
单击提交。
在补数据实例页面,单击刷新,直至SQL任务都运行成功即可。
后续步骤
现在,您已经学习了如何创建SQL任务、如何处理原始数据。您可以继续下一个教程,学习如何通过机器学习,载入处理好的数据并构建窃漏电用户的识别模型。详情请参见数据建模。