本文為您介紹如何通過DataWorks數據集成將MySQL整庫實時同步至MaxCompute Delta Table中。
前提條件
已完成MaxCompute和MySQL數據源配置。您需要將數據庫添加至DataWorks上,以便在同步任務配置時,可通過選擇數據源名稱來控制同步讀取和寫入的數據庫。詳情請參見MySQL數據源、創建MaxCompute數據源。
說明數據源相關能力介紹詳情請參見:數據源概述。
已購買合適規格的Serverless資源組。
已完成Serverless資源組與數據源的網絡連通。詳情請參見:網絡連通方案。
已完成數據源環境準備。
背景信息
數據集成MySQL整庫實時同步至MaxCompute任務支持將源端MySQL庫的全量數據同步到MaxCompute Delta Table(支持分區表或非分區表),然后將增量變更數據實時同步,并具備分鐘級的近實時同步數據可見性。目前同步至Delta Table的增量數據最快五分鐘可見。
MaxCompute Delta Table的詳情介紹請參見:Delta Table概述。
注意事項
該功能暫不支持開啟了租戶級Schema語法的MaxCompute數據源。
操作流程
操作步驟
步驟一:選擇同步任務類型
進入數據集成頁面。
登錄DataWorks控制臺,切換至目標地域后,單擊左側導航欄的數據集成,在下拉框中選擇對應工作空間后單擊進入數據集成。
在左側導航欄單擊同步任務,然后在創建同步任務區域,配置來源為MySQL,去向為MaxCompute,點擊開始創建。進入新建同步任務頁面。
任務名稱:自定義同步任務名稱。
同步類型:選擇整庫實時。
步驟二:配置網絡連通
在網絡與資源配置區域,數據來源選擇已添加的MySQL數據源,數據去向選擇已添加的MaxCompute數據源,選擇同步資源組后,單擊測試所有連通性,測試資源組與數據源的連通性。
單擊下一步。
步驟三:選擇要同步的表
此步驟中,您可以在源端庫表區域選擇源端數據源下需要同步的表,并單擊圖標,將其移動至已選庫表。同時,支持通過正則表達式過濾庫與表。
步驟四:目標表映射
在上一步驟選擇完需要同步的表后,將自動在此界面展示當前待同步的表,但目標表的相關屬性默認為待映射狀態,需要您定義并確認源表與目標表映射關系,即數據的讀取與寫入關系,然后單擊刷新映射后才可進入下一步操作。您可以直接刷新映射,或自定義目標表規則后,再刷新映射。
您可以選中待同步表后,單擊批量刷新映射,未配置映射規則時,默認表名規則為
${源端庫名}_${表名}
,若目標端不存在同名表時,將自動新建。自定義目標表名規則,在目標表名映射自定義列,單擊編輯按鈕。
可以使用內置變量和手動輸入的字符串拼接成為最終目標表名。其中,支持您編輯內置變量,例如,新建一個表名規則,將源表名增加后綴作為目標表名。
同步至MaxCompute Delta Table需要指定目標表的主鍵,默認會使用和源端表一致的主鍵,如果源表無主鍵,也可以自定義主鍵列。不指定主鍵表時同步任務將無法保存成功。
默認自動創建的Delta Table的Bucket數量是16,可以在目標表映射的表Bucket數量中指定。
表Bucket數量,已有表不支持修改。表bucket數量決定了表數據存儲劃分為多少個Bucket,包括查詢,寫入,數據合并等操作都可以按照Bucket粒度并發執行,但Bucket數量太多會導致小文件增加,因此要按需設置,詳情可參考表操作和數據存儲分桶。
默認自動創建的Delta Table的歷史數據可查詢時間是0小時,可以在目標表映射的歷史數據可查詢時間中指定。
歷史數據可查詢時間,已有表不支持修改。歷史數據可查詢時間決定數據歷史版本可查詢的時間范圍,超過設定時間的歷史數據不可查詢,時間范圍越長,意味著要保留的歷史數據越多,存儲費用也就越多,因此,請按需設置,詳情可參考表操作和Time travel。
編輯字段類型映射
同步任務存在默認的源端字段類型與目標端字段類型映射,您可以單擊表格右上角的編輯字段類型映射,自定義源端表與目標端表字段類型映射關系,配置完后單擊應用并刷新映射。
編輯目標表結構并添加字段賦值
當目標MaxCompute表為待建立狀態時,您可以為目標表在原有表結構基礎上新增字段。操作如下:
為目標表添加字段。
單表新增字段:單擊目標表名列的按鈕添加字段。
批量新增字段:選中待同步的所有表,在表格底部選擇
。
為字段賦值。您可以通過以下操作為上述步驟中新增的字段賦值。
單表賦值:單擊目標表字段賦值列的配置按鈕,為目標表字段賦值。
批量賦值:在列表底部選擇
為目標表中相同的字段批量賦值。
說明在賦值時支持賦值常量與變量,您可通過圖標切換賦值模式。
配置DML規則
數據集成提供默認DML處理規則,同時,您可以根據業務需要在此界面對寫入MaxCompute的DML命令定義處理規則。
單表定義規則:單擊表格DML規則配置列的配置,對目標表單獨定義DML規則。
批量定義規則:選中待同步的所有表,在列表底部選擇
。
步驟五:報警配置
為避免任務出錯導致業務數據同步延遲,您可以對實時同步子任務設置不同的報警策略。
單擊頁面右上方的報警配置,進入實時同步子任務報警設置頁面。
單擊新增報警,配置報警規則。
說明此處定義的報警規則,將對該任務產生的實時同步子任務生效,您可在任務配置完成后,進入實時同步任務運行與管理界面查看并修改該實時同步子任務的監控報警規則。
管理報警規則。對于已創建的報警規則,您可以通過報警開關控制報警規則是否開啟,同時,您可以根據報警級別將報警發送給不同的人員。
步驟六:高級參數配置
數據集成提供數據庫最大連接數,并發度等配置的默認值,如果需要對任務做精細化配置,達到自定義同步需求,您可對參數值進行修改,例如通過最大連接數上限限制,避免當前同步方案對數據庫造成過大的壓力從而影響生產。
請在完全了解對應參數含義的情況下再進行修改,以免產生不可預料的錯誤或者數據質量問題。
單擊界面右上方的高級參數配置,進入高級參數配置頁面。
在高級參數配置頁面基于業務需要與資源組、數據庫實際情況配置各項參數。
配置區域
參數
說明
讀端配置
源端最大連接數
支持您通過該參數控制當前同步方案所產生的同步任務可占用的源端數據庫連接數,即同一時間內,當前同步解決方案任務讀取數據庫的并發數上限。
寫端配置
實時任務session緩存大小
session緩存大小,超過則觸發FLUSH數據到MaxCompute,單位Byte,不填則使用MaxCompute側的默認值。
實時任務bucket緩存大小
bucket緩存大小,超過則觸發flush數據到MaxCompute,單位Byte,不填則使用MaxCompute側的默認值。
運行時配置
任務并發度
支持您通過該參數控制當前同步方案所產生的同步任務的并發數。
并發commit線程數
并發commit的線程數,為1時不開啟并發commit。默認值為5。
步驟七:DDL能力配置
來源數據源會包含許多DDL操作,您可以根據業務需求,在界面右上方單擊DDL能力配置,進入DDL能力配置頁面,對不同的DDL消息設置同步至目標端的處理策略。
不同DDL消息處理策略請參見:DDL消息處理規則。
步驟八:資源組配置
您可以單擊界面右上方的資源組配置,查看并切換當前的任務所使用的資源組。
步驟九:執行同步任務
完成所有配置后,單擊頁面底部的完成配置。
在
界面,找到已創建的同步任務,單擊操作列的啟動。單擊任務列表中對應任務的名稱/ID,查看任務的詳細執行過程。
后續步驟
完成任務配置后,您可以對已創建的任務進行管理、執行加減表操作、或對任務配置監控報警,并查看任務運行的關鍵指標,詳情請參見全增量同步任務運維。