全部產品
Search
文件中心

DataWorks:DataStudio側即時同步任務配置

更新時間:Dec 18, 2024

完成資料來源、網路、資源的準備配置後,您可建立即時同步任務,將多種輸入及輸出資料來源搭配組成同步鏈路,進行單表或整庫資料的即時增量同步處理。本文為您介紹如何建立單表或整庫增量資料即時同步任務,並在建立完成後查看任務運行情況。

前提條件

  1. 已完成資料來源配置。您需要在Data Integration同步任務配置前,配置好您需要同步的源端和目標端資料庫,以便在同步任務配置過程中,可通過選擇資料來源名稱來控制同步任務的讀取和寫入資料庫。即時同步支援的資料來源及其配置詳情請參見即時同步支援的資料來源

    說明

    資料來源相關能力介紹詳情請參見:資料來源概述

  2. 已購買合適規格的獨享Data Integration資源群組。詳情請參見:新增和使用獨享Data Integration資源群組

  3. 獨享Data Integration資源群組與資料來源網路已打通。詳情請參見:網路連通方案

注意事項

DataWorks即時同步通常在以下情況下需要手動設定位點:

  • 同步任務中斷後恢複:如果同步任務中斷,重啟任務時需要手動設定位點為中斷的時間點,以確保從斷點繼續同步。

  • 資料丟失或異常:如果在同步過程中探索資料丟失或異常,需要手動重設位點到資料寫入之前的某個時間點,以確保資料完整。

  • 調整任務配置:在調整任務配置後,例如修改目標表或欄位對應,需要手動設定位點以確保資料同步的準確性。

如果您在執行同步任務時提示位點錯誤或不存在,請按如下方式解決:

  • 重設位點:在啟動即時同步任務時,重設位點並選擇源庫可用的最早位點。

  • 調整Binlog保留時間:如果資料庫位點到期,可以考慮在MySQL資料庫中調整Binlog的保留時間,例如設定為7天。

  • 資料同步:如果資料已經丟失,可以考慮重新全量同步,或者配置一個離線同步任務來手動同步丟失的資料。

進入資料開發

即時同步任務配置入口在資料開發模組,您需要前往資料開發進行建立。

  1. 進入資料開發頁面。

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

操作流程

  1. 步驟一:建立即時同步任務

  2. 步驟二:配置資源群組

  3. 步驟三:配置整庫即時同步任務

  4. 步驟四:提交並發布即時同步任務

步驟一:建立即時同步任務

  1. 建立商務程序。詳情請參見:建立商務程序

  2. 建立即時同步任務。

    1. 你可以通過以下兩種方式建立即時同步任務。

      • 方式一:展開商務程序,按右鍵Data Integration > 建立節點 > 即時同步

      • 方式二:雙擊商務程序名稱,將Data Integration目錄下的即時同步節點直接拖拽至右側商務程序編輯面板。

      即時同步

    2. 建立節點對話方塊中,配置各項參數。

      參數

      描述

      節點類型

      預設為即時同步

      同步方式

      • 即時同步單表增量資料時,同步方式選擇單表(Topic)到單表(Topic)ETL,用於即時同步單個或多個表資料至目標單表。

        說明

        單表即時同步僅支援同步資料至目標單表,如果您需要同步資料至多個表,您可以採用以下方案:

        • 如果您需要對同步過程中的資料進行過濾、字串替換或資料脫敏,您可以建立多個單表資料即時同步任務。

        • 如果您需要同步多個表至多個表,除了可以建立多個單表即時同步任務,部分資料來源還可以選擇配置整庫即時同步任務。

        • 如果您需要先同步全量資料再將增量資料即時同步至目標端,您可選擇同步解決方案。詳情請參見:Data Integration側同步任務配置

      • 即時同步整庫增量資料時,同步方式選擇資料庫變更資料同步(例如,資料庫變更資料同步到MaxCompute)。

      路徑

      存放即時同步任務的目錄。

      名稱

      節點名稱必須是大小寫字母、中文、數字、底線(_)以及英文句號(.),且不能超過128個字元。

步驟二:配置資源群組

即時同步任務僅支援使用獨享Data Integration資源群組,您可以在即時同步任務編輯頁面的右側導覽列,單擊基本配置。在資源群組下拉框選擇已經與資料庫網路連通的獨享Data Integration資源群組。

說明

