全部產品
Search
文件中心

DataWorks:同步資料

更新時間:Jun 28, 2025

本教程以MySQL中的使用者基本資料ods_user_info_d表和OSS中的網站訪問日誌資料user_log.txt檔案為例,通過Data Integration離線同步任務分別同步至StarRocks的ods_user_info_d_starrocksods_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

  1. 進入資料來源頁面。

    1. 登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的更多 > 管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心

    2. 單擊左側導覽列的資料來源,進入資料來源頁面。

  2. 單擊新增資料來源,搜尋選擇資料來源類型為MySQL

  3. 建立MySQL資料來源頁面,配置相關參數。在本教程中開發環境和生產環境都按如下樣本值填寫。

    以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。

    參數

    描述

    資料來源名稱

    輸入資料來源名稱,本教程請填寫user_behavior_analysis_mysql

    資料來源描述

    DataWorks案例體驗專用資料來源,在離線同步配置時讀取該資料來源即可訪問平台提供的測試資料,該資料來源只支援Data Integration情境讀取,其他模組不支援使用。

    配置模式

    選擇串連串模式

    串連地址

    • 主機地址IP:rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com

    • 連接埠號碼:3306

    資料庫名稱

    輸入資料庫名,本教程請填寫workshop

    使用者名稱

    輸入使用者名稱,本教程請填寫workshop

    密碼

    輸入密碼,本教程請填寫workshop#2017

    認證選項

    無認證。

  4. 連通配置地區,分別單擊生產環境和開發環境的測試連通性,確保連通狀態為可連通

    重要
    • 需確保資源群組已綁定至工作空間,並配置了公網訪問能力,否則後續資料同步時將會報錯。配置步驟請參見準備環境

    • 如果您無可選的資源群組,可參考連結配置地區的說明提示,單擊前往購買綁定已購資源群組

  5. 單擊完成建立

