離線整庫遷移可用于將本地數據中心或在ECS上自建的數據庫同步數據至大數據計算服務,包括MaxCompute、Hive、TDH Inceptor等數據源。本文為您介紹如何新建并配置整庫遷移任務。
前提條件
已完成所需遷移的數據源創建。整庫遷移支持MySQL、Microsoft SQL Server、Oracle、OceanBase等來源端的數據遷移。具體支持的數據源,請參見數據集成支持的數據源。
功能介紹
離線整庫遷移是一個提升用戶效率、降低用戶使用成本快捷工具。相對于離線單條管道,離線整庫遷移可以批量配置離線管道,一次性完成數據庫內多張數據表的同步文件的配置。
操作步驟
在Dataphin首頁,在頂部菜單欄選擇研發 > 數據集成。
在頂部菜單欄,選擇目標項目。
在左側導航欄,選擇整庫遷移 > 離線整庫遷移。
在離線整庫遷移頁面,配置相關參數。參數及其配置說明如下表。
配置基本信息。
整庫遷移文件夾名稱:允許最長字符256個,不支持豎線(|)、正斜線(/)、反斜線(\)、半角冒號(:)、半角問號(?)、尖括號(<>)、星號(*)和半角引號(")。
配置數據源信息。
同步來源
參數
描述
數據源類型
選擇同步來源的數據源類型。支持的數據源與數據源創建說明,請參見整庫遷移支持的數據源。
Oracle數據源
Schema:支持跨Schema選表,請選擇表所在的Schema,如不指定則默認為數據源中配置的Schema。
文件編碼:若選擇Oracle數據源,需選擇Oracle的編碼方式。支持UTF-8、GBK、ISO-8859-1。
Microsoft SQL Server數據源
Schema:支持跨Schema選表,請選擇表所在的Schema,如不指定則默認為數據源中配置的schema。
Hive數據源
若選擇Hive數據源,需要配置以下配置項。
文件編碼:支持UTF-8、GBK。
Orc表壓縮格式:支持zlib、hadoop-snappy、lz4、none。
Text表壓縮格式:支持gzip、bzip2、lzo、lzo_deflate、hadoop_snappy、framing-snappy、zip、zlib。
Parquet表壓縮格式:支持hadoop_snappy、gzip、lzo。
字段分隔符:將使用填寫的分隔符寫入目標表。如不填寫,將默認為
\u0001
。
PostgreSQL數據源
Schema:支持跨Schema選表,請選擇表所在的Schema,如不指定則默認為數據源中配置的schema。
時區
請根據數據庫配置的時區選擇相應的時區。數據集成在中國地區默認時區為
GMT+8
,該時區不支持夏令時,如果數據庫配置時區支持夏令時,如Asia/Shanghai
時區,則當同步的時間數據處于夏令時的時間段,則建議選擇Asia/Shanghai
等時區,否則同步的數據與數據庫中的數據相差1小時。支持的時區包括:GMT+1、GMT+2、GMT+3、GMT+5:30、GMT+8、GMT+9、GMT+10、GMT-5、GMT-6、GMT-8、Africa/Cairo、America/Chicago、America/Denver、America/Los_Angeles、America/New York、America/Sao Paulo、Asia/Bangkok、Asia/Dubai、Asia/Kolkata、Asia/Shanghai、Asia/Tokyo、Atlantic/Azores、Australia/Sydney、Europe/Berlin、Europe/London、Europe/Moscow、Europe/Paris、Pacific/Auckland、Pacific/Honolulu。
數據源
選擇來源數據源。若無所需數據源,您也可以單擊新建數據源進行創建。
批量讀取條數
來源數據源為Oracle、Microsoft SQL Server、OceanBase、IBM DB2、PostgreSQL時,支持配置批量讀取條件,即一次性讀取數據的條數,默認為1024條。
同步目標
參數
描述
數據源類型
選擇目標數據源類型。支持的數據源與數據源創建說明,請參見整庫遷移支持的數據源。
說明同步至AnalyticDB for PostgreSQL數據源,系統每日會為目標表創建一個日期分區。
若有其他分區需要,可以在生成管道后,單擊單條管道修改分區相關的準備語句。
數據源
選擇目標數據源。若無所需數據源,您也可以單擊新建數據源進行創建。支持的數據源與數據源創建說明,請參見整庫遷移支持的數據源。
TDH Inceptor、ArgoDB目標數據源類型。
需要配置存儲格式。
TDH Inceptor:支持PARQUET、ORC、TEXTFILE存儲格式。
ArgoDB:支持PARQUET、ORC、TEXTFILE、HOLODESK存儲格式。
Hive目標數據源類型。
需要配置以下配置項。
是否外部表:單擊開關來選擇是否為外部表,默認為關閉。
存儲格式:支持PARQUET、ORC、TEXTFILE存儲格式。
文件編碼:Hive的存儲格式為ORC,支持配置文件編碼。包括UTF-8和GBK。
壓縮格式:
ORC存儲格式:支持zlib、hadoop-snappy、none。
PARQUET存儲格式:支持gzip、hadoop-snappy。
TEXTFILE存儲格式:gzip、bzip2、lzo、lzo_deflate、hadoop-snappy、zlib。
性能配置:Hive的存儲格式為ORC,支持配置性能配置。輸出表格式為ORC且字段較多的場景下,內存足夠時可嘗試調大該配置提高寫入性能,內存不足時可嘗試調小該配置減少GC時間提高寫入性能。默認
{"hive.exec.orc.default.buffer.size":16384}
,單位字節(Byte),建議不要配置超過262144字節(256k)。字段分隔符:TEXTFILE存儲格式可以配置字段分隔符。系統將使用填寫的分隔符寫入目標表,如不填寫。默認為
\u0001
。字段分隔符處理:TEXTFILE存儲格式可以配置字段分隔符處理。如數據中存在默認或自行配置的字段分隔符,可選擇處理策略,防止數據寫入錯誤。包括保留、去除、替換為。
行分隔符處理:TEXTFILE存儲格式可以配置行分隔符處理。如數據中存在換行符(
\r\n
、\n
),可選擇處理策略,防止數據寫入錯誤。包括保留、去除、替換為。開發數據源Location:Dev-Prod模式項目可以指定開發數據源建表語句中表存儲的Location。例如,
hdfs://path_to_your_extemal_table
。生產數據源Location:Dev-Prod模式項目可以指定生產數據源建表語句中表存儲的Location。例如,
hdfs://path_to_your_extemal_table
。說明Basic模式項目僅需要填寫一個數據源Location。
AnalyticDB for PostgreSQL目標數據源類型。
需要配置以下配置項。
重要沖突解決策略僅在AnalyticDB for PostgreSQL內核版本高于4.3時的Copy模式下有效,內核低于4.3或不明版本時請謹慎選擇,避免造成任務失敗。
沖突解決策略:copy加載策略支持設置沖突解決策略,包括沖突時報錯和沖突時覆蓋。
Schema:支持跨Schema選表,請選擇表所在的Schema,如不指定則默認為數據源中配置的schema。
Lindorm目標數據源類型。
需要配置以下配置項。
存儲格式:支持PARQUET、ORC、TEXTFILE、ICEBERG存儲格式。
壓縮格式:不同存儲格式支持不同壓縮格式。
ORC存儲格式:支持zlib、hadoop-snappy、lz4、none。
PARQUET存儲格式:支持gzip、hadoop-snappy。
TEXTFILE存儲格式:支持gzip、gzip2、lzo、lzo_deflate、hadoop-snappy、zlib。
開發數據源Location:Dev-Prod模式項目可指定開發環境建表語句中表存儲的根路徑Location,如:
/user/hive/warehouse/xxx.db
。生產數據源Location:Dev-Prod模式項目可指定生產環境建表語句中表存儲的根路徑Location,如:
/user/hive/warehouse/xxx.db
。
加載策略
Hive、TDH Inceptor、ArgoDB、StarRocks、Oracle、MaxCompute、Lindorm(計算引擎)目標數據源支持覆蓋數據和追加數據。
覆蓋數據:如果同步的數據存在,已存在數據將進行覆蓋同步。
追加數據:如果同步的數據存在,不進行覆蓋,新增數據進行追加同步。
AnalyticDB for PostgreSQL支持insert和copy。
insert:數據逐條同步。適用于數據量較小的情況,可以提高同步數據的準確性和完整性。
copy:數據通過文件形式同步。適用于數據量較大的情況,可以提高同步速度。
批量寫入數據量
AnalyticDB for PostgreSQL和StarRocks目標數據源支持配置批量寫入數據量,即一次性寫入的數據量大小,可同時設置批量寫入條數,寫入時按兩個配置中先達到上限的量寫入。
批量寫入條數
AnalyticDB for PostgreSQL和StarRocks目標數據源支持配置批量寫入條數,一次性寫入數據的條數,默認1024條。
配置數據同步。
同步來源為Hive、MySQL、Oracle、Microsoft SQL Server、OceanBase、IBM DB2、MaxCompute、AnalyticDB for PostgreSQL。
勾選來源表后,將生成對應的目標表,名稱默認與來源表名一致。若有名稱轉換配置,則為轉換后的名稱。
區塊
說明
①操作區
已勾選、未勾選:可以根據已勾選和未勾選篩選來源表。
搜索來源表:支持通過表名稱搜索當前來源表,大小寫敏感。
高級搜索:頁面最多展示10000張表,高級搜索功能支持在數據庫所有表中批量查找與搜索表名。單擊高級搜索,在高級搜索對話框中,配置高級搜索參數。
配置搜索方式。
支持精確輸入表名和模糊搜索方式搜索來源。
精確輸入表名:需要在搜索內容中批量輸入表名。表名分隔符為配置的分隔符,默認為
\n
,可以自行定義。模糊搜索:需要在搜索內容中填寫表名關鍵字。系統將根據表名關鍵字進行模糊搜索。
輸入搜索內容。
搜索方式不同,輸入的搜索內容不同。
精確輸入表名:可以批量輸入表名查找表,輸入內容請使用配置的分隔符分隔表名。
模糊搜索:可以輸入表名稱的關鍵字進行搜索。
搜索結果。
配置搜索方式和搜索內容后單擊搜索將為您展示搜索結果。在搜索結果表內選擇需要操作的表,并選擇操作類型,包括批量選中或批量取消選中。單擊確定,來源表將根據操作類型選中或取消選中。
自動刪除數據源中同名表:選中后Dataphin會先自動刪除數據源中已經存在的,且與整庫生成同名的表,再重新自動創建表。
重要如為項目數據源,則會同時刪除生產與開發環境中的同名表,請謹慎操作。
名稱轉化配置:非必選,名稱轉換配置可將您來源表的表名、字段名進行替換或過濾數據后進行同步。
單擊名稱轉換配置。
在名稱轉換配置頁面,配置轉換規則。
表名轉換規則:單擊新建規則,在規則項中填寫來源表待替換字符串和目標表替換字符串。如:需將表名
datawork
替換為dataphin
,則待替換字符串為work
,替換字符串為phin
。表名前綴:在表名前綴輸入框中填寫目標庫表的表名前綴。同步時將自動生成目標庫表的前綴,如:表名前綴填寫
pre_
,表名為dataphin
,則生成的目標庫表名為pre_dataphin
。表名后綴:在表后前綴輸入框中填寫目標庫表的表名后綴。同步時將自動生成目標庫表的后綴,如:表名后綴填寫
_prod
,表名為dataphin
,則生成的目標庫表名為pre_dataphin_prod
。字段名稱規則:單擊新增規則,在規則項中填寫來源字段替換字符串和目標字段替換字符串。如:需要將字段名
datawork
替換為dataphin
,則待替換字符為work
,替換的字符為phin
。
配置完成后單擊確定,對應目標庫表將展示轉換后的目標庫表名。
說明替換字符及表名前后綴中的英文字符將自動轉換為小寫。
校驗表名:校驗目標數據庫中是否存在當前的目標表名。
②來源表
在來源表列表中選擇需同步的來源表。
③對應目標庫表
選擇來源表后,生成對應目標庫表,名稱默認與源表名一致。若有名稱轉換配置,則為轉換后的名稱。
說明目標表名僅支持英文字母、數字及下劃線。如來源表名含有其他字符,請配置表名轉換規則。
④管道統計
當前已選擇的管道數。
同步來源為FTP。
請先單擊下載Excel模板并按照模板指引填寫模板后上傳模板文件。請嚴格按照模板文件的格式填寫,否則會導致文件解析失敗。
說明可上傳單個.xlsx文件或單個壓縮包(可以包含一個或多個.xlsx文件),壓縮格式僅支持zip類型。文件需小于50M。
文檔上傳完成后,單擊解析文件。
參數
描述
①操作區
搜索來源文件:支持通過文件名稱搜索當前來源文件。
僅查看解析失敗任務:列表將僅展示解析失敗的任務。
自動刪除數據源中同名表:選中后會先自動刪除數據源中已存在的與整庫生成的目標表同名的表,再重新自動創建。
重要如為項目數據源,則會同時刪除生產與開發環境中的同名表,請謹慎操作。
校驗表名:校驗目標數據庫中是否存在當前的目標表名。
②來源文件與對應目標表
來源文件:在來源文件列表中選擇需同步的來源文件。
對應目標表:解析文件后,將根據模板文件生成對應目標庫表。
③管道統計
當前已選擇的管道數。
任務名配置
生成方式,即離線整庫遷移任務名的生成方式,可選擇系統默認或自定義規則。
參數
描述
生成方式
系統默認
按照系統默認的命名方式生成任務名。
自定義規則
重要在配置自定義任務名規則前,請先完成同步來源數據源和同步目標數據源的選擇,否則無法配置自定義任務名規則。
默認規則:已選擇同步來源和同步目標的數據源,且任務名配置的生成方式選擇自定義規則后,系統會在任務名命名規則文本框中生成一個默認規則。任務名默認規則為
${來源數據源類型}2${目標數據源類型}_${source_table_name}
。例如當前整庫遷移任務來源數據源類型為MySQL,目標數據源類型為Oracle,來源表中第一個表名為
source_table_name1
,則默認任務名命名規則為MySQL2Oracle_${source_table_name}
,任務名預覽為MySQL2Oracle_source_table_name1
。說明此處的默認規則不等同于系統默認的生成方式。
自定義規則:在左側任務名命名規則文本框內輸入命名規則,可刪除已有的默認規則,或在默認規則的基礎上做修改。
名稱不支持豎線(|)、正斜線(/)、反斜線(\)、半角冒號(:)、半角問號(?)、尖括號(<>)、星號(*)和半角引號("),長度不超過256個字符,支持單擊右側可添加元數據列表中的有效元數據名進行復制。
說明命名規則中添加元數據后,任務名預覽中元數據的取值都取自于來源表列表中第一張表的信息。
設置同步方式和數據過濾。
參數
描述
同步方式
選擇同步方式。同步方式設置包括每日同步、單次同步、每日同步+單次同步。
每日同步:系統將生成每日調度的集成管道周期任務,通常用于同步每日的增量或全量數據。
單次同步:系統將生成集成管道手動任務,通常用于同步歷史全量數據。
每日同步+單次同步:系統將同時生成每日調度的周期任務和手動任務,通常用于單次全量后每日增量或全量的數據同步場景。
說明來源庫為FTP時,不支持每日同步+單次同步。
目標表創建為
選擇創建的目標表類型。包括分區表和非分區表。不同的同步方式目標表創建規則如下:
每日同步:選擇分區表,目標表將創建為分區表,默認寫入
ds=${bizdate}
的分區;選擇非分區表,目標表將創建為非分區表。單次同步:選擇分區表,目標表將創建為分區表,需要配置單次同步寫入分區參數,支持常量或分區參數。例如,常量
20230330
、分區參數ds=${bizdate}
;選擇非分區表,目標表將創建為非分區表。每日同步+單次同步:默認為分區表,不支持選擇。需要配置單次同步寫入分區參數,支持常量或分區參數。例如,常量
20230330
、分區參數ds=${bizdate}
。說明目前僅支持將單次同步的數據寫入對應目標表的一個指定分區內。如需將全量歷史數據寫入對應的不同分區,可在單次同步后使用SQL任務處理寫入目標表相應分區,或者選擇每日同步增量數據,然后進行補數據操作補全歷史分區。
數據過濾
來源庫非HIve、MaxCompute
每日同步過濾條件:同步方式包含每日同步時,可以配置每日同步時的過濾條件。如配置了
ds=${bizdate}
,任務運行時會抽取來源庫中ds=${bizdate}
的所有數據寫入指定的目標表分區。單次同步過濾條件:同步方式包含單次同步時,可以配置單次同步過濾條件。如配置了
ds=<${bizdate}
,任務運行時會抽取來源庫中ds=<${bizdate}
的所有數據寫入指定的目標表(分區)。
來源庫為Hive、MaxCompute
每日同步分區:來源庫為Hive、MaxCompute時,必須在此指定分區表每日讀取的分區。支持讀取單分區,可填寫
ds=${bizdate}
;或多分區,如填寫/*query*/ds>=20230101 and ds<=20230107
。單次同步分區:來源庫為Hive、MaxCompute且同步方式包含單次同步時,必須在此指定分區表單次讀取的分區。支持讀取單分區,可填寫
ds=${bizdate}
;或多分區,可填寫/*query*/ds>=20230101 and ds<=20230107
。分區不存在時:可選擇以下策略處理當指定分區不存在時的場景:
置任務失敗:終止該任務并置失敗。
置任務成功:任務正常運行成功,無寫入的數據。
使用最新非空分區:來源庫為MaxCompute時,支持使用該表當前的最新非空分區(max_pt)作為需同步的分區,如該表不存在任何有數據的分區,則任務報錯并置失敗。Hive來源庫不支持配置。
說明來源庫為FTP時,不支持數據過濾配置。
參數配置
來源庫為FTP時,支持在來源文件路徑中使用參數。
調度運行配置
參數
描述
調度配置
選擇調度配置。調度配置包括同時調度和分批調度。
同時調度:指每日零點同時執行源庫所選擇表的同步任務。
分批調度:指將源庫所選擇的表按批次的方式逐批執行同步任務。支持0~23小時周期和最大142條同步數量。例如,如需同步100張表,設置了每隔2小時同步10張表則需要20個小時才能完成一個同步周期任務的啟動。一個同步間隔周期不能超過24小時。
運行超時
同步任務運行時,若單次運行總時長超過設置閾值仍未完成,會自動終止并置為失敗。支持選擇系統配置或自定義。
系統配置:使用系統默認配置的超時時間。更多信息,請參見運行配置。
自定義:自定義超時時間。支持輸入0-168之間的數字(不包括0),保留2位小數。
失敗自動重跑
該任務實例、補數據實例運行失敗,會按照配置決定是否自動重跑。重跑次數支持輸入[0,10]之間的整數,重跑間隔支持輸入[1,60]之間的整數。
上游依賴
單擊添加依賴,可添加物理節點或邏輯表節點作為該節點的上游依賴。如不配置,則默認配置租戶的虛擬根節點作為上游依賴,您也可手動添加一個虛擬節點作為該節點的依賴對象。適用于需統一補數據等場景。
完成參數的配置后,單擊生成管道,完成離線整庫遷移管道的創建。
在運行結果區域,可查看管道任務的運行結果,包括來源表、目標表、同步方式、任務狀態及備注信息。
管道生成后,在離線集成目錄下將生成本次離線整庫遷移任務的文件夾,文件夾中包含對應的離線管道任務,您可以對生成的離線管道任務進行配置并發布。詳情請參見離線集成任務屬性配置概述。
若部分表創建失敗或后續有需要新增的表,可針對創建失敗或新增的表進行手動創建離線管道任務或離線腳本任務,再將其移動至離線整庫遷移的文件夾中。操作如下:
單擊目標離線整庫遷移文件夾后的按鈕。選擇新建離線管道或離線腳本。
在創建離線管道或創建離線腳本對話框中完成相關配置項后,單擊確定。相關配置項及其說明請參見通過單條管道創建集成任務、通過腳本模式創建集成任務。
說明創建完成后的離線管道任務和離線腳本任務將位于當前離線整庫遷移的文件夾中。
不支持將文件夾移入或移出離線整庫遷移的文件夾中。
離線集成目錄中需要移動的離線管道任務和離線腳本任務,可通過單擊其名稱后的按鈕,選擇移動,在移動文件的對話框中選擇目錄來完成移動。支持移動至離線整庫遷移文件夾中。
若刪除整庫遷移的文件夾,將同時刪除該文件夾下包含的所有任務,包括離線管道任務和離線腳本任務。
后續步驟
完成離線整庫遷移任務的創建和發布后,您可以在運維中心查看并運維集成任務,保證任務的正常運行。更多信息,請參見運維中心概述。