全部產品
Search
文件中心

DataWorks:同步資料

更新時間:Jun 28, 2025

本教程以MySQL中的使用者基本資料ods_user_info_d表和OSS中的網站訪問日誌資料user_log.txt檔案為例,通過Data Integration離線同步任務分別同步至MaxCompute的ods_user_info_d_odpsods_raw_log_d_odps表。旨在介紹如何通過DataWorksData Integration實現異構資料來源間的資料同步,完成數倉資料同步操作。

前提條件

  • 請確保已閱讀案例介紹,對本教程具有初步認知,案例介紹請參見:實驗介紹

  • 請確保已準備好所需的工作環境。具體操作步驟請參見:準備環境

章節目標

將案例提供的公用資料來源中的資料同步至MaxCompute,完成商務程序設計中的資料同步部分的內容。

源端資料來源類型

源端待同步資料

源端表結構

目標端資料來源類型

接收源端資料的目標表

目標表結構

MySQL

表:ods_user_info_d

使用者基本資料資料

  • uid 使用者名稱

  • gender 性別

  • age_range 年齡分段

  • zodiac 星座

MaxCompute

ods_user_info_d_odps

  • uid 使用者名稱

  • gender 性別

  • age_range 年齡分段

  • zodiac 星座

  • dt 分區欄位

HttpFile

檔案:user_log.txt

使用者網站訪問日誌資料

一行為一條使用者訪問記錄

$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent"$http_referer" "$http_user_agent" [unknown_content];

MaxCompute

ods_raw_log_d_odps

  • col 原始日誌

  • dt 分區欄位

重要
  • 平台已提供本教程所需的測試資料及資料來源,您需將該資料來源添加至您的工作空間,即可在工作空間訪問平台提供的測試資料。

  • 本教程提供資料僅作為阿里雲巨量資料開發治理平台DataWorks資料應用實操使用,所有資料均為人工Mock資料,並且只支援在Data Integration模組讀取資料。

進入資料開發

登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料開發與營運 > 資料開發,在下拉框中選擇對應工作空間後單擊進入資料開發

一、設計商務程序

設計商務程序

  1. 建立商務程序。

    資料開發需基於商務程序使用對應的開發組件進行具體開發操作。在建立節點之前,您需要先建立商務程序。具體操作方法可參見建立商務程序

    該商務程序的命名為:使用者Portrait analysis_MaxCompute

    image

  2. 設計商務程序。

    商務程序建立完成後,將自動延伸該商務程序畫布。請根據工作流程設計,在商務程序畫布中單擊建立節點,通過將節點群組件拖拽至商務程序畫布,並通過拉線設定節點上下遊依賴的方式,設計資料同步階段的商務程序。

    image

  3. 在本教程中,由於虛擬節點和同步節點之間並無血緣關係,因此我們通過商務程序拉線的方式來設定節點的依賴關係。有關更多依賴關係設定方式的詳細資料,詳情請參見調度依賴配置指引。以下為各個節點的類型、命名以及作用的介紹。

    節點分類

    節點類型

    節點命名

    (以最終產出表命名)

    節點作用

    通用

    虛擬節點

    workshop_start_odps

    用於統籌管理整個使用者Portrait analysis商務程序,例如商務程序起調時間。當商務程序較複雜時,可使資料流轉路徑更清晰。該節點為空白跑任務,無須編輯代碼。

    Data Integration

    離線同步

    ods_user_info_d_odps

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

    Data Integration

    離線同步

    ods_raw_log_d_odps

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

配置調度邏輯

本案例通過虛擬節點workshop_start_odps控制整個商務程序每天00:30調度執行,以下為虛擬節點關鍵調度配置,其他節點調度無須變更,實現邏輯詳情請參見:情境:如何配置商務程序定時時間。其他調度配置相關說明,請參見:任務調度屬性配置概述

調度配置

圖片展示

說明

調度時間配置

image

虛擬節點配置調度時間為00:30,該虛擬節點會在每日00:30調起當前商務程序並執行。

調度依賴配置

image

由於虛擬節點workshop_start_odps無上遊依賴,此時可以直接依賴工作空間根節點,由空間根節點觸發workshop_start_odps節點執行。

說明

DataWorks中的所有節點都需要依賴於上遊節點,資料同步階段的所有任務都以虛擬節點workshop_start_odps為依賴。換句話說,通過workshop_start_odps節點來觸發資料同步商務程序的執行。

