本文為您介紹如何新建HttpFile和MySQL數據源來訪問本教程所提供的用戶信息與網站日志數據,配置數據同步鏈路至私有OSS數據源,并通過EMR Hive節點建表查詢同步后的數據,完成數據同步的操作過程。
前提條件
開始本文的操作前,請準備好需要使用的環境。詳情請參見準備環境。
步驟一:新建數據源
根據本次實驗模擬的場景,您需要新建三個數據源,并將其注冊到DataWorks工作空間,才能進行后續操作。其中前兩者為HttpFile數據源、MySQL數據源,用于訪問本教程提供的測試數據(用戶訪問網站記錄數據、用戶信息數據);最后一個是您自己的OSS數據源,用于接收來自前兩者所獲取的測試數據。
新建HttpFile數據源
進入數據源頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的 ,在下拉框中選擇對應工作空間后單擊進入管理中心。
進入工作空間管理中心頁面后,單擊左側導航欄的
,進入數據源頁面。
單擊新增數據源
在新增數據源對話框中,搜索選擇數據源類型為HttpFile。
在創建HttpFile數據源對話框中,配置各項參數。本教程需按示例值填寫。
參數
描述
數據源名稱
輸入數據源名稱,本教程請填寫user_behavior_analysis_httpfile。
數據源描述
輸入DataWorks案例體驗專用數據源,在離線同步配置時讀取該數據源即可訪問平臺提供的測試數據,該數據源只支持數據集成場景去讀取,其他模塊不支持使用。
適用環境
勾選開發和生產。
說明開發環境的數據源創建完成后,需要勾選生產,以同樣方式創建生產環境的數據源,否則任務生產執行會報錯。
URL域名
輸入
https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com
。單擊指定的資源組連通狀態列的測試連通性,等待界面提示測試完成,連通狀態為可連通。
重要需確保至少一個資源組為可連通狀態,否則此數據源無法使用向導模式創建同步任務。
單擊完成創建。
新建MySQL數據源
在管理中心頁面,單擊進入 頁面后單擊新增數據源。
在新增數據源對話框中,搜索選擇數據源類型為MySQL。
在創建MySQL數據源對話框,配置各項參數。本教程需按示例值填寫。
參數
描述
數據源名稱
輸入數據源名稱,本教程請填寫user_behavior_analysis_mysql。
數據源描述
輸入DataWorks案例體驗專用數據源,在離線同步配置時讀取該數據源即可訪問平臺提供的測試數據,該數據源只支持數據集成場景讀取,其他模塊不支持使用。
配置模式
選擇連接串模式
連接地址
主機地址IP:
rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com
端口號:
3306
數據庫名稱
輸入數據庫名,本教程請填寫
workshop
·用戶名
輸入用戶名,本教程請填寫workshop。
密碼
輸入密碼,本教程請填寫workshop#2017。
認證選項
無認證。
單擊指定的資源組連通狀態列的測試連通性,等待界面提示測試完成,連通狀態為可連通。
單擊完成。
新建私有OSS數據源
本次實驗將RDS數據源的用戶信息和OSS數據源的日志信息同步至私有OSS數據源。
在管理中心頁面,單擊進入 頁面后單擊新增數據源。
在新增數據源對話框中,搜索選擇數據源類型為OSS。
在新增OSS數據源對話框中,配置各項參數。
參數
描述
數據源名稱
輸入數據源的名稱,本示例為test_g。
數據源描述
對數據源進行簡單描述。
Endpoint
輸入
http://oss-cn-shanghai-internal.aliyuncs.com
。Bucket
您準備環境時創建的OSS Bucket的名稱,示例為dw-emr-demo。
AccessKey ID
當前登錄賬號的AccessKey ID,您可以進入安全信息管理頁面復制AccessKey ID。
AccessKey Secret
輸入當前登錄賬號的AccessKey Secret。
重要AccessKey Secret只在創建時顯示,不支持后續再次查看,請妥善保管。如果AccessKey泄露或丟失,請刪除并創建新的AccessKey。
單擊指定資源組連通狀態列的測試連通性,等待界面提示測試完成,連通狀態為可連通。
重要需確保至少一個資源組為可連通狀態,否則此數據源無法使用向導模式創建同步任務。
單擊完成。
步驟二:搭建同步鏈路
新建業務流程
單擊左上方的圖標,選擇 。
在數據開發面板,右鍵單擊業務流程,選擇新建業務流程。
在新建業務流程對話框中,輸入業務名稱和描述。
重要業務名稱不能超過128個字符,且必須是大小寫字母、中文、數字、下劃線(_)以及英文句號(.)。
單擊新建。
進入業務流程開發面板,鼠標單擊虛擬節點并拖拽至右側的編輯頁面。在新建節點對話框中,輸入節點名稱為workshop_start_emr,單擊確認。
以同樣的方式新建兩個離線同步節點,節點名稱分別為ods_raw_log_d_2oss_emr和ods_user_info_d_2oss_emr,用于后續同步RDS用戶信息與OSS日志信息。
通過拖拽連線,將workshop_start_emr節點設置為兩個離線同步節點的上游節點。
配置workshop_start_emr節點
在數據開發頁面,雙擊相應業務流程下的虛擬節點。打開該節點的編輯頁面,單擊右側的調度配置。
在時間屬性區域,設置重跑屬性為運行成功或失敗皆可重跑。
調度配置
圖片展示
說明
調度時間配置
虛擬節點配置調度時間為00:30,該虛擬節點會在每日00:30調起當前業務流程并執行。
設置重跑屬性為運行成功或失敗皆可重跑
調度依賴配置
由于虛擬節點
workshop_start_emr
無上游依賴,此時可以直接依賴工作空間根節點,由工作空間根節點觸發workshop_start_emr
節點執行。工作空間根節點命名為:
工作空間名_root
配置完成后,單擊左上方的圖標。
步驟三:配置同步任務
配置離線同步節點
同步MySQL數據源的用戶信息至自建的OSS。
在數據開發頁面,雙擊ods_user_info_d_2oss_emr節點,進入節點配置頁面。
配置同步網絡鏈接。
完成以下網絡與資源配置后,單擊下一步,并根據界面提示完成連通性測試。
參數
描述
數據來源
數據來源:MySQL
數據源名稱:user_behavior_analysis_mysql
我的資源組
選擇已購買的Serverless資源組。
數據去向
數據去向:OSS
數據源名稱:選擇前文創建的私有OSS數據源,此處示例為test_g。
配置同步任務。
參數
描述
數據來源
表:選擇數據源中的ods_user_info_d。
切分鍵:建議使用主鍵或有索引的列作為切分鍵,僅支持類型為整型的字段。此處設置切分鍵為uid。
數據去向
文本類型:選擇text類型。
文件名(含路徑):根據您自建OSS的目錄進行輸入,示例為ods_user_info_d/user_${bizdate}/user_${bizdate}.txt。其中ods_user_info_d為您自建的目錄名,$bizdate表示獲取前一天的日期。
列分隔符:輸入列分隔符為|。
調度設置
配置頁面單擊右側調度配置,可進入調度配置面板配置調度與節點信息。以下為配置的內容。
配置項
配置內容
圖示
調度參數
在調度參數項中單擊新增參數,添加:
參數值:$[yyyymmdd-1]
調度依賴
在調度依賴確認產出表已作為本節點輸出。
格式為
worksspacename.節點名
配置完成后,單擊工具欄中的圖標。
同步HttpFile數據源的日志信息至自建的OSS。
在數據開發頁面,雙擊ods_raw_log_d_2oss_emr節點,進入節點配置頁面。
配置同步網絡鏈接。
完成以下網絡與資源配置后,單擊下一步,并根據界面提示完成連通性測試。
參數
描述
數據來源
數據來源:HttpFile
數據源名稱:user_behavior_analysis_httpfile
我的資源組
選擇已購買的Serverless資源組。
數據去向
數據去向:OSS
數據源名稱:選擇前文創建的私有OSS數據源,此處示例為test_g。
配置同步任務。
參數
描述
數據來源
文本類型:選擇text類型。
文件路徑:/user_log.txt。
列分隔符:輸入列分隔符為|。
壓縮格式:包括None、Gzip、Bzip2和Zip四種類型,此處選擇None。
是否跳過表頭:選擇No。
數據去向
文本類型:選擇text類型。
文件名(含路徑):根據您自建OSS的目錄進行輸入,示例為ods_raw_log_d/log_${bizdate}/log_${bizdate}.txt,其中ods_raw_log_d為您自建的目錄名,$bizdate表示獲取前一天的日期。
列分隔符:輸入列分隔符為|。
調度設置
配置頁面單擊右側調度配置,可進入調度配置面板配置調度與節點信息。以下為配置的內容。
配置項
配置內容
圖示
調度參數
在調度參數項中單擊新增參數,添加:
參數值:$[yyyymmdd-1]
調度依賴
在調度依賴確認產出表已作為本節點輸出。
格式為
worksspacename.節點名
配置完成后,單擊工具欄中的圖標,進行保存。
新建EMR表
新建兩張表ods_user_info_d_emr表、ods_raw_log_d_emr表,分別用于查詢同步后的原始的MySQL用戶數據和OSS日志數據。
在數據開發頁面打開新建的業務流程,右鍵單擊EMR,選擇 。
在新建節點對話框中,輸入節點名稱,單擊確認。
此處需要新建兩個EMR Hive節點(ods_user_info_d_emr和ods_raw_log_d_emr),用于創建對應的兩張表,并根據下圖,通過拉線配置節點的上下游依賴關系。
分別在EMR Hive節點中輸入建表語句,并在調度配置中調度資源組選擇為已購買的Serverless資源組,然后單擊保存并運行各建表語句。
新建ods_user_info_d_emr表。
雙擊ods_user_info_d_emr節點,進入編輯頁面,編輯新建ods_user_info_d_emr表任務。
編輯SQL代碼。
CREATE EXTERNAL TABLE IF NOT EXISTS ods_user_info_d_emr ( `uid` STRING COMMENT '用戶ID', `gender` STRING COMMENT '性別', `age_range` STRING COMMENT '年齡段', `zodiac` STRING COMMENT '星座' ) PARTITIONED BY ( dt STRING ) ROW FORMAT delimited fields terminated by '|' LOCATION 'oss://dw-emr-demo/ods_user_info_d/'; ALTER TABLE ods_user_info_d_emr ADD IF NOT EXISTS PARTITION (dt='${bizdate}') LOCATION 'oss://dw-emr-demo/ods_user_info_d/user_${bizdate}/';
說明上述代碼中的location為示例路徑,與之前配置離線同步任務時的數據去向相同,需要輸入您建立的文件路徑名稱,其中dw-emr-demo是您準備環境時創建的OSS Bucket域名。
配置調度配置。
配置項
配置內容
圖示
調度參數
在調度參數項中單擊新增參數,添加:
參數值:$[yyyymmdd-1]
調度依賴
在調度依賴確認產出表已作為本節點輸出。
格式為
worksspacename.節點名
完成配置后,單擊保存節點。
新建ods_raw_log_d_emr表。
雙擊ods_raw_log_d_emr節點,編輯新建ods_raw_log_d_emr表任務。
編輯SQL代碼
--創建OSS日志對應目標表 CREATE EXTERNAL TABLE IF NOT EXISTS ods_raw_log_d_emr ( `col` STRING ) PARTITIONED BY ( dt STRING ); ALTER TABLE ods_raw_log_d_emr ADD IF NOT EXISTS PARTITION (dt='${bizdate}') LOCATION 'oss://dw-emr-demo/ods_raw_log_d/log_${bizdate}/';
說明上述代碼中的location為示例路徑,與之前配置離線同步任務時的數據去向相同,需要輸入您建立的文件路徑名稱,其中dw-emr-demo是您準備環境時創建的OSS Bucket的名稱。
配置調度配置。
配置項
配置內容
圖示
調度參數
在調度參數項中單擊新增參數,添加:
參數值:$[yyyymmdd-1]
調度依賴
在調度依賴確認產出表已作為本節點輸出。
格式為
worksspacename.節點名
完成配置后,單擊保存節點。
運行并查看結果
運行業務流程
在數據開發頁面,雙擊業務流程下的WorkShop,打開Workflow業務流程面板后,單擊工具欄中的圖標,按照上下游依賴關系運行業務流程。
確認執行情況。
查看任務運行狀態:節點處于狀態,即代表同步執行過程無問題。
查看任務執行日志:右鍵單擊ods_user_info_d_emr、ods_raw_log_d_emrHive節點,選擇查看日志。當日志中出現如下字樣,表示同步節點運行成功,并成功同步數據。
查詢同步結果
新建臨時查詢文件
在數據開發頁面的左側導航欄,單擊,進入臨時查詢面板。右鍵單擊臨時查詢,選擇新建節點>EMR Hive。
查詢同步結果表。
執行如下SQL語句,確認同步數據寫入結果。查看導入ods_raw_log_d_emr和ods_user_info_d_emr的記錄數。
--查詢語句中的分區列需要更新為業務日期。例如,任務運行的日期為20191107,則業務日期為20191106,即任務運行日期的前一天。 SELECT * from ods_user_info_d_emr where dt=業務日期; SELECT * from ods_raw_log_d_emr where dt=業務日期;
后續步驟
現在,您已經學習了如何進行日志數據同步,完成數據的同步,您可以繼續下一個教程。在該教程中,您將學習如何對同步的數據進行計算與分析。詳情請參見加工數據。