建議即時同步任務與離線同步任務運行在不同的資源群組上,避免混跑帶來資源互相搶佔、運行態互相影響等問題,例如,CPU、記憶體、網路等互相影響,導致離線同步任務突然變慢、即時同步任務延遲、以及在資源不足的極端情況下可能會出現任務被OOM Killer殺掉等問題。

步驟三:配置即時同步任務

配置單表即時同步任務

  1. 配置輸入資料來源。

    1. 在即時同步任務編輯頁面左側的輸入地區,拖拽目標輸入資料來源組件至右側面板。

    2. 單擊輸入組件,在右側的節點配置對話方塊配置相關資訊。

      目前,同步單表資料支援的輸入資料來源類型及其配置如下:

  2. 可選:配置資料轉換方式。

    在即時同步資料的過程中,如果您希望將輸入的資料轉換為需要使用的格式進行輸出,則可以配置資料轉換方式。

    1. 在即時同步任務編輯頁面左側的轉換地區,拖拽需要使用的資料轉換方式組件至右側面板。

      目前,同步單表資料支援的轉換方式如下:

      • 資料過濾:您可以對資料進行規則過濾,例如過濾欄位的大小等,符合規則的資料才會被保留。

      • 字串替換:您可以對字串類型的欄位進行替換。

      • 資料脫敏:您以對即時同步的單表資料進行脫敏,然後儲存到指定的資料庫位置。

    2. 單擊轉換組件,在右側的節點配置對話方塊配置相關資訊。

  3. 配置輸出資料來源。

    1. 在即時同步任務編輯頁面左側的輸出地區,拖拽目標輸出資料來源組件至右側面板。

    2. 單擊輸出組件,在右側的節點配置對話方塊配置相關資訊。

      目前,同步單表資料支援的輸出資料來源類型及其配置如下:

  4. 配置輸入、輸出組件的上下遊關係。

    添加完輸入、輸出組件後,您可以根據業務需求,通過連線完成相應的組件關係串連,資料會根據連線從上遊組件同步至下遊組件。