二、搭建同步鏈路

建立目標MaxCompute表

提前建立用於接收通過Data Integration同步過來的未經處理資料的MaxCompute表。本教程僅快速建立相關表,更多MaxCompute表相關操作,請參見建立並使用MaxCompute表

  1. 建立表入口。

    image.png

  2. 建立ods_raw_log_d表。

    在建立表彈窗中輸入名稱ods_raw_log_d_odps,在表的編輯頁面單擊DDL,輸入下述建表語句後,單擊產生表結構,並確認覆蓋當前操作。

    CREATE TABLE IF NOT EXISTS ods_raw_log_d_odps
    (
     col STRING
    ) 
    PARTITIONED BY
    (
     dt STRING
    )
    LIFECYCLE 7;
  3. 建立ods_user_info_d_odps表。

    在建立表彈窗中輸入名稱ods_user_info_d_odps,在表的編輯頁面單擊DDL,輸入下述建表語句後,單擊產生表結構,並確認覆蓋當前操作。

    CREATE TABLE IF NOT EXISTS ods_user_info_d_odps (
     uid STRING COMMENT '使用者ID',
     gender STRING COMMENT '性別',
     age_range STRING COMMENT '年齡段',
     zodiac STRING COMMENT '星座'
    )
    PARTITIONED BY (
     dt STRING
    )
    LIFECYCLE 7;
  4. 提交並發行資料表。

    表資訊確認無誤後,將ods_user_info_d表和ods_raw_log_d表分別單擊提交到開發環境提交到生產環境此操作將根據您的節點配置在開發環境與生產環境對應計算引擎專案中分別建立目標引擎物理表。

    說明

    表結構定義完成後,您需將其提交至開發環境與生產環境,提交成功後才可在對應環境的引擎專案中查看該表。

    • 提交表至DataWorks的開發環境,即在開發環境所綁定的MaxCompute引擎中建立當前表。

    • 提交表至DataWorks的生產環境,即在生產環境所綁定的MaxCompute引擎中建立當前表。

建立資料來來源資料源

本教程測試資料來源於MySQL資料庫OSSObject Storage Service,需要您在當前空間建立名為user_behavior_analysis_mysql的MySQL資料來源、名為user_behavior_analysis_httpfile的HttpFile資料來源用於訪問平台提供的測試資料,測試使用的資料來源基本資料已提供。

說明
  • 在Data Integration同步任務配置前,您可以在DataWorks的資料來源頁面,配置好您需要同步的源端和目標端資料庫或資料倉儲的相關資訊,以便在同步任務配置過程中,可通過選擇資料來源名稱來控制同步讀取和寫入的資料庫或資料倉儲。

  • 本教程提供資料僅作為阿里雲巨量資料開發治理平台DataWorks資料應用實操使用,所有資料均為人工Mock資料,並且只支援在Data Integration模組讀取資料。

  • 本步驟建立的HttpFile資料來源和MySQL資料來源對應的測試資料位元於公網,請確保您的DataWorks資源群組已根據步驟二配置了公網NAT Gateway,否則測試連通性時將提示如下報錯:

    • HttpFile:ErrorMessage:[Connect to dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com:443 [dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com/106.14.XX.XX] failed: connect timed out]

    • MySQL:ErrorMessage:[Exception:Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.<br><br>ExtraInfo:Resource Group IP:****,detail version info:mysql_all],Root Cause:[connect timed out]

建立MySQL資料來源(user_behavior_analysis_mysql)

在您的工作空間中建立MySQL資料來源,用於後續讀取平台提供的存放於MySQL中的使用者資訊資料,並測試該資料來源與同步資料的資源群組網路是否連通。

  1. 進入資料來源頁面。

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

    2. 進入工作空間管理中心頁面後,單擊左側導覽列的資料來源,進入資料來源頁面。

  2. 建立MySQL資料來源。

    1. 管理中心頁面,單擊進入資料來源 > 資料來源列表頁面後單擊新增資料來源

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

    3. 建立MySQL資料來源對話方塊,配置各項參數。

      image

      參數

      描述

      資料來源名稱

      請輸入user_behavior_analysis_mysql

      資料來源描述

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

      配置模式

      選擇串連串模式

      適用環境

      勾選開發、生產

      說明

      您需要同步建立開發環境生產環境的資料來源,否則任務生產執行會報錯。

      串連地址

      主機地址IP

      rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com

      連接埠號碼

      3306

      資料庫名稱

      workshop

      使用者名稱

      workshop

      密碼

      workshop#2017

      認證選項

      無認證。

      串連配置

      串連配置地區的Serverless資源群組後,單擊連通狀態列的測試連通性,分別測試資源群組與開發、生產環境資料來源的網路是否連通,等待介面提示測試完成,連通狀態為可連通

      重要

      本步驟建立的MySQL資料來源對應的測試資料位元於公網,請確保您的DataWorks資源群組已根據步驟二配置了公網NAT Gateway,否則測試連通性時將提示報錯:ErrorMessage:[Exception:Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.<br><br>ExtraInfo:Resource Group IP:****,detail version info:mysql_all],Root Cause:[connect timed out]

