整庫離線同步方案包括周期性全量同步、周期性增量同步、一次性全量同步、一次性增量同步、一次性全量周期性增量同步。本文以一次性全量周期性增量同步至OSS為例,為您講解如何將整庫數(shù)據(jù)離線同步至OSS。
前提條件
- 已完成數(shù)據(jù)源配置。您需要在數(shù)據(jù)集成同步任務配置前,配置好您需要同步的源端和目標端數(shù)據(jù)庫,以便在同步任務配置過程中,可通過選擇數(shù)據(jù)源名稱來控制同步任務的讀取和寫入數(shù)據(jù)庫。同步解決方案支持的數(shù)據(jù)源及其配置詳情請參見支持的數(shù)據(jù)源與讀寫能力。說明 數(shù)據(jù)源相關能力介紹詳情請參見:數(shù)據(jù)源概述。
- 已購買合適規(guī)格的獨享數(shù)據(jù)集成資源組。詳情請參見:新增和使用獨享數(shù)據(jù)集成資源組。
- 已完成數(shù)據(jù)集成資源組與數(shù)據(jù)源的網(wǎng)絡連通。詳情請參見:配置資源組與網(wǎng)絡連通。
- 已完成數(shù)據(jù)源環(huán)境準備。您可以基于您需要進行的同步配置,在同步任務執(zhí)行前,授予數(shù)據(jù)源配置的賬號在數(shù)據(jù)庫進行相應操作的權限。詳情請參見:數(shù)據(jù)庫環(huán)境準備概述。
操作流程
步驟一:選擇同步方案
創(chuàng)建同步解決方案任務,根據(jù)需求選擇需要同步的源端數(shù)據(jù)源和目標端數(shù)據(jù)源,并選擇整庫離線同步至OSS方案。步驟二:配置網(wǎng)絡連通
源端選擇已創(chuàng)建的源端數(shù)據(jù)源與目標端數(shù)據(jù)源,以及用于執(zhí)行同步任務的資源組。并測試資源組與數(shù)據(jù)源的網(wǎng)絡連通。詳情請參見:配置同步網(wǎng)絡鏈接。
步驟三:設置同步來源與規(guī)則
- 在基本配置區(qū)域,配置同步解決方案的名稱、任務存放位置等信息。
- 在數(shù)據(jù)來源區(qū)域,確認需要同步的源端數(shù)據(jù)源相關信息。
- 在選擇同步的源表區(qū)域,選中需要同步的源表,單擊圖標,將其移動至已選源表。
該區(qū)域會為您展示所選數(shù)據(jù)源下所有的表,您可以選擇整庫全表或部分表進行同步。
- 在設置表名到文件名的映射規(guī)則區(qū)域,單擊添加規(guī)則,選擇相應的規(guī)則進行添加。同步時默認將源端數(shù)據(jù)庫、數(shù)據(jù)表寫入OSS同名文件中,同時,您可以通過添加映射規(guī)則定義最終寫入目的端的文件名稱。支持通過正則表達式轉(zhuǎn)換寫入的文件名,還支持指定內(nèi)置變量拼接目標文件名。您可以通過該功能實現(xiàn)將多張表數(shù)據(jù)寫入到同一個文件中。配置邏輯請參見:步驟四:設置同步來源與規(guī)則。
步驟四:設置目標文件
- 目標文件的基本配置。
參數(shù) 說明 目標路徑 用于定義數(shù)據(jù)寫入的文件路徑,若路徑不存在,將自動新建。 說明 如果您希望將每日數(shù)據(jù)寫入至OSS新的文件夾中,您可以使用變量${bdp.system.bizdate}
對文件路徑進行命名。文件類型 定義寫入目的端的文件格式,包括csv、text及parquet。 說明- csv僅支持嚴格的csv格式。如果待寫入數(shù)據(jù)包括列分隔符,則會根據(jù)csv的語法轉(zhuǎn)義,轉(zhuǎn)義符號為雙引號(")。
- text格式是用列分隔符簡單分割待寫數(shù)據(jù),對于待寫數(shù)據(jù)包括列分隔符情況下不做轉(zhuǎn)義。
列分隔符 將源端每列數(shù)據(jù)寫入OSS時所使用的列分隔符,默認值為(,)。 行分隔符 將源端每行數(shù)據(jù)寫入OSS時所使用的行分隔符,默認值為(\n)。 編碼 定義文件寫入OSS的編碼格式。 null值 文本文件中無法使用標準字符串定義null(空指針),數(shù)據(jù)同步系統(tǒng)提供該參數(shù)定義可以表示為null的字符串。例如,您配置null值為 null
,如果源頭數(shù)據(jù)是null,數(shù)據(jù)同步系統(tǒng)會視作null字段。時間格式 定義寫入時間類型數(shù)據(jù)時的格式。 寫入單個文件 定義源端單表是否寫入單個文件,當開關為關閉狀態(tài)時,一張表將被寫入多個文件,文件名將添加隨機后綴。 說明 該功能目前僅對csv和txt文件格式生效,對parquet文件格式不生效。如果選擇了寫入單個文件,則文件名前綴沖突選項可以選擇替換原有文件或退出報錯。寫入單文件時源端單表數(shù)據(jù)量超過10G會引起同步報錯。前綴沖突 定義寫入OSS文件時,Object名稱前綴沖突情況下的數(shù)據(jù)處理方式: - 替換原有文件:寫入前清理Object名稱前綴匹配的所有Object。例如
"object":"abc"
,將清理所有abc開頭的Object。 - 保留原有文件:寫入前不進行任何處理,數(shù)據(jù)集成OSS Writer直接使用Object名稱寫入,并使用隨機UUID的后綴名來保證文件名不沖突。例如您指定的Object名為數(shù)據(jù)集成,實際寫入為
DI_****_****_****
。說明 寫入單個文件時不支持該選項。 - 退出報錯:如果指定路徑出現(xiàn)前綴匹配的Object,直接報錯。例如
"object":"abc"
,如果存在abc123的Object,將直接報錯。
- 刷新源表和OSS文件映射。單擊刷新源表和OSS文件映射,將根據(jù)您在步驟三配置的目標文件映射規(guī)則來生成目標OSS文件名,若步驟三未配置映射規(guī)則,將默認寫入與源表同名的文件。同時,您可以修改最終寫入的文件建立方式、為目標文件在源有表字段基礎上增加附加字段。說明 當上一步驟中寫入單個文件開關為關閉狀態(tài)時,即單表寫入OSS多個文件時,此處的OSS文件名為寫入OSS文件的前綴名稱,實際寫入的文件名會添加隨機字符串。
功能 描述 文件建立方式 寫入OSS時的文件建立方式,支持寫入已有文件或自動建立新文件。 為目標字段添加附加字段 單擊操作列的編輯附加字段,可以為目標文件在源端字段的基礎上增加字段并為字段賦值。支持手動賦值常量與變量。 說明 僅在文件建立方式為自動建文件時,可以使用此功能。
步驟五:同步規(guī)則設置
- 配置增量同步的數(shù)據(jù)規(guī)則。您可通過where語句對待同步的數(shù)據(jù)表進行過濾,且只需在增量條件框中填寫where子句,無需寫where關鍵字。同時,在寫where子句時,您可以使用系統(tǒng)內(nèi)置變量,例如使用
${bdp.system.bizdate}
指代業(yè)務日期,格式為yyyymmdd
,使用${bdp.system.cyctime}
指代定時時間,格式為yyyymmddhh24miss
等。說明 您可以使用調(diào)度參數(shù)來指定同步源表及目標表的數(shù)據(jù)范圍,調(diào)度參數(shù)使用說明請參見:數(shù)據(jù)集成使用調(diào)度參數(shù)的相關說明。 - 配置數(shù)據(jù)同步的調(diào)度周期。由于需要進行周期性調(diào)度,所以需要在此定義周期性調(diào)度任務時的相關屬性,包括調(diào)度周期、生效日期、暫停調(diào)度等。當前方案的調(diào)度配置與DataWorks中節(jié)點的調(diào)度配置一致,配置詳情請參見時間屬性配置說明。
步驟六:運行資源設置
該同步方案將分別創(chuàng)建全量離線同步任務和增量離線同步任務,您可以在此步驟配置任務名稱及任務執(zhí)行所使用的調(diào)度資源組與數(shù)據(jù)集成任務執(zhí)行資源組,同時,數(shù)據(jù)集成提供數(shù)據(jù)庫最大連接數(shù)、并發(fā)數(shù)等配置的默認值,如果您需要對任務做精細化配置,您可通過高級配置進行修改。
說明 DataWorks的離線同步任務通過調(diào)度資源組將其下發(fā)到數(shù)據(jù)集成任務執(zhí)行資源組上執(zhí)行,所以離線同步任務除了涉及數(shù)據(jù)集成任務執(zhí)行資源組外,還會占用調(diào)度資源組資源。如果使用了獨享調(diào)度資源組,將會產(chǎn)生調(diào)度實例費用。您可通過任務下發(fā)機制對該機制進行了解。
步驟七:執(zhí)行同步任務
- 進入 界面,找到已創(chuàng)建的同步方案。
- 單擊操作列的啟動/提交執(zhí)行按鈕,啟動同步的運行。
- 單擊操作列的執(zhí)行詳情,查看任務的詳細執(zhí)行過程。