下篇丨數據融合平臺DataPipeline的實際應用場景

在上週發佈的“上篇丨數據融合平臺DataPipeline的應用場景”一文中,我們分別從7個場景介紹了客戶在使用最新2.6版本中遇到的一些情況。接下來,本文將繼續爲大家呈現其它幾個應用場景。

一、對分庫分表場景的支持

  1. 場景說明

在同一個數據任務中,對源系統某張表,根據表中數據的業務邏輯,將數據同步到不同數據庫的不同表中,例如:將集團的銷售數據按照所屬分公司的不同同步到對應的分公司數據庫的銷售數據表中。

  1. 場景適用說明

源/目的地:關係型數據庫

讀取模式:無限制

  1. 操作步驟

(1)根據設計確定分庫分表規則;

(2)根據已定規則選擇對應數據源並創建數據源;

(3)目的地將分庫分表規則按照指定格式寫入CSV文件;

(4)DP將根據已定義的CSV規則對源端數據進行分庫分表寫入目的地。

注:詳細細節可聯繫DataPipeline提供開發文檔說明。

二、自定義數據源場景

  1. 場景說明

目前,許多企業在數據傳輸的需求場景中,除了從上游不同業務數據庫中實時、定時分配到下游系統外,還需從外部合作商、供應商中獲取業務數據。此時,企業通常會根據需要編寫不同的腳本,手動調用第三方系統提供的API接口,在抓取數據後,自行編寫清洗邏輯,最後實現數據落地。DataPipeline的自定義數據源功能針對上面場景有以下幾點優勢:

  1. 統一管理數據獲取邏輯,快速合併JAR減少腳本開發量; 2. 當上遊發生變化時,無需對每一個數據傳輸任務進行調整; 3. 可結合DataPipeline的數據解析功能、清洗工具和目標初始化功能減少整體開發量,並提供監控和預警。

  2. 場景適用說明

源:自定義數據源

目的地:無限制

讀取模式:定時模式

  1. 操作步驟

(1)創建自定義數據源,並上傳JAR包(或調取已上傳過的JAR包);

(2)選擇數據存放的目的地;

(3)使用清洗工具完成數據解析邏輯;

(4)配置目的地表結構,即可完成所有配置。

注:詳情參考「自定義」數據源,解決複雜請求邏輯外部數據獲取難題請添加鏈接描述

三、MySQL源Slave1掛掉後,使用Slave2同步如何保證數據不丟失

  1. 場景說明

爲避免對MySQL主庫產生影響,DataPipeline連接MySQL Slave1從庫通過解析Binlog方式進行實時同步。但當Slave1掛掉時,爲不影響任務,需要切換到Slave2從庫繼續進行實時同步。

但Slave2拿到的Binlog日誌相較於Slave1有延遲,會導致缺失數據。

DataPipeline提供了回滾功能,用戶可在DataPipeline上將原任務回滾到到某個時間段,確保不會缺失數據,拿到對應GTID,再通過該GTID找到Slave2對應的Binlog position等信息。該操作不會缺失數據,但可能會產生重複數據(如果目的地是關係型數據庫且有主鍵,可根據主鍵去重)。

  1. 場景適用說明

源/目的地:MySQL/關係型數據庫

讀取模式:實時模式

  1. 操作步驟

(1)創建數據源(Slave1,開啓Binlog同步所需條件);

(2)正常激活任務即可;

(3)假如該任務掛掉,回滾操作,拿到某個時間點的GTID值;

(4)新建另一個數據源(Slave2,開啓Binlog同步所需條件);

(5)激活起點選擇自定義(填寫Slave1,回滾時所拿到的GTID,並根據該GTID在Slave2上拿到Binlog position等信息)。

下篇丨數據融合平臺DataPipeline的實際應用場景

四、多個表同步到一個Kafka Topic

  1. 場景說明

因爲業務需求,需要將多個表同步到Kafka Topic中,以便將數據供下游使用。在DataPipeline中可以實現該場景,同時也存在一些注意事項。

  1. 場景適用說明

源/目的地:無限制/Kafka

讀取模式:無限制(建議使用實時或增量識別字段模式,因爲Kafka目的地數據無法去重)

  1. 操作步驟

(1)若使用不到DataPipeline的高級清洗功能,可聯繫DataPipeline運維開啓一個全局參數,這樣可以在一個任務中選擇多張表寫入到同一個Kafka目的地。如果是實時模式,在該參數下,每條數據將額外附加上DML、 Insert timestamp 等字段信息,以供下游使用;

(2)如果需要使用DataPipeline高級清洗功能,則需要將這些表分佈在不同任務中,寫入到同一個Kafka Topic。

五、將多個表同步到一個表

  1. 場景說明

因爲業務需求,需要將多個表同步到一個目的地表。在DataPipeline中可以實現,但需要注意一些事項。

  1. 場景適用說明

源/目的地:無限制

讀取模式:無限制

  1. 操作步驟

(1)2.6.0以前版本需要開啓高級清洗,並在高級清洗中對所添加字段賦默認值;

(2)2.6.0以後版本不需要開啓高級清洗,需要在寫入設置中添加字段,並將藍色按鈕關閉(同步字段,但不同步數據);

(3)要求目的地在DataPipeline上的表結構必須一致,如字段缺少需對應添加。並且,需要建多個任務,將源表分佈在不同任務中。

六、如何將圖片同步到HDFS

  1. 場景說明

需要將各個區域的圖片統一上傳到HDFS上保存,供後續計算等使用。

  1. 場景適用說明

源/目的地:FTP/HDFS

讀取模式:定時模式

  1. 操作步驟

(1)點擊文件同步;

(2)正常創建任務即可。

下篇丨數據融合平臺DataPipeline的實際應用場景

本篇集中介紹了6種場景,如果你在工作中遇到了同樣的問題,歡迎與我們交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章