建立HttpFile資料來源(user_behavior_analysis_httpfile)

在您的工作空間中建立HttpFile資料來源,用於後續讀取平台提供的存放於OSS中的使用者網站訪問測試資料,並測試該資料來源與同步資料的資源群組網路是否連通。

  1. 進入資料來源頁面。

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

    2. 進入工作空間管理中心頁面後,單擊左側導覽列的資料來源,進入資料來源頁面。

  2. 建立HttpFile資料來源。

    1. 管理中心頁面,單擊進入資料來源 > 資料來源列表頁面後單擊新增資料來源

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

    3. 建立HttpFile資料來源對話方塊,配置各項參數,主要參數配置描述如下:

      主要參數

      描述

      資料來源名稱

      輸入資料來源名稱,該名稱為資料來源在您工作空間中的標識,本案例中設定資料來源名稱為user_behavior_analysis_httpfile

      資料來源描述

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

      適用環境

      勾選開發環境、生產環境

      說明

      您需要同步建立開發環境生產環境的資料來源,否則任務生產執行會報錯。

      URL網域名稱

      輸入https://dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com

      串連配置

      串連配置地區的Serverless資源群組後,單擊連通狀態列的測試連通性,分別測試資源群組與開發、生產環境資料來源的網路是否連通,等待介面提示測試完成,連通狀態為可連通

      重要

      本步驟建立的HttpFile資料來源對應的測試資料位元於公網,請確保您的DataWorks資源群組已根據步驟二配置了公網NAT Gateway,否則測試連通性時將提示報錯:ErrorMessage:[Connect to dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com:443 [dataworks-workshop-2024.oss-cn-shanghai.aliyuncs.com/106.14.XX.XX] failed: connect timed out]

配置使用者資料同步鏈路