建立HttpFile資料來源(user_behavior_analysis_httpfile

本教程提供的使用者網站訪問記錄資料存放區在OSS中,您需要建立Httpfile資料來源,以便在後續將OSS中的使用者網站訪問記錄(user_log.txt)同步至StarRocks。

  1. 管理中心頁面,單擊左側導覽列的資料來源

  2. 單擊新增資料來源,在新增資料來源對話方塊中,搜尋選擇資料來源類型為HttpFile

  3. 建立HttpFile資料來源頁面,配置相關參數。在本教程中開發環境和生產環境都按如下樣本值填寫。

    以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。

    參數

    描述

    資料來源名稱

    輸入資料來源名稱,本教程請填寫user_behavior_analysis_httpfile

    資料來源描述

    DataWorks案例體驗專用資料來源,在離線同步配置時讀取該資料來源即可訪問平台提供的測試資料,該資料來源只支援Data Integration情境讀取,其他模組不支援使用。

    URL網域名稱

    開發環境和生產環境的URL網域名稱均配置為https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com

  4. 連通配置地區,分別單擊生產環境和開發環境的測試連通性,確保連通狀態為可連通

    重要
    • 需確保資源群組已綁定至工作空間,並配置了公網訪問能力,否則後續資料同步時將會報錯。配置步驟請參見準備環境

    • 如果您無可選的資源群組,可參考連結配置地區的說明提示,單擊前往購買綁定已購資源群組

  5. 單擊完成建立

二、搭建同步鏈路

  1. 單擊左上方的表徵圖表徵圖,選擇全部產品 > 資料開發與營運 > DataStudio(資料開發)。然後在頁面頂部切換至本教程建立好的工作空間。

  2. 在左側導覽列單擊image,在專案目錄地區,單擊image,選擇建立工作流程,設定工作流程名稱。本教程設定為user_profile_analysis_starrocks

  3. 在工作流程編排頁面,從左側拖拽虛擬節點、StarRocks節點和離線同步節點至畫布中,分別設定節點名稱。

    本教程節點名稱樣本及作用如下:

    節點類型

    節點名稱

    節點作用

    image虛擬節點

    workshop_start_starrocks

    用於統籌管理整個使用者Portrait analysis工作流程,可使資料流轉路徑更清晰。該節點為空跑任務,無須編輯代碼。

    imageStarRocks節點

    ddl_ods_user_info_d_starrocks

    同步任務前建立,用於接收源端MySQL儲存的使用者基本資料資料的StarRocks表ods_user_info_d_starrocks

    imageStarRocks節點

    ddl_ods_raw_log_d_starrocks

    同步任務前建立,用於接收源端OSS儲存的使用者網站訪問記錄的StarRocks表ods_raw_log_d_starrocks

    image離線同步節點

    ods_user_info_d_starrocks

    用於將儲存於MySQL的使用者基本資料資料同步至StarRocks表ods_user_info_d_starrocks

    image離線同步節點

    ods_raw_log_d_starrocks

    用於將儲存於OSS的使用者網站訪問記錄同步至StarRocks表ods_raw_log_d_starrocks

  4. 手動拖拽連線,將workshop_start_starrocks節點設定為兩個離線同步節點的上遊節點。最終效果如下:

  5. 工作流程調度配置。

    在工作流程編排頁面右側單擊調度配置,配置相關參數。以下為本教程所需配置的關鍵參數,未說明參數保持預設即可。

    調度配置參數

    說明

    調度參數

    為整個工作流程設定調度參數,工作流程中的內部節點可直接使用。本教程配置為bizdate=$[yyyymmdd-1],擷取前一天的日期。

    調度周期

    本教程配置為

    調度時間

    本教程配置調度時間00:30,該工作流程會在每日00:30啟動。

    節點依賴配置

    Workflow無上遊依賴,可不配置。為了方便統一管理,您可以單擊使用工作空間根節點,將工作流程掛載到工作空間根節點下。

    工作空間根節點命名格式為:工作空間名_root

三、配置同步任務

配置初始節點

  1. 在工作流程編排頁面,滑鼠移至上方至workshop_start_starrocks節點上,單擊開啟節點

  2. workshop_start_starrocks節點編輯頁面右側單擊調度配置,配置相關參數。以下為本樣本所需配置的關鍵參數,未說明參數保持預設即可。

    調度配置參數

    說明

    調度類型

    本教程配置為空跑調度

    調度資源群組

    本教程配置為準備環境階段建立的Serverless資源群組。

    節點依賴配置

    由於workshop_start_starrocks為初始節點,無上遊依賴,此時可以單擊使用工作空間根節點,由工作空間根節點觸發工作流程執行。

    工作空間根節點命名為:工作空間名_root

建立使用者表ddl_ods_user_info_d_starrocks

同步資料至StarRocks前,需建立ddl_ods_user_info_d_starrocks表,以接收從MySQL資料來源中同步的使用者基本資料資料,可通過以下方式在節點內建表,也可以通過資料目錄手動建立以下資料表。

  1. 在工作流程編排頁面,滑鼠移至上方至ddl_ods_user_info_d_starrocks節點上,單擊開啟節點

  2. 編輯建表語句。

    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");
  3. 配置調試參數。

    在StarRocks節點配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。

    配置項

    配置說明

    計算資源

    選擇準備環境階段綁定的StarRocks計算資源。

    資源群組

    選擇準備環境階段購買的Serverless資源群組。

  4. (可選)配置調度屬性。

    本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度

    • 調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。

    • 調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。

  5. 在頂部工具列單擊儲存,儲存當前節點。

建立日誌表ddl_ods_raw_log_d_starrocks

同步資料至StarRocks前,需建立ddl_ods_raw_log_d_starrocks表,以接收從Httpfile資料來源中同步的使用者網站訪問記錄資料,可通過以下方式在節點內建表,也可以通過資料目錄手動建立以下資料表。

  1. 在工作流程編排頁面,滑鼠移至上方至ddl_ods_raw_log_d_starrocks節點上,單擊開啟節點

  2. 編輯建表語句。

    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");
  3. 配置調試參數。

    在離線同步任務配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。

    配置項

    配置說明

    計算資源

    選擇準備環境階段綁定的StarRocks計算資源。

    資源群組

    選擇準備環境階段購買的Serverless資源群組。

  4. (可選)配置調度屬性。

    本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度

    • 調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。

    • 調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。

  5. 在頂部工具列單擊儲存,儲存當前節點。

配置使用者資料同步鏈路(ods_user_info_d_starrocks

  1. 在工作流程編排頁面,滑鼠移至上方至ods_user_info_d_starrocks節點上,單擊開啟節點

  2. 配置同步鏈路網路與資源。

    參數

    描述

    資料來源

    • 資料來源:MySQL

    • 資料來源名稱user_behavior_analysis_mysql

    我的資源群組

    選擇在準備環境階段建立的Serverless資源群組。

    資料去向

    • 資料去向:StarRocks

    • 資料來源名稱doc_starrocks_storage_compute_tightly_01

  3. 配置任務

    • 配置資料來源與去向

      模組

      配置項

      配置內容

      資料來源

      選擇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對應業務分區。

      1. 單擊同名映射,源端MySQL欄位將自動對應目標表同名欄位,即源端欄位資料將預設寫入與源端欄位同名的目標端欄位。

      2. 單擊添加一行,輸入'${var}'並手動設定該欄位與StarRocks的dt欄位進行映射。

    • 通道控制

      本教程髒資料策略配置為不容忍髒資料,其他配置保持預設。更多資訊,請參見通過嚮導模式配置離線同步任務

  4. 配置調試參數。

    在離線同步任務配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。

    配置項

    配置說明

    資源群組

    選擇準備環境階段購買的Serverless資源群組。

    指令碼參數

    單擊添加參數,配置為var=yyyymmdd格式的具體常量(例如var=20250223)。在調試時,Data Studio將會使用此常量替換任務中的定義的變數。

  5. (可選)配置調度屬性。

    本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度

    • 調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。

    • 調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。

  6. 在頂部工具列單擊儲存,儲存當前節點。

配置日誌資料同步鏈路(ods_raw_log_d_starrocks

  1. 在工作流程編排頁面,滑鼠移至上方至ods_raw_log_d_starrocks節點上,單擊開啟節點

  2. 配置同步鏈路網路與資源。

    在配置好資料來源我的資源群組資料去向後,單擊下一步,根據頁面提示完成連通性測試。詳細配置如下。

    配置項

    配置內容

    資料來源

    • 資料來源:HttpFile

    • 資料來源名稱user_behavior_analysis_HttpFile

    我的資源群組

    選擇在準備環境階段建立的Serverless資源群組。

    資料去向

    • 資料去向:StarRocks

    • 資料來源名稱doc_starrocks_storage_compute_tightly_01

  3. 單擊下一步,配置同步任務。

    • 配置資料來源與去向

      模組

      配置項

      配置內容

      資料來源

      檔案路徑

      /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"
      }
    • 通道控制

      本教程髒資料策略配置為不容忍髒資料,其他配置保持預設。更多資訊,請參見通過嚮導模式配置離線同步任務

    • 欄位對應

      單擊節點頁面工具列image按鈕,將任務配置方式從嚮導模式轉換為指令碼模式,完成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"
                    }
                ]
            }
        }
  4. 配置調試參數。

    在離線同步任務配置頁面右側單擊調試配置,配置以下參數,用於在步驟四調試運行中使用調試配置的相關參數測試回合。

    配置項

    配置說明

    資源群組

    選擇準備環境階段購買的Serverless資源群組。

    指令碼參數

    單擊添加參數,配置為var=yyyymmdd格式的具體常量(例如var=20250223)。在調試時,Data Studio將會使用此常量替換任務中的定義的變數。

  5. (可選)配置調度屬性。

    本教程調度配置相關參數保持預設即可,您可以在節點編輯頁面右側單擊調度配置。調度配置中參數的詳細說明,詳情可參見節點調度

    • 調度參數:本教程已在工作流程調度參數中統一配置,工作流程內部節點無需配置,在任務或代碼中可直接使用。

    • 調度策略:您可以在延時執行時間參數中指定子節點在工作流程執行後,延遲多久再執行,本教程不設定。

  6. 在頂部工具列單擊儲存,儲存當前節點。

