本教程以MySQL中的使用者基本資料ods_user_info_d表和OSS中的網站訪問日誌資料user_log.txt檔案為例,通過Data Integration離線同步任務分別同步至StarRocks的ods_user_info_d_starrocks、ods_raw_log_d_starrocks表。旨在介紹如何通過DataWorksData Integration實現異構資料來源間的資料同步,完成數倉資料同步操作。
前提條件
請確保已準備好所需的工作環境。具體操作步驟請參見:準備環境。
一、建立資料來源
為確保後續資料處理流程的順利進行,您需要在DataWorks工作空間中建立如下資料來源,用於擷取平台提供的初始資料。
MySQL資料來源:本教程將資料來源命名為
user_behavior_analysis_mysql,用於擷取儲存在MySQL的使用者基本資料資料(ods_user_info_d)。Httpfile資料來源:本教程將資料來源命名為
user_behavior_analysis_httpfile,用於擷取儲存在OSS的使用者網站訪問記錄(user_log.txt)。
建立MySQL資料來源(user_behavior_analysis_mysql)
本教程提供的使用者基本資料儲存在MySQL資料庫中,您需要建立MySQL資料來源,以便在後續將MySQL資料庫中的使用者基本資料資料(ods_user_info_d)同步至StarRocks
進入資料來源頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,在下拉框中選擇對應工作空間後單擊進入管理中心。
單擊左側導覽列的資料來源,進入資料來源頁面。
單擊新增資料來源,搜尋選擇資料來源類型為MySQL。
在建立MySQL資料來源頁面,配置相關參數。在本教程中開發環境和生產環境都按如下樣本值填寫。
以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。
參數
描述
資料來源名稱
輸入資料來源名稱,本教程請填寫
user_behavior_analysis_mysql。資料來源描述
DataWorks案例體驗專用資料來源,在離線同步配置時讀取該資料來源即可訪問平台提供的測試資料,該資料來源只支援Data Integration情境讀取,其他模組不支援使用。
配置模式
選擇串連串模式。
串連地址
主機地址IP:
rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com連接埠號碼:
3306
資料庫名稱
輸入資料庫名,本教程請填寫
workshop。使用者名稱
輸入使用者名稱,本教程請填寫
workshop。密碼
輸入密碼,本教程請填寫
workshop#2017。認證選項
無認證。
在連通配置地區,分別單擊生產環境和開發環境的測試連通性,確保連通狀態為可連通。
重要需確保資源群組已綁定至工作空間,並配置了公網訪問能力,否則後續資料同步時將會報錯。配置步驟請參見準備環境。
如果您無可選的資源群組,可參考連結配置地區的說明提示,單擊前往購買和綁定已購資源群組。
單擊完成建立。
建立HttpFile資料來源(user_behavior_analysis_httpfile)
本教程提供的使用者網站訪問記錄資料存放區在OSS中,您需要建立Httpfile資料來源,以便在後續將OSS中的使用者網站訪問記錄(user_log.txt)同步至StarRocks。
在管理中心頁面,單擊左側導覽列的資料來源。
單擊新增資料來源,在新增資料來源對話方塊中,搜尋選擇資料來源類型為HttpFile。
在建立HttpFile資料來源頁面,配置相關參數。在本教程中開發環境和生產環境都按如下樣本值填寫。
以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。
參數
描述
資料來源名稱
輸入資料來源名稱,本教程請填寫
user_behavior_analysis_httpfile。資料來源描述
DataWorks案例體驗專用資料來源,在離線同步配置時讀取該資料來源即可訪問平台提供的測試資料,該資料來源只支援Data Integration情境讀取,其他模組不支援使用。
URL網域名稱
開發環境和生產環境的URL網域名稱均配置為
https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com。在連通配置地區,分別單擊生產環境和開發環境的測試連通性,確保連通狀態為可連通。
重要需確保資源群組已綁定至工作空間,並配置了公網訪問能力,否則後續資料同步時將會報錯。配置步驟請參見準備環境。
如果您無可選的資源群組,可參考連結配置地區的說明提示,單擊前往購買和綁定已購資源群組。
單擊完成建立。
二、搭建同步鏈路
單擊左上方的
表徵圖,選擇。然後在頁面頂部切換至本教程建立好的工作空間。在左側導覽列單擊
,在專案目錄地區,單擊
,選擇建立工作流程,設定工作流程名稱。本教程設定為user_profile_analysis_starrocks。在工作流程編排頁面,從左側拖拽虛擬節點、StarRocks節點和離線同步節點至畫布中,分別設定節點名稱。
本教程節點名稱樣本及作用如下:
節點類型
節點名稱
節點作用
虛擬節點workshop_start_starrocks用於統籌管理整個使用者Portrait analysis工作流程,可使資料流轉路徑更清晰。該節點為空跑任務,無須編輯代碼。
StarRocks節點ddl_ods_user_info_d_starrocks同步任務前建立,用於接收源端MySQL儲存的使用者基本資料資料的StarRocks表
ods_user_info_d_starrocks。
StarRocks節點ddl_ods_raw_log_d_starrocks同步任務前建立,用於接收源端OSS儲存的使用者網站訪問記錄的StarRocks表
ods_raw_log_d_starrocks。
離線同步節點ods_user_info_d_starrocks用於將儲存於MySQL的使用者基本資料資料同步至StarRocks表
ods_user_info_d_starrocks。
離線同步節點ods_raw_log_d_starrocks用於將儲存於OSS的使用者網站訪問記錄同步至StarRocks表
ods_raw_log_d_starrocks。手動拖拽連線,將
workshop_start_starrocks節點設定為兩個離線同步節點的上遊節點。最終效果如下:工作流程調度配置。
在工作流程編排頁面右側單擊調度配置,配置相關參數。以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。
調度配置參數
說明
調度參數
為整個工作流程設定調度參數,工作流程中的內部節點可直接使用。本教程配置為
bizdate=$[yyyymmdd-1],擷取前一天的日期。調度周期
本教程配置為
日。調度時間
本教程配置調度時間為
00:30,該工作流程會在每日00:30啟動。節點依賴配置
Workflow無上遊依賴,可不配置。為了方便統一管理,您可以單擊使用工作空間根節點,將工作流程掛載到工作空間根節點下。
工作空間根節點命名格式為:
工作空間名_root。
三、配置同步任務
配置初始節點
在工作流程編排頁面,滑鼠移至上方至
workshop_start_starrocks節點上,單擊開啟節點。在
workshop_start_starrocks節點編輯頁面右側單擊調度配置,配置相關參數。以下為本樣本所需配置的關鍵參數,未說明參數保持預設即可。調度配置參數
說明
調度類型
本教程配置為
空跑調度。調度資源群組
本教程配置為準備環境階段建立的Serverless資源群組。
節點依賴配置
由於
workshop_start_starrocks為初始節點,無上遊依賴,此時可以單擊使用工作空間根節點,由工作空間根節點觸發工作流程執行。工作空間根節點命名為:
工作空間名_root。
建立使用者表ddl_ods_user_info_d_starrocks
同步資料至StarRocks前,需建立ddl_ods_user_info_d_starrocks表,以接收從MySQL資料來源中同步的使用者基本資料資料,可通過以下方式在節點內建表,也可以通過資料目錄手動建立以下資料表。
在工作流程編排頁面,滑鼠移至上方至
ddl_ods_user_info_d_starrocks節點上,單擊開啟節點。編輯建表語句。
CREATE TABLE IF NOT EXISTS ods_user_info_d_starrocks ( uid STRING COMMENT '使用者ID', gender STRING COMMENT '性別', age_range STRING COMMENT '年齡段', zodiac STRING COMMENT '星座', dt STRING not null COMMENT '時間' ) DUPLICATE KEY(uid) COMMENT '使用者行為分析案例-使用者基本資料表' PARTITION BY(dt) PROPERTIES("replication_num" = "1");配置調試參數。
在StarRocks節點配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。
配置項
配置說明
計算資源
選擇準備環境階段綁定的StarRocks計算資源。
資源群組
選擇準備環境階段購買的Serverless資源群組。
(可選)配置調度屬性。
本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度。
調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。
調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。
在頂部工具列單擊儲存,儲存當前節點。
建立日誌表ddl_ods_raw_log_d_starrocks
同步資料至StarRocks前,需建立ddl_ods_raw_log_d_starrocks表,以接收從Httpfile資料來源中同步的使用者網站訪問記錄資料,可通過以下方式在節點內建表,也可以通過資料目錄手動建立以下資料表。
在工作流程編排頁面,滑鼠移至上方至
ddl_ods_raw_log_d_starrocks節點上,單擊開啟節點。編輯建表語句。
CREATE TABLE IF NOT EXISTS ods_raw_log_d_starrocks ( col STRING COMMENT '日誌', dt DATE not null COMMENT '時間' ) DUPLICATE KEY(col) COMMENT '使用者行為分析案例-網站訪問日誌未經處理資料表' PARTITION BY(dt) PROPERTIES ("replication_num" = "1");配置調試參數。
在離線同步任務配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。
配置項
配置說明
計算資源
選擇準備環境階段綁定的StarRocks計算資源。
資源群組
選擇準備環境階段購買的Serverless資源群組。
(可選)配置調度屬性。
本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度。
調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。
調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。
在頂部工具列單擊儲存,儲存當前節點。
配置使用者資料同步鏈路(ods_user_info_d_starrocks)
在工作流程編排頁面,滑鼠移至上方至
ods_user_info_d_starrocks節點上,單擊開啟節點。配置同步鏈路網路與資源。
參數
描述
資料來源
資料來源:MySQL
資料來源名稱:
user_behavior_analysis_mysql
我的資源群組
選擇在準備環境階段建立的Serverless資源群組。
資料去向
資料去向:StarRocks
資料來源名稱:
doc_starrocks_storage_compute_tightly_01
配置任務
配置資料來源與去向。
模組
配置項
配置內容
資料來源
表
選擇MySQL表
ods_user_info_d。切分鍵
建議使用主鍵或有索引的列作為切分鍵,僅支援類型為整型的欄位。
此處配置切分鍵為
uid欄位。資料去向
表
選擇StarRocks表
ods_user_info_d_starrocks。匯入前準備語句
本案例按
dt欄位動態分區,為避免節點重跑資料重複寫入,通過以下SQL語句實現每次同步前刪除已有目標資料分割。ALTER TABLE ods_user_info_d_starrocks DROP PARTITION IF EXISTS p${var} FORCE其中${var}為參數,後續在調度設定階段為其賦值調度參數,以實現調度情境下的動態入參,詳情請參見調度設定。StreamLoad請求參數
StreamLoad 的請求參數,需為JSON格式。
{ "row_delimiter": "\\x02", "column_separator": "\\x01" }欄位對應。
通過欄位對應關係確定源端欄位與目標端欄位的寫入關係,並通過變數賦值調度參數的方式,實現動態為StarRocks分區欄位賦值,即每日資料寫入StarRocks對應業務分區。
單擊同名映射,源端MySQL欄位將自動對應目標表同名欄位,即源端欄位資料將預設寫入與源端欄位同名的目標端欄位。
單擊添加一行,輸入
'${var}',並手動設定該欄位與StarRocks的dt欄位進行映射。
通道控制。
本教程髒資料策略配置為不容忍髒資料,其他配置保持預設。更多資訊,請參見通過嚮導模式配置離線同步任務。
配置調試參數。
在離線同步任務配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。
配置項
配置說明
資源群組
選擇準備環境階段購買的Serverless資源群組。
指令碼參數
單擊添加參數,配置為
var=yyyymmdd格式的具體常量(例如var=20250223)。在調試時,Data Studio將會使用此常量替換任務中的定義的變數。(可選)配置調度屬性。
本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度。
調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。
調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。
在頂部工具列單擊儲存,儲存當前節點。
配置日誌資料同步鏈路(ods_raw_log_d_starrocks)
在工作流程編排頁面,滑鼠移至上方至
ods_raw_log_d_starrocks節點上,單擊開啟節點。配置同步鏈路網路與資源。
在配置好資料來源、我的資源群組、資料去向後,單擊下一步,根據頁面提示完成連通性測試。詳細配置如下。
配置項
配置內容
資料來源
資料來源:HttpFile
資料來源名稱:
user_behavior_analysis_HttpFile
我的資源群組
選擇在準備環境階段建立的Serverless資源群組。
資料去向
資料去向:StarRocks
資料來源名稱:
doc_starrocks_storage_compute_tightly_01
單擊下一步,配置同步任務。
配置資料來源與去向。
模組
配置項
配置內容
資料來源
檔案路徑
/user_log.txt檔案類型
text資料行分隔符號
|No完成以上資料來源配置後,單擊確認表資料結構。
資料去向
表
選擇StarRocks表
ods_raw_log_d_starrocks。匯入前準備語句
本案例按
dt欄位動態分區,為避免節點重跑資料重複寫入,通過以下SQL語句實現每次同步前刪除已有目標資料分割。ALTER TABLE ods_user_info_d_starrocks DROP PARTITION IF EXISTS p${var} FORCE其中${var}為參數,後續在調度設定階段為其賦值調度參數,以實現調度情境下的動態入參,詳情請參見調度設定。StreamLoad請求參數
StreamLoad 的請求參數,需為JSON格式。
{ "row_delimiter": "\\x02", "column_separator": "\\x01" }通道控制。
本教程髒資料策略配置為不容忍髒資料,其他配置保持預設。更多資訊,請參見通過嚮導模式配置離線同步任務。
欄位對應。
單擊節點頁面工具列
按鈕,將任務配置方式從嚮導模式轉換為指令碼模式,完成HttpFile資料來源的欄位對應與StarRocks動態分區欄位dt的動態賦值。來源HttpFile端Column配置新增:
{ "type": "STRING", "value": "${var}" }ods_raw_log_d_starrocks節點完整指令碼樣本:{ "type": "job", "version": "2.0", "steps": [ { "stepType": "httpfile", "parameter": { "fileName": "/user_log.txt", "nullFormat": "", "compress": "", "requestMethod": "GET", "connectTimeoutSeconds": 60, "column": [ { "index": 0, "type": "STRING" }, { "type": "STRING", "value": "${var}" } ], "skipHeader": "false", "encoding": "UTF-8", "fieldDelimiter": "|", "fieldDelimiterOrigin": "|", "socketTimeoutSeconds": 3600, "envType": 0, "datasource": "user_behavior_analysis", "bufferByteSizeInKB": 1024, "fileFormat": "text" }, "name": "Reader", "category": "reader" }, { "stepType": "starrocks", "parameter": { "loadProps": { "row_delimiter": "\\x02", "column_separator": "\\x01" }, "envType": 0, "datasource": "Doc_StarRocks_Storage_Compute_Tightly_01", "column": [ "col", "dt" ], "tableComment": "", "table": "ods_raw_log_d_starrocks", "preSql": "ALTER TABLE ods_raw_log_d_starrocks DROP PARTITION IF EXISTS p${var} FORCE ; " }, "name": "Writer", "category": "writer" }, { "copies": 1, "parameter": { "nodes": [], "edges": [], "groups": [], "version": "2.0" }, "name": "Processor", "category": "processor" } ], "setting": { "errorLimit": { "record": "0" }, "locale": "zh", "speed": { "throttle": false, "concurrent": 2 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
配置調試參數。
在離線同步任務配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。
配置項
配置說明
資源群組
選擇準備環境階段購買的Serverless資源群組。
指令碼參數
單擊添加參數,配置為
var=yyyymmdd格式的具體常量(例如var=20250223)。在調試時,Data Studio將會使用此常量替換任務中的定義的變數。(可選)配置調度屬性。
本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度。
調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。
調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。
在頂部工具列單擊儲存,儲存當前節點。
四、運行任務
同步資料。
在工作流程工具列中,單擊運行,設定各節點定義的參數變數在本次運行中的取值(本教程使用
20250223,您可以按需修改),單擊確定後,等待運行完成。查詢結果。
進入SQL查詢頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的,單擊進入資料分析頁面,單擊左側導覽列的SQL查詢進入SQL查詢頁面。
配置SQL查詢檔案。
單擊我的檔案後的
按鈕建立檔案,自訂SQL查詢檔案名稱。單擊已建立的檔案,進入檔案編輯頁面。
在檔案編輯頁面單擊右上方的
按鈕,配置需進行SQL查詢的工作空間等資訊,配置詳情如下:配置項
說明
工作空間
選擇
user_profile_analysis_starrocks工作流程所在的工作空間。資料來源類型
下拉選擇
StarRocks。資料來源名稱
選擇在準備環境時綁定的Starrocks開發環境。
單擊確認按鈕,完成查詢資料來源的配置。
編輯查詢SQL。
在確保該章節內的所有節點運行成功的情況下,編寫以下SQL查詢以檢查StarRocks節點建立的外部表格是否正常產出。
--查詢語句中的分區列需要更新為業務日期。例如,任務啟動並執行日期為20250223,則業務日期為20250222,即任務運行日期的前一天。 SELECT * FROM ods_raw_log_d_starrocks WHERE dt=業務日期; SELECT * FROM ods_user_info_d_starrocks WHERE dt=業務日期;
後續步驟
現在,您已經學習了如何進行資料同步,並已完成資料的同步,您可以繼續下一個教程。在該教程中,您將學習如何對同步的資料進行計算與分析。詳情請參見加工資料。