全部產品
Search
文件中心

DataWorks:整庫離線同步至Elasticsearch

更新時間:Jun 19, 2024

整庫離線同步方案包括周期性全量同步、周期性增量同步處理、一次性全量同步、一次性增量同步處理、一次性全量周期性增量同步處理。本文以一次性全量周期性增量同步處理至Elasticsearch為例,為您講解如何將整庫資料離線同步至Elasticsearch。

前提條件

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

    說明

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

  2. 已完成資料來源環境準備。您可以基於您需要進行的同步配置,在同步任務執行前,授予資料來源配置的帳號在資料庫進行相應操作的許可權。詳情請參見:資料庫環境準備概述

操作流程

  1. 步驟一:選擇同步方案

  2. 步驟二:配置網路連通

  3. 步驟三:設定同步來源與規則

  4. 步驟四:設定目標索引

  5. 步驟五:同步規則設定

  6. 步驟六:運行資源設定

  7. 步驟七:執行同步任務

步驟一:選擇同步方案

建立同步解決方案任務,根據需求選擇需要同步的源端資料來源和目標端資料來源,並選擇整庫離線同步至Elasticsearch方案。

步驟二:配置網路連通

源端選擇已建立的源端資料來源與目標端資料來源,以及用於執行同步任務的資源群組。並測試資源群組與資料來源的網路連通。詳情請參見:配置同步網路連結

步驟三:設定同步來源與規則

  1. 基本配置地區,配置同步解決方案的名稱、任務存放位置等資訊。

  2. 資料來源地區,確認需要同步的源端資料來源相關資訊。

  3. 選擇同步的源表地區,選中需要同步的源表,單擊表徵圖表徵圖,將其移動至已選源表

    該地區會為您展示所選資料來源下所有的表,您可以選擇整庫全表或部分表進行同步。

  4. 設定表名到索引的映射規則地區,單擊添加規則,選擇相應的規則進行添加。

    同步時預設將源端資料表寫入Elasticsearch同名索引中,同時,您可以通過添加映射規則定義最終寫入目的端的索引名稱,實現將多張表資料寫入到同一個索引中,或統一將源端某固定首碼的表名在寫入目標索引時更新為其他首碼。支援通過Regex轉換寫入的索引名,還支援使用內建變數拼接目標索引名。配置邏輯請參見:設定同步來源與規則

步驟四:設定目標索引

單擊重新整理源表和Elasticsearch 索引映射將根據您在步驟三配置的設定表名到索引名的映射規則來產生目標索引,若步驟三未配置映射規則,將預設寫入與源表同名的目標索引,若目標端不存在該同名索引,將預設建立。同時,您可以修改索引建立方式。

說明

目標表名將根據您在設定表名到索引名的映射規則階段配置的表名轉換規則自動轉換。

功能

描述

選擇主鍵替代方案

  • 如果來源庫有主鍵,則同步資料時會直接使用該主鍵進行去重。

  • 如果來源庫沒有主鍵,則您需要單擊編輯表徵圖,自訂主鍵,即使用其他非主鍵的一個或幾個欄位的聯合,代替主鍵進行同步資料時進行去重判斷。

選擇索引建立方式

支援自動建索引使用已有索引

  • 索引建立方式選擇自動建索引時,Elasticsearch索引名列顯示自動建立的Elasticsearch索引名。您可以單擊索引名稱,查看和修改索引相關屬性。

  • 索引建立方式選擇使用已有索引時,您可以在Elasticsearch索引名列對應的下拉式清單中選擇需要使用的索引名稱。

編輯目標索引

同步解決方案預設根據源端產生目標索引結構,可能存在欄位類型轉換,即若目標端資料庫中沒有與源端一致的資料類型時,同步任務在自動建立目標索引時,將自動為源端欄位匹配目標端可寫入的欄位類型。支援您單擊Elasticsearch索引名列的目標索引名根據需求修改目標索引的相關參數。

說明

僅在索引建立方式自動建索引時,支援編輯目標索引。

  • 動態映射狀態:用於在同步資料時,是否將資料來源表的新增欄位添加至目標索引中。取值如下:

    • true:當映射的目標索引檢測到同步的資料來源表中存在新添加的欄位時,會將該欄位同步添加至目標索引中,後續該欄位可以被搜尋。該取值為預設值。

    • false:當映射的目標索引檢測到同步的資料來源表中存在新添加的欄位時,會將該欄位同步添加至目標索引中,但後續該欄位不可以被搜尋。

    • strict:當映射的目標索引檢測到同步的資料來源表中存在新添加的欄位時,將拒絕同步該欄位至目標索引併產生異常報錯,您可以在日誌資訊中查看報錯詳情。

    更多動態映射的內容,詳情請參見動態映射

  • shard數量replica數量:索引的主分區及副本分區,用於將一個完整的索引分成多個分區,分布至不同的Elasticsearch節點上,構成分布式搜尋,提升Elasticsearch的查詢效率,詳情請參見基本概念

    說明

    shard數量replica數量參數,配置運行後不可更改,預設取值為1

  • 分區設定:您可以選擇同步的資料來源表的某一列作為分區列,該參數需要和shard數量replica數量配合使用。預設不開啟資料分割函數。

    • 不開啟分區:不填寫該參數,預設使用文檔的_id作為routing起到將文檔均勻分布到多個分區上防止資料扭曲的作用。

    • 開啟分區:把指定列的value指定為routing的值,在寫入時,插入或更新指定shard中的doc。

  • 資料欄位結構:用於設定映射的目標索引中欄位的類型及擴充屬性,詳情請參見Elasticsearch的欄位類型

