本文為您介紹如何通過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任務、如何處理原始數據。您可以繼續下一個教程,學習如何通過機器學習,載入處理好的數據并構建竊漏電用戶的識別模型。詳情請參見數據建模。