配置整庫即時同步任務

  1. 設定同步來源和規則。

    1. 資料來源地區,選擇要同步的資料來源類型資料來源名稱等資訊。

    2. 選擇要同步的表。

      選擇同步的源表地區,為您展示所選資料來源下所有的表,您可以在源端庫表地區選中需要同步的整庫全表或部分表,並單擊表徵圖表徵圖,將其移動至已選庫表

      重要

      如果選中的表沒有主鍵,將無法進行即時同步。

    3. 設定表名的映射規則。

      在此步驟中,您可以選擇源端資料來源中需要同步的庫和表,同步解決方案預設將源端資料庫、資料表寫入目標端同名schema或同名表中,如果目標端不存在該schema或表,將會自動建立。同時,您可以通過設定表(庫)名的映射規則定義最終寫入目標端的schema或表名稱。實現將多張表資料寫入到同一個表中,或統一將源端某固定首碼的庫名或表名在寫入目標庫或表時更新為其他首碼。

      • 源表名和目標表名轉換規則:源端表名支援通過Regex轉換為目標端最終寫入的表名。

        • 樣本1:將源端doc_首碼的表資料,寫入首碼為pre_的目標表中。改名

        • 樣本2:將多張表資料寫入到一張目標表。

          將源端名稱為 "table_01","table_02","table_03" 的表同步至一張名為 "my_table" 的表中。配置正則表名轉換規則為::table.*,目標:my_table。樣本

      • 目標表名規則:支援您使用內建的變數組合產生目標表名,同時,對轉換後的目標表名支援添加首碼和尾碼。可使用的內建變數有:

        • ${db_table_name_src_transed}:“源表名和目標表名轉換規則”中的轉換完成之後的表名。

        • ${db_name_src_transed}:“源庫名和目標Schema名轉換規則”中的轉換完成之後的目標Schema名。

        • ${ds_name_src}:來源資料源名。

        樣本:對上一步源表名和目標表名轉換規則轉換後的表名做進一步字串拼接處理,使用${db_table_name_src_transed}代表上一步的處理結果“my_table”,再為該內建變數增加首碼和尾碼,例如,pre_${db_table_name_src_transed}_post,最終就映射到了名為“pre_my_table_post”的目標表。

      • 源庫名和目標Schema名轉換規則:源端schema名支援通過Regex轉換為目標端最終寫入的schema名。

        樣本:將源端doc_首碼的庫名替換為pre_首碼。schema

  2. 選擇目標資料來源並配置目標表或topic。

    1. 設定目標表或Topic頁面,配置目標資料來源基本資料。例如,寫入模式、分區設定等。具體配置以各資料來源即時同步介面為準。

    2. 單擊重新整理源表和目標表映射,建立需要同步的源表和目標表的映射關係。

      支援您自訂目標schema、自訂目標表名、通過編輯附加欄位為目標表添加常量,變數等操作。具體配置以各資料來源即時同步介面為準。

      說明

      如果同步的表數量較多,會導致執行進度較慢,請耐心等待。

  3. 可選:設定表粒度同步規則。

    部分同步方案支援自訂表格級DML處理策略,即當源表發生插入、更新、刪除時,您可以在此處定義對應的處理策略。

    說明

    不同資料來源支援的DML操作可能存在差異,具體同步方案是否支援DML處理策略,請以產品介面為準。資料來源當前的DML支援情況請參見支援的DML及DDL操作

  4. 設定DDL訊息處理規則。

    來來源資料源會包含許多DDL操作,進行即時同步時,您可以根據業務需求,對不同的DDL訊息設定同步至目標端的處理策略。不同資料來源支援的DDL操作可能存在差異,詳情請參見:支援的DML及DDL操作。您可以在Data Integration > 配置選項 > 即時同步DDL訊息處理策略頁面,針對每個寫入的目標資料庫類型,設定DDL處理策略。不同DDL訊息處理策略如下表所示。

    DDL訊息類型

    處理策略

    建立表

    DataWorks收到對應類型的DDL訊息時,處理策略如下:

    • 正常處理:將相應訊息繼續下發給目標資料來源,由目標資料來源來處理。因為不同目標資料來源對DDL訊息處理策略可能會不同,因此DataWorks只執行轉寄操作。

    • 忽略:直接丟棄該訊息,不再向目標資料來源發送。

    • 警示:直接丟棄該訊息,同時會在即時同步處理記錄中記錄警示資訊,指明該訊息因執行出錯被丟棄。

    • 出錯:即時同步任務直接顯示出錯狀態並終止運行。

    刪除表

    新增列

    刪除列

    重新命名表

    重新命名列

    修改列類型

    清空表

  5. 運行資源設定。

    • 提供任務並發數控制功能來限制Data Integration讀取和寫入資料庫的最大並發數。

    • 支援您控制同步任務是否容忍髒資料的產生。

      • 當不允許髒資料產生時,則同步任務執行過程中如果產生髒資料,任務將失敗退出。

      • 當允許髒資料時:同步任務將忽略髒資料(即不會寫入目標端),並正常執行。

  6. 單擊完成配置

步驟四:提交並發布即時同步任務

  1. 單擊工具列中的儲存表徵圖,儲存節點。

  2. 單擊工具列中的提交表徵圖,提交節點任務。

  3. 提交新版本對話方塊中,輸入變更描述

  4. 單擊確定

    如果您使用的是標準模式的工作空間,任務提交成功後,需要將任務發布至生產環境進行發布。請單擊頂部功能表列左側的任務發布。具體操作請參見發布任務

後續步驟

任務配置完成後,您可以在營運中心 > 即時任務營運 > 即時同步任務面板啟動並管理該任務,詳情請參見:即時同步任務營運

附錄:任務遷移

在DataStudio頁面已配置好的單表即時整合任務可以通過遷移至主站將該任務遷移至Data Integration頁面。

說明

目前僅支援的即時整合任務:

  • Kafka至MaxCompute單表即時整合任務。

  • Kafka至Hologres單表即時整合任務。

  1. 雙擊需要遷移的單表即時整合任務,進入任務編輯頁面,單擊遷移至主站即可對任務進行遷移。

    image

  2. 單擊左上方image選擇進入全部產品 > Data Integration,查看同步任務頁面,可在工作清單內查看遷移成功的單表即時整合任務。image

說明
  • 遷移至主站在Data Integration主站即可直接營運,無需跳轉營運中心,在營運中心中,此任務將不可見。遷移不影響已經儲存的任務配置,和正在運行中的任務。

  • 遷移後,原任務將會移至資料開發資源回收筒,此後的編輯和營運動作都將只能在Data Integration主站工作清單頁面進行操作。