開發者學堂課程【DataWorks 使用教程:DataWorks 基本操作示範】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/107/detail/1866DataWorks 基本操作示範
内容簡介:
一、開發流程
二、建立工作空間
三、建立 OSS 資料源
四、建立 RDS 資料源
五、建立業務流程
六、配置 workshop_start 節點
七、建立表
八、配置離線同步節點
九、送出業務流程
十、運作業務流程
十一、确認資料是否成功導入 MaxCompute
十二、配置 ODPS SQL 節點
十三、業務流程
十四、配置資料品質監控
十五、資料可視化展現
十六、通過向導模式生成 API
Workshop 教程涉及的具體開發流程如下:
1. 環境準備:
準備操作過程中需要的 MaxCompute、DataWorks 等環境。詳情請參見
準備環境。
2. 資料采集:
學習如何從不同的資料源同步資料至 MaxCompute 中、如何快速觸發任務運作、如何檢視任務日志等。詳情請參見
采集資料3. 資料加工:
學習如何運作資料流程圖、如何建立資料表、如何建立資料流程任務節點、如何配置任務的周期排程屬性。詳情請參見
加工資料4. 資料品質監控:
學習如何給任務配置資料品質的監控規則,以保證任務運作的品質問題。詳情請參見
配置資料品質監控5. 資料可視化展現:
學習如何通 過 Quick BI 建立網站使用者分析畫像的儀表闆,實作所需資料的可視化展現。詳情請參見
資料可視化展現6. 通過 Function Studio 開發 UDF:
學習如何通過 Function Studio 開發 UDF,并将其送出至 DataStudio 的開發環境。
1.使用主賬号登入 DataWorks 控制台。
2.在概覽頁面,單擊右側的快速入口>建立工作空間。
您也可以單擊左側導航欄中的工作空間清單,切換至相應的區域後,單擊建立工作空間。
3.配置建立工作空間對話框中的基本配置,單擊下—步。
4.進入選擇引擎界面,勾選 MaxCompute 引擎後,單擊下—步。
DataWorks 已正式商用,如果該區域沒有開通,需要首先開通正式商用的服務。
預設選中資料內建、資料開發、運維中心和資料品質。
5.進入引擎詳情頁面,配置選購引擎的參數。
執行個體顯示名稱:
執行個體顯示名稱不能超過 27 個字元,僅支援字母開頭,僅包含字母、數字和下劃線(_)。
Quota 組切換:
Quota 用于實作計算資源和磁盤配額。
Maxcompute 資料類型:
該選項設定後,将在 5 分鐘内生效。詳情請參見資料類型版本說明。
Maxcompute 項目名稱:
預設與 DataWorks 工作空間的名稱—緻。
Maxcompute 通路身份:
包括阿裡雲主賬号和任務負責人。
6.配置完成後,單擊建立工作空間。
工作空間建立成功後,即可在工作空問清單頁面檢視相應内容。
1.進入資料源管理頁面。
i.登入 DataWorks 控制台。
ii.在左側導航欄,單擊工作空間清單。
iii.單擊相應工作空間後的進入資料內建。
如果您已在 DataWorks 的某個功能子產品,請單擊左上方的目圖示,選擇全部産品>資料彙聚>資料內建,進入資料內建頁面。
iv.在左側導航欄,單擊資料源,進入工作空間管理>資料源管理頁面。
2.在資料源管理頁面,單擊右上方的新增資料源。
3.在新增資料源對話框中,選擇資料源類型為 OSS。
4.在新增OSS資料源對話框,配置各項參數。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SO2ETMhNjNzITM1MTOkBTOiNTY0Q2NiVjYzEDNjVzM18CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
資料源名稱:輸入 oss_workshop_log。
資料源描述:對資料源進行簡單描述。
适用環境:勾選開發。
說明:開發環境的資料源建立完成後,需要勾選生産,以同樣方式建立生産環境的資料源,否則任務生産執行會報錯。
Endpoint:輸入
http://loss-cn-shanghai-internal.aliyuncs.com.
Bucket:輸入 new-dataworks-workshop.
AccessKey ID:輸入 LTAl4FvGT3iU4xjKotpUMAjs.
AccessKey Secret:輸入 9RSUoRmNxpRC9EhC4m9PjuG7Jzy7px.
5.在資源組清單,單擊相應資源組後的測試連通性。
資料同步時,一個任務隻能使用—種資源組。您需要測試每種資源組的連通性,以保證同步任務使用的資料內建資源組能夠與資料源連通,否則将無法正常執行資料同步任務。
如果您需要同時測試多種資源組,請選中相應資源組後,單擊批量測試連通性。詳情請參見選擇網絡連通方案。
1. 連通性測試通過後,單擊完成。
1.單擊目前頁面左上角圖示,選擇全部産品資料彙聚>資料內建。
2.在左側導航欄,單擊資料源>資料源清單,進入工作空間管理>資料源管理頁面。
3.在資料源管理頁面,單擊右上方的新增資料源。
4.在新增資料源對話框中,選擇資料源類型為 My SQL
5.在新增 MySQL 資料源對話框中,配置各項參數。
資料源類型:選擇阿裡雲執行個體模式。
資料源名稱:輸入 rds_workshop_log.
資料源描述:輸入 RDS 日志資料同步。
地區:選擇 RDS 執行個體所在的區域。
RDS 執行個體 ID:輸入 rm-bp1z69dodhh85z9qa.
RDS 執行個體主賬号 ID:輸入 1156529087455811。
資料庫名:輸入 workshop.
使用者名:輸入 workshop.
密碼:輸入 workshop#2017。
6.在資源組清單,單擊相應資源組後的測試連通性。
資料同步時,一個任務隻能使用—種資源組。
您需要測試每種資源組的連通性,以保證同步任務使用的資料內建資源組能夠與資料源連通,否則将無法正常執行資料同步任務。
7.測試連通性通過後,單擊完成。
1.單擊目前頁面左上方的圖示,選擇全部産品>資料開發> DataStudio(資料開發)。
2.在資料開發面闆,右鍵單擊業務流程,選擇建立業務流程。
3.在建立業務流程對話框中,輸入業務名稱和描述。
注意:業務名稱不能超過 128 個字元,且必須是大小寫字母、中文、數字、下劃線(_)以及小數點(.)。
4.單擊建立。
5.進入業務流程開發面闆,滑鼠單擊虛拟節點并拖拽至右側的編輯頁面。
6.在建立節點對話框中,輸入節點名稱為 workshop_start,單擊送出。
以同樣的方式建立兩個離線同步節點,節點名稱分别為 oss 資料同步和 rds 資料同步。
7.通過拖拽連線,将 workshop_start 節點設定為兩個離線同步節點的上遊節點。
1. 在資料開發頁面,輕按兩下相應業務流程下的虛拟節點。打開該節點的編輯頁面,單擊右側的排程配置。
2. 在排程依賴區域,單擊使用工作空間根節點,設定 workshop_start 節點的上遊節點為工作空間根節點。
由于新版本給每個節點都設定了輸入輸出節點,是以需要給 workshop_start 節點設定一個輸入。此處設定其上遊節點為工作空間根節點,通常命名為工作空間名稱_root
1. 在資料開發頁面打開建立的業務流程,右鍵單擊 MaxCompute,選擇建立>表。
2.在建立表對話框中,輸入表名,單擊送出。
此處需要建立兩張表 (ods_raw_log_d和ods_user_info_d),分别存儲同步過來的OSS 日志資料和 RDS 日志資料。
注意:表名必須以字母開頭,不能包含中文或特殊字元,且不能超過 64 個字元。
3.通過 DDL 模式建立表。
建立 ods_raw_log_d 表。
在表的編輯頁面單擊 DDL 模式,輸入下述建表語句。
--建立 OSS 日志對應目标表
CREATE TABLE IF NOT EXISTS ods_raw_log_d (
col STRING
)
PARTITIONED BY (
dt STRING
);
建立 ods_user_info_d 表。
--建立 RDS 對應目标表
CREATE TABLE IF NOT EXISTS ods_user_info_d (
uid STRING COMMENT '使用者ID',
gender STRING COMMENT '性别',
age_range STRING COMMENT '年齡段',
zodiac STRING COMMENT '星座'
)
PARTITIONED BY (
dt STRING
);
4.單擊生成表結構,并确認覆寫目前操作。
5.傳回建表頁面,在基本屬性中輸入表的中文名。
6.完成設定後,分别單擊送出到開發環境和送出到生産環境。
1.配置 oss_ 資料同步節點。
(1)在資料開發頁面,輕按兩下 oss_ 資料同步節點,進入節點配置頁面。
(2)選擇資料來源。
資料源:選擇 Oss > oss_workshop_log 資料源。
Object字首:輸入 OSS 檔案夾的路徑,請勿填寫 Bucket 的名稱。示例為user_log.txt。
文本類型:選擇 text 類型。
列分隔符輸入列分隔符為 |。
編碼格式:預設為 UTF-8 格式。
null 值:表示 null 值的字元串。
壓縮格式:包括 None、Gzip、Bzip2 和 Zip 四種類型,此處選擇 None。
是否包含表頭:預設為 No。
(3)選擇資料去向。
資料源:選擇 ODPS > odps_first 資料源。
表:選擇資料源中的 ods_raw_log_d 表。
分區資訊:預設配置為$ {bizdate}.
清理規則:預設為寫入前清理已有資料。
空字元串作為 null:此處勾選否。
(4)配置字段映射。
(5)配置通道控制。
(6)單擊頁面右側的排程配置,在排程依賴>本節點的輸出區域,輸入本節點的輸出名稱為工作空間名稱 . ods_raw_log_d。
(7)确認目前節點的配置無誤。
(8)關閉目前任務,傳回業務流程配置面闆。
2.配置 rds_ 資料同步節點。
(1)在資料開發頁面,輕按兩下 rds_ 資料同步節點,進入節點配置頁面。
(4)配置字段映射。
(6)單擊頁面右側的排程配置,在排程依賴>本節點的輸出區域,輸入本節點的輸出名稱為工作空間名稱 .ods_user_info_d。
添加成功後,您可以删除不規範的輸出名稱。
1. 在資料開發頁面,輕按兩下相應的業務流程打開編輯頁面。
2.選擇送出對話框中需要送出的節點,輸入備注,勾選忽略輸入輸出不一緻的告警。
3.單擊送出,待顯示送出成功即可。
2.右鍵單擊 rds_ 資料同步節點,選擇檢視日志。
當日志中出現如下字樣,表示同步節點運作成功,并成功同步資料。
2.右鍵單擊 rds_ 資料同步節點,選擇檢視日志。
十一、确認資料是否成功導入 MaxCompute
1.在資料開發頁面的左側導航欄,單擊臨時查詢,進入臨時查詢面闆。
2.右鍵單擊臨時查詢,選擇建立節點 >ODPS SQL。
3.編寫并執行 SQL 語句,檢視導入 ods_raw_log_d和ods_user_info_d 的記錄數。
設計業務流程:
業務流程節點間依賴關系的配置請參見采集資料。
輕按兩下建立的業務流程打開編輯頁面,滑鼠單擊 ODPS SQL 并拖拽至右側的編輯頁面。在建立節點對話相中,輸入節點名稱,單擊送出。
此處需要建立三個 ODPS SQL 節點,依次命名為 ods_log_info_d、 dw_user_info_all_d 和 rpt_user_info_d,并配置如下圖所示的依賴關系。
建立使用者自定義函數
1.建立資源。
(1)下載下傳 ip2region.jar.
(2)在資料開發頁面打開業務流程,右鍵單擊 MaxCompute,選擇建立>資源>JAR。
(3)在建立資源對話框中,輸入資源名稱,并選擇目标檔案夾。
(4)單擊點選上傳,選擇已經下載下傳至本地的 ip2region.jar,單擊打開。
(5)單擊确定。
(6)單擊工具欄中的圖示。
2.注冊函數。
(1)在資料開發頁面打開業務流程,右鍵單擊 MaxCompute,選擇建立>函數。
(2)在建立函數對話框中,輸入函數名稱(示例為 getregion),單擊送出。
(3)在注冊函數對話框中,配置各項參數。
1.配置 ods_log_info_d 節點。
(1)輕按兩下 ods_log_info_d 節點,進入節點配置頁面。
(2)在節點編輯頁面,編寫如下SQL語句。
INSERT OVERWRITE TABLE ods_log_info_d PARTITION (dt=${bdp.system.bizdate})
SELECT ip
, uid
, time
, status
, bytes
, getregion(ip) AS region --使用自定義UDF通過IP得到地域。
, regexp_substr(request, '(^[^ ]+ )') AS method --通過正則把request差分為3個字段。
, regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') AS url
, regexp_substr(request, '([^ ]+$)') AS protocol
, regexp_extract(referer, '^[^/]+://([^/]+){1}') AS referer --通過正則清晰refer,得到更精準的URL。
, CASE
WHEN TOLOWER(agent) RLIKE 'android' THEN 'android' --通過agent得到終端資訊和通路形式。
WHEN TOLOWER(agent) RLIKE 'iphone' THEN 'iphone'
WHEN TOLOWER(agent) RLIKE 'ipad' THEN 'ipad'
WHEN TOLOWER(agent) RLIKE 'macintosh' THEN 'macintosh'
WHEN TOLOWER(agent) RLIKE 'windows phone' THEN 'windows_phone'
WHEN TOLOWER(agent) RLIKE 'windows' THEN 'windows_pc'
ELSE 'unknown'
END AS device
, CASE
WHEN TOLOWER(agent) RLIKE '(bot|spider|crawler|slurp)' THEN 'crawler'
WHEN TOLOWER(agent) RLIKE 'feed'
OR regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') RLIKE 'feed' THEN 'feed'
WHEN TOLOWER(agent) NOT RLIKE '(bot|spider|crawler|feed|slurp)'
AND agent RLIKE '^[Mozilla|Opera]'
AND regexp_extract(request, '^[^ ]+ (.*) [^ ]+$') NOT RLIKE 'feed' THEN 'user'
ELSE 'unknown'
END AS identity
FROM (
SELECT SPLIT(col, '##@@')[0] AS ip
, SPLIT(col, '##@@')[1] AS uid
, SPLIT(col, '##@@')[2] AS time
, SPLIT(col, '##@@')[3] AS request
, SPLIT(col, '##@@')[4] AS status
, SPLIT(col, '##@@')[5] AS bytes
, SPLIT(col, '##@@')[6] AS referer
, SPLIT(col, '##@@')[7] AS agent
FROM ods_raw_log_d
WHERE dt = ${bdp.system.bizdate}
) a;
2.配置 dw_user_info_all_d 節點。
(1)輕按兩下 dw_user_info_all_d 節點,進入節點配置頁面。
(2)在節點編輯頁面,編寫如下 SQL 語句。
INSERT OVERWRITE TABLE dw_user_info_all_d PARTITION (dt='${bdp.system.bizdate}')
SELECT COALESCE(a.uid, b.uid) AS uid
, b.gender
, b.age_range
, b.zodiac
, a.region
, a.device
, a.identity
, a.method
, a.url
, a.referer
, a.time
FROM (
SELECT *
FROM ods_log_info_d
WHERE dt = ${bdp.system.bizdate}
) a
LEFT OUTER JOIN (
SELECT *
FROM ods_user_info_d
WHERE dt = ${bdp.system.bizdate}
) b
ON a.uid = b.uid;
3.配置 rpt_user_info_d 節點。
(1)輕按兩下 rpt_user_info_d 節點,進入節點配置頁面。
INSERT OVERWRITE TABLE rpt_user_info_d PARTITION (dt='${bdp.system.bizdate}')
SELECT uid
, MAX(region)
, MAX(device)
, COUNT(0) AS pv
, MAX(gender)
, MAX(age_range)
, MAX(zodiac)
FROM dw_user_info_all_d
WHERE dt = ${bdp.system.bizdate}
GROUP BY uid;
1、送出業務流程
(1)在業務流程的編輯頁面,單擊國圖示,送出業務流程中已配置完成的節點。
(2)在送出對話框中,選擇需要送出的節點,選中忽略輸入輸出不—緻的告警。
(3)單擊送出。
2、運作業務流程
(1)在業務流程的編輯頁面,驗證代碼邏輯。
(2)待所有任務運作完成顯示綠色箭頭後,在左側導航欄,單擊臨時查詢。
(3)在臨時查詢面闆,右鍵單擊臨時查詢,選擇建立節點 >ODPS SQL。
(4)編寫并執行SQL語句,查詢任務運作結果,确認資料産出。
3、釋出業務流程
送出業務流程後,表示任務已進入開發環境。由于開發環境的任務不會自動排程,您需要釋出配置完成的任務至生産環境。
(1)在業務流程的編輯頁面,進入釋出頁面。
(2)選擇待釋出任務,單擊添加到待釋出。
(3)單擊右上角的待釋出清單,進入清單後,單擊全部打包釋出。
(4)在确認釋出對話框中,單擊釋出。
(5)在左側導航欄,單擊釋出包清單,檢視釋出狀态。
4、在生産環境運作任務
(1)任務釋出成功後,單擊右上角的運維中心。
您也可以進入業務流程的編輯頁面,單擊工具欄中的前往運維,進入運維中心頁面。
(2)在左側導航欄,單擊周期任務運維>周期任務,進入周期任務頁面,單擊workshop 業務流程。
(3)輕按兩下 DAG 圖中的虛節點展開業務流程,右鍵單擊 workshop_start 節點,選擇補資料>目前節點及下遊節點。
(4)選中需要補資料的任務,輸入業務日期,單擊确定,自動跳轉至補資料執行個體頁面。
(5)單擊重新整理,直至 SQL 任務全部運作成功即可。
配置表 ods_raw_log_d 的監控規則。
1.在已添加的分區表達式子產品,單擊+,添加分區表達式。
ods_raw_log_d 表的資料來源為 oss_workshop_log,資料是從 OSS 中擷取到的日志資料,其分區格式為 ${bdp.system.bizdate}( 擷取到前—天的日期)。
對于此類每天産出的日志資料,您可以配置表的分區表達式。在添加分區對話框中,選擇 dt=$lyyyymmdd-1],單擊确認。分區表達式的詳情請參見基礎屬性:排程參數。
2.單擊建立規則,預設在模闆規則對話框。
3.單擊添加監控規則,選擇規則模闆為表行數,固定值,設定規則的強度為強、比較方式為期望值大于 0。
表 ods_raw_log_d 的資料來源于 OSS 上傳的日志檔案,作為源頭表,您需要盡早判斷該表的分區中是否存在資料。如果該表沒有資料,則需要阻止後續任務運作。如果來源表沒有資料,後續任務運作無意義。
配置完成後,單擊批量儲存。
4.單擊試跑,在試跑對話框中,選擇排程時間,單擊試跑。
試跑可以立即觸發資料品質的校驗規則,對配置完成的規則進行校檢。試跑完成後,單擊試跑成功!點選檢視試跑結果,即可跳轉至試跑結果頁面。
5.進行關聯排程。
資料品質支援和排程任務關聯。在表規則和排程任務綁定後,任務執行個體運作完成都會觸發資料品質的檢查。您可以通過以下兩種方式進行表規則和任務的關聯排程:
(1)在運維中心頁面關聯表規則
單擊左上方的目圖示,選擇全部産品>運維中心。
在左側導航欄,單擊周期任務運維>周期任務。在 DAG 圖中,右鍵單擊 oss_ 資料同步任務,選擇配置品質監控。
在配置品質監控對話框中,選擇表名 (ods_raw_log_d) 和分區表達式dt=$[yyyymmdd-1]),單擊添加。
(2)在資料品質頁面關聯表規則
在表的監控規則頁面,單擊關聯排程,配置規則與任務的綁定關系。
單擊關聯排程,可以與已送出到排程的節點任務進行綁定,系統會根據血緣關系給出推薦綁定的任務,也支援自定義綁定。
在關聯排程對話框中,輸入節點 ID 或節點名稱,單擊添加。添加完成後,即可完成與排程節點任務的綁定。
6. 訂閱任務。
在表的監控規則頁面,單擊訂閱管理,設定接收人以及訂閱方式。資料品質支援郵件通知、郵件和短信通知、釘釘群機器人和釘釘群機器人 @ALL。
訂閱管理設定完成後,在左側導航欄,單擊我的訂閱,檢視和修改已訂閱的任務。
操作步驟
1. 單擊進入預設空間,您也可以使用自己的個人空間。
2. 選擇資料源≥建立資料源>雲資料庫> Maxcompute。
3.輸入您的 MaxCompute 項目名稱以及您的 AcessKey 資訊,資料庫位址使用預設位址即可,關于資料庫位址詳情請參見 Endpoint。
完成填寫後,單擊連接配接測試,待顯示資料源連通性正常後單擊添加即可。
4.找到您剛添加的資料源的 rpt_user_info_d 表,單擊建立資料集。
5. 進入資料集清單頁,單擊您剛剛建立的資料集,對資料集進行編輯。
常見的資料集加工包括:次元、度量的切換、修改次元的類型、增加計算字段、建立層次結構、修改字段的資料類型、更改度量聚合方式、制作關聯模型。
6.轉換字段的次元類型。完成轉換後,您可以根據字段中具體的數值進行過濾篩選。
(1)轉換日期字段的次元類型。
右鍵單擊 dt 字段,選擇次元類型切換>日期(源資料格式)> yyyyMMdd。
(2)轉換地理資訊字段的次元類型。
右鍵單 擊 region 字段,選擇次元類型切換>地理資訊>省/直轄市。轉換成功後,在左側次元欄中會看到亨段前多—個地理位詈圖示。
7.制作儀表闆。
随着資料的更新,讓報表可視化地展現最新資料,這個過程叫制作儀表闆。儀表闆的制作流程為:确定内容、布局和樣式,制作圖表,完成動态關聯查詢。
(1) 單擊 rpt_user 資料集後的建立儀表闆,選擇正常模式,進入儀表闆編輯頁。
(2)從儀表闆空間中向空白區拖 入 1 個名額看闆。
選擇資料來源為資料集 rpt_user,選擇度量為 pv。
(3)制作趨勢圖:将圖表區域内的線圖拖拽到左側畫布。參數配置如下,完成之後單擊更新:
值軸/度量: pv
類别軸/次元:dt (day)
顔色圖例/次元:age_range
過濾器: dt (year)
(4)制作色彩地圖:單擊圖表區域内的色彩地圖,并選擇資料源來源為資料集rpt_user,選擇地理區域/次元為 region、色彩飽和度/度量為 pv,選擇完成後單擊更新,結果如下。
(5)完成配置後,單擊儲存及預覽,即可看到展示效果。
生成 API:
1.在服務開發頁面,滑鼠懸停至圖示,單擊 API> 生成 API。
也可以打開相應的業務流程,右鍵單擊 API,選擇建立>生成 API。
2.在生成 API 對話框中,配置各項參數。
3、單擊确定。
配置 API:
1. 輕按兩下打開 API 的編輯頁面,在選擇表區域,選擇資料源類型、資料源名稱和資料表名稱。
2.在環境配置區域,設定記憶體和逾時時間。
3.在選擇參數區域,設定請求參數和傳回參數。
您選擇資料表後,選擇參數區域會自動顯示該表的所有字段。根據自身需求,分别選中相應的字段設為請求參數和設為傳回參數,添加至請求參數和傳回參數清單中。
如果您需要對字段進行排序,單擊相應字段後的添加到字段排序,将其添加至排序字段清單中。
您可以根據資料表中的指定字段對API的傳回結果進行排序。當您的排序清單中有多個字段時,序号越小的字段,排序的優先級超高,您可以通過上移和下移操作來調整排序字段的優先級。對于每個排序字段,均可以選擇升序或降序的方式進行排序。
4.單擊 API 編輯頁面右側的請求參數,配置各項參數。
5.單擊 API 編輯頁面右側的傳回參數,配置各項參數
測試 API
在 API 的編輯頁面,單擊右上方的測試。