四、運行任務

  1. 同步資料。

    在工作流程工具列中,單擊運行,設定各節點定義的參數變數在本次運行中的取值(本教程使用20250223,您可以按需修改),單擊確定後,等待運行完成。

  2. 查詢結果。

    1. 進入SQL查詢頁面。

      登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料分析與服務 > 資料分析,單擊進入資料分析頁面,單擊左側導覽列的SQL查詢進入SQL查詢頁面。

    2. 配置SQL查詢檔案。

      1. 單擊我的檔案後的image按鈕建立檔案,自訂SQL查詢檔案名稱。

      2. 單擊已建立的檔案,進入檔案編輯頁面。

      3. 在檔案編輯頁面單擊右上方的image按鈕,配置需進行SQL查詢的工作空間等資訊,配置詳情如下:

        配置項

        說明

        工作空間

        選擇user_profile_analysis_starrocks工作流程所在的工作空間。

        資料來源類型

        下拉選擇StarRocks

        資料來源名稱

        選擇在準備環境時綁定的Starrocks開發環境。

      4. 單擊確認按鈕,完成查詢資料來源的配置。

    3. 編輯查詢SQL。

      在確保該章節內的所有節點運行成功的情況下,編寫以下SQL查詢以檢查StarRocks節點建立的外部表格是否正常產出。

      --查詢語句中的分區列需要更新為業務日期。例如,任務啟動並執行日期為20250223,則業務日期為20250222,即任務運行日期的前一天。
      SELECT * FROM ods_raw_log_d_starrocks WHERE dt=業務日期; 
      SELECT * FROM ods_user_info_d_starrocks WHERE dt=業務日期; 

後續步驟

現在,您已經學習了如何進行資料同步,並已完成資料的同步,您可以繼續下一個教程。在該教程中,您將學習如何對同步的資料進行計算與分析。詳情請參見加工資料