配置目標索引參數

說明

當建立了目標Elasticsearch索引後,如果不修改相關參數,則系統會按照預設值的相應規則進行資料同步。

步驟五:同步規則設定

  1. 選擇同步方案。

    整庫離線同步可選擇的同步方案如下表所示。

    同步方案

    描述

    只全量一次性同步

    只執行一次同步操作,將來來源資料源的所有資料,全量同步至Elasticsearch中。

    只增量一次性同步

    只執行一次同步操作,按照指定的過濾條件,將來來源資料源的增量資料同步至Elasticsearch中。

    周期性全量同步

    按照配置的周期任務,每次執行任務時都將來來源資料源的所有資料,全量同步至Elasticsearch中。

    周期性增量同步處理

    按照指定的過濾條件和周期任務,每次執行任務時僅將增量資料同步至Elasticsearch中。

    全量一次性同步後周期性增量

    先將來來源資料源的所有資料全量同步至Elasticsearch,再按照指定的過濾條件和周期任務,後續每次執行任務時僅將增量資料同步至Elasticsearch中。

  2. 配置同步方案參數。

    選擇同步方案後,不同同步方案需配置不同的同步參數,包括全量同步參數、增量同步處理參數及周期設定參數。具體如下:

    • 全量同步

      僅當方案選擇配置為只全量一次性同步周期性全量同步全量一次性同步後周期增量時,需要配置該參數。

      參數

      描述

      寫入前清空對應的原有index(索引)

      取值如下:

      • :寫入資料前會清空索引中原有的資料。

      • :寫入資料前不會清空索引中原有的資料。

      重要

      配置該參數為時,則會在寫入資料前刪除目標索引中所有的資料,請謹慎選擇。

      寫入Elasticsearch策略

      取值如下:

      • 插入:為預設值,同步資料時直接向目標索引中插入資料。

      • 更新:同步資料時,如果有相同的主鍵,則更新主鍵資料;如果沒有相同的主鍵,則直接插入資料。

        更新資料時,是先將原有的一行資料全部刪除後再重新插入。

      每批次寫入的條數

      每次批量寫入Elasticsearch的資料條數,即攢夠一定條數的資料後,一次性寫入Elasticsearch。預設為1000。您可以根據實際網路情況及資料量大小進行合理配置,減少不必要的網路開銷。

    • 增量同步處理

      僅當方案選擇配置為只增量一次性同步周期性增量同步處理全量一次性同步後周期增量時,需要配置該參數。

      說明

      您可以使用調度參數來指定同步源表及目標表的資料範圍,調度參數使用說明請參見:Data Integration使用調度參數的相關說明

      參數

      描述

      寫入Elasticsearch策略

      取值如下:

      • 插入:為預設值,同步資料時直接向目標索引中插入資料。

      • 更新:同步資料時,如果有相同的主鍵,則更新主鍵資料;如果沒有相同的主鍵,則直接插入資料。

        更新資料時,是先將原有的一行資料全部刪除後再重新插入。

      每批次寫入的條數

      每次批量寫入Elasticsearch的資料條數,即攢夠一定條數的資料後,一次性寫入Elasticsearch。預設為1000。您可以根據實際網路情況及資料量大小進行合理配置,減少不必要的網路開銷。

      增量條件

      您可通過where語句對待同步的資料表進行過濾,且只需在增量條件框中填寫where子句,無需寫where關鍵字。同時,在寫where子句時,您可以使用系統內建變數,例如使用${bdp.system.bizdate}指代業務日期、使用${bdp.system.cyctime}指代定時時間等。

    • 周期設定

      由於需要進行周期性調度,所以需要在此定義周期性調度任務時的相關屬性,包括調度周期生效日期暫停調度等。當前方案的調度配置與DataWorks中節點的調度配置一致,參數詳情可參見時間屬性配置說明

步驟六:運行資源設定

該同步方案將分別建立全量離線同步任務和增量離線同步任務,您可以在此步驟配置任務名稱及任務執行所使用的調度資源群組與Data Integration任務執行資源組,同時,Data Integration提供資料庫最大串連數、並發數等配置的預設值,如果您需要對任務做精細化配置,您可通過進階配置進行修改。

說明

DataWorks的離線同步任務通過調度資源群組將其下發到Data Integration任務執行資源組上執行,所以離線同步任務除了涉及Data Integration任務執行資源組外,還會佔用調度資源群組資源。如果使用了獨享調度資源群組,將會產生調度執行個體費用。您可通過任務下發機制對該機制進行瞭解。

步驟七:執行同步任務

  1. 進入Data Integration > 同步任務介面,找到已建立的同步方案。

  2. 單擊操作列的啟動/提交執行按鈕,啟動同步的運行。

  3. 單擊操作列的執行詳情,查看任務的詳細執行過程。

後續步驟

完成任務配置後,您可以對已建立的任務進行管理、執行加減表操作,或對任務配置監控警示,並查看任務啟動並執行關鍵計量等。詳情請參見:全增量同步處理任務營運