本離線同步節點將使用者基本資料資料從案例提供的MySQL表ods_user_info_d同步至MaxCompute表ods_user_info_d_odps的同步鏈路配置操作。

  1. 雙擊離線同步節點ods_user_info_d_odps,進入節點編輯頁面。

  2. 網路與資源配置。

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

    image

    配置項

    配置內容

    資料來源

    • 資料來源MySQL

    • 資料來源名稱user_behavior_analysis_mysql

    我的資源群組

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

    資料去向

    • 資料去向MaxCompute

    • 資料來源名稱user_behavior_analysis_odps

  3. 任務配置。

    • 配置資料來源於去向。

      模組

      配置項

      配置內容

      圖示

      資料來源

      選擇MySQL表ods_user_info_d

      image

      切分鍵

      建議使用主鍵或有索引的列作為切分鍵,僅支援類型為整型的欄位。

      此處配置切分鍵為uid欄位。

      資料去向

      Tunnel資源群組

      本教程預設為公用傳輸資源,若您擁有獨享tunnel quota,可下拉選擇。

      說明

      MaxCompute的資料轉送資源選擇,具體請參考購買與使用獨享Data Transmission Service資源群組。如果獨享tunnel quota因欠費或到期不可用,任務在運行中將會自動切換為公用傳輸資源

      image

      schema

      本教程選擇default,若您MaxCompute專案下擁有其他schema,可下拉選擇。

      下拉選擇在臨時查詢中建立的ods_user_info_d_odps表。

      分區資訊

      本教程填入${bizdate}參數。

      寫入模式

      • 本教程下拉選擇:寫入前清理已有資料。

      • 寫入模式支援以下兩種寫入模式:

        • insert into:直接向表或靜態分區中插入資料。

        • insert overwrite:先清空表中的原有資料,再向表或靜態分區中插入資料。

      Null 字元串轉為Null寫入

      本教程選擇:

    • 確認欄位對應及通用配置。

      DataWorks通過配置源端與目標端欄位對應關係,實現源端指定欄位資料寫入目標端指定欄位,同時提供並發設定並發讀寫資料、提供限速功能避免同步對資料庫造成影響、提供髒資料影響定義及分布式執行任務等功能。本教程使用預設配置。關於其他配置項說明,詳情請參見通過嚮導模式配置離線同步任務

  4. 配置調度屬性。

    配置頁面單擊右側調度配置,可進入調度配置面板配置調度與節點資訊,詳情可參見節點調度配置。以下為配置的內容:

    配置項

    配置內容

    圖示

    調度參數

    調度參數值保持預設$bizdate即可。

    說明

    bizdate=$bizdate,擷取前一天的日期,格式為yyyymmdd

    image

    時間屬性

    • 調度周期

    • 定時調度時間00:30

    • 重跑屬性:運行成功或失敗後皆可重跑。

    其餘參數保持預設即可。

    說明

    當前節點每日起調時間由商務程序虛擬節點workshop_start的定時調度時間控制,即每日00:30後才會調度。

    image

    資源屬性

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

    image

    調度依賴

    • 確認依賴的上遊節點:確認當前節點依賴的上遊節點是否展示workshop_start節點,拉線設定的上遊依賴將展示在此處,若未顯示workshop_start節點,請確認是否已參照設計商務程序完成業務資料同步階段的商務程序設計。

      本案例中,workshop_start節點定時時間到且執行完成後,將會觸發當前節點執行。

    • 確認本節點輸出:確認是否存在名為MaxCompute生產專案名稱.ods_user_info_d_odps的節點輸出。若不存在該節點輸出,則需手動添加該輸出名的節點輸出。

    說明
    • DataWorks通過節點輸出掛載節點依賴關係,為了方便下遊SQL任務對同步任務產出表加工時,可通過自動解析機制基於表血緣快速為下遊SQL節點添加當前同步任務的依賴,此處需要確認是否存在與同步產出表MaxCompute生產專案名稱.ods_user_info_d_odps同名的節點輸出

    image

配置使用者日誌同步鏈路

本離線同步節點將完成使用者網站訪問資訊資料從平台提供的公用資料來源HttpFile檔案user_log.txt同步到MaxCompute表ods_raw_log_d_odps的同步鏈路配置操作。

  1. 雙擊離線同步節點ods_raw_log_d_odps,進入節點編輯頁面。

  2. 網路與資源配置。

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

    image

    配置項

    配置內容

    資料來源

    • 資料來源HttpFile

    • 資料來源名稱user_behavior_analysis_HttpFile

    我的資源群組

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

    資料去向

    • 資料去向MaxCompute

    • 資料來源名稱user_behavior_analysis_odps

  3. 任務配置。

    • 配置資料來源與去向。

      模組

      配置項

      配置內容

      圖示

      資料來源

      檔案路徑

      本教程填入:/user_log.txt

      image

      文本類型

      下拉選擇text類型。

      資料行分隔符號

      本教程填入:|

      進階配置

      編碼

      下拉選擇UTF-8編碼格式。

      image

      壓縮格式

      下拉選擇None格式

      是否跳過表頭

      下拉選擇No不跳過表頭。

      資料去向

      Tunnel資源群組

      本教程預設為公用傳輸資源,若您擁有獨享tunnel quota,可下拉選擇。

      說明

      MaxCompute的資料轉送資源選擇,具體請參考購買與使用獨享Data Transmission Service資源群組。如果獨享tunnel quota因欠費或到期不可用,任務在運行中將會自動切換為公用傳輸資源

      image

      schema

      本教程選擇default,若您DataWorks專案下擁有其他schema,可下拉選擇。

      下拉選擇在臨時查詢中建立的ods_raw_log_d_odps表。

      分區資訊

      本教程填入${bizdate}參數。

      寫入模式

      • 本教程下拉選擇:寫入前清理已有資料。

      • 寫入模式支援以下兩種寫入模式:

        • insert into:直接向表或靜態分區中插入資料。

        • insert overwrite:先清空表中的原有資料,再向表或靜態分區中插入資料。

      Null 字元串轉為Null寫入

      本教程選擇:

      配置資料來源完成後,需單擊確認表資料結構,確認是否能正常讀取到記錄檔。

    • 確認欄位對應及通用配置。

      DataWorks通過配置源端與目標端欄位對應關係,實現源端指定欄位資料寫入目標端指定欄位,同時提供並發設定並發讀寫資料、提供限速功能避免同步對資料庫造成影響、提供髒資料影響定義及分布式執行任務等功能。本教程使用預設配置。關於其他配置項說明,詳情請參見通過嚮導模式配置離線同步任務

  4. 配置調度屬性

    配置頁面單擊右側調度配置,可進入調度配置面板配置調度與節點資訊,詳情可參見節點調度配置。以下為配置的內容:

    配置項

    配置內容

    圖示

    調度參數

    調度參數值保持預設$bizdate即可。

    說明

    bizdate=$bizdate,擷取前一天的日期,格式為yyyymmdd

    image

    時間屬性

    • 調度周期

    • 定時調度時間00:30

    • 重跑屬性:運行成功或失敗後皆可重跑。

    其餘參數保持預設即可。

    說明

    當前節點每日起調時間由商務程序虛擬節點workshop_start的定時調度時間控制,即每日00:30後才會調度。

    image

    資源屬性

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

    image

    調度依賴

    • 確認依賴的上遊節點:確認當前節點依賴的上遊節點是否展示workshop_start節點,拉線設定的上遊依賴將展示在此處,若未顯示workshop_start節點,請確認是否已參照設計商務程序完成業務資料同步階段的商務程序設計。

      本案例中,workshop_start節點定時時間到且執行完成後,將會觸發當前節點執行。

    • 確認本節點輸出:確認是否存在名為MaxCompute生產專案名稱.ods_raw_log_d_odps的節點輸出。若不存在該節點輸出,則需手動添加該輸出名的節點輸出。

    說明

    DataWorks通過節點輸出掛載節點依賴關係,為了方便下遊SQL任務對同步任務產出表加工時,可通過自動解析機制基於表血緣快速為下遊SQL節點添加當前同步任務的依賴,此處需要確認是否存在與同步產出表MaxCompute生產專案名稱.ods_raw_log_d_odps同名的節點輸出

    image

三、運行並查看結果

運行商務程序

  1. 資料開發頁面,雙擊商務程序下的使用者Portrait analysis_MaxCompute,開啟Workflow商務程序面板後,單擊工具列中的image.png表徵圖,按照上下遊依賴關係運行商務程序。

  2. 確認執行情況:

    • 查看任務運行狀態:節點處於image.png狀態,即代表同步執行過程無問題。

    • 查看任務執行日誌:按右鍵ods_user_info_d_odpsods_raw_log_d_odps節點,選擇查看日誌。當日誌中出現如下字樣,表示同步節點運行成功,並成功同步資料。

      image

查看同步結果

預期運行商務程序後,MySQL中的使用者基本資料ods_user_info_d表資料將全量同步至workshop2024_01_dev.ods_user_info_d_odps昨天的分區中,OSS中的使用者網站訪問日誌user_log.txt將全量同步至workshop2024_01_dev.ods_raw_log_d_odps昨天的分區中。由於查詢SQL不需要發布至生產環境執行,此時我們可以選擇建立臨時查詢檔案進行確認。

  1. 建立臨時查詢檔案。

    資料開發頁面的左側導覽列,單擊image.png,進入臨時查詢面板。按右鍵臨時查詢,選擇建立節點 > ODPS SQL

  2. 查詢同步結果表。

    執行如下SQL語句,確認同步資料寫入結果。查看匯入ods_raw_log_d_odpsods_user_info_d_odps的記錄數。

    //此處您需要變更分區過濾條件為您當前操作的實際業務日期。例如,任務啟動並執行日期為20230621,則業務日期為20230620,即任務運行日期的前一天。
    select count(*) from ods_user_info_d_odps  where dt='業務時間'; 
    select count(*) from ods_raw_log_d_odps where dt='業務日期';

    image

    說明

    本教程由於在DataStudio(開發環境)執行,所以該資料將預設寫入開發環境對應的引擎專案workshop2024_01_dev的指定表中。

後續步驟

現在,您已經完成了同步資料,您可以繼續下一個教程。在下一個教程中,您將學習將使用者基本資料資料、使用者網站訪問日誌資料在MaxCompute中進行加工處理。詳情請參見:加工資料