上篇丨數據融合平臺DataPipeline的應用場景

上篇丨數據融合平臺DataPipeline的應用場景

在過去的一年裏DataPipeline經歷了幾次產品迭代。就最新的2.6版本而言,你知道都有哪些使用場景嗎?接下來將分爲上下篇爲大家一 一解讀,希望這些場景中能出現你關心的那一款。

場景一:應對生產數據結構的頻繁變更場景

  1. 場景說明

在同步生產數據時,因爲業務關係,源端經常會有刪除表,增減字段情況。希望在該情況下任務可以繼續同步。並且當源端增減字段時,目的地可以根據設置選擇是否同源端一起增減字段。

  1. 場景適用說明

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

讀取模式:不限制

  1. 操作步驟
  • 不限制DataPipeline版本

  • 在DataPipeline的任務設置,數據目的地設置下的高級選項下有【數據源變化設置】選項,可根據提示自行選擇

上篇丨數據融合平臺DataPipeline的應用場景

場景二:數據任務結束後調用Jenkins任務

  1. 場景說明

數據任務同步結束,立即啓動已定義的Jenkins任務。保證執行的順序性,以及依賴性。

  1. 場景適用說明

源/目的地:傳統性數據庫(其它需要腳本)

讀取模式:批量全量或增量識別字段

  1. 操作步驟
  • 在DataPipeline任務流中創建任務流

  • 創建定時數據同步任務

  • 添加【遠程命令執行】,添加服務器IP,編寫python腳本並放置在服務器指定目錄

詳細操作細節請與DataPipeline人員溝通

上篇丨數據融合平臺DataPipeline的應用場景

場景三:生產數據同步給測試使用

  1. 場景說明

MySQL->MySQL實時同步,在同步時,可能測試組想要對任務中的幾張表目的地進行測試,在測試過程中,目的地會有INSERT/UPDATE/DELETE操作。希望在測試前,能以自動化方式執行腳本暫停某幾張表的同步。測試結束後以自動化方式執行腳本重新同步這幾張表,並且目的地數據需要與線上數據保持一致(即測試所產生的髒數據需要被全部清理掉)。

  1. 場景適用說明

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

讀取模式:不限制(全量/增量識別字段模式可能需要開啓【每次定時執行批量同步前,允許清除目標表數據】功能)

  1. 操作步驟
  • 要求DataPipeline版本>=2.6.0

  • 在對目的地表進行測試前,執行DataPipeline所提供的腳本

  • 目的地結束測試後,再執行腳本添加測試表

  • 啓動腳本,對測試的幾張表進行重新同步,保證測試後的數據可以和線上數據繼續保持一致

  • 參考DataPipeline swagger接口列表,目前已有腳本模板可供參考

場景四:Hive->GP列存儲同步速率提高方案

  1. 場景說明

Hive->GP,如果GP目的地表爲手動創建的列存儲表,那麼在DataPipeline上同步時速率會非常慢。這是因爲GP列存儲本身存在的限制。而目的地若爲DataPipeline創建的行表,再通過腳本將行錶轉換爲列表,則效率提高几十倍。

  1. 場景適用說明

源/目的地:Hive源/GP目的地

讀取模式:增量/全量

  1. 操作步驟
  • 目的地表爲DataPipeline自動創建的行表

  • 編寫腳本將行錶轉換爲列表

  • 數據任務同步完成後,通過DataPipeline任務流調用行轉列腳本

  • 再將列表數據提供給下游使用

場景五:對數據進行加密脫敏處理場景

  1. 場景說明

因爲涉及用戶隱私或其它安全原因,需要對數據部分字段進行脫敏或加密處理。通過DataPipeline的高級清洗功能可以完全滿足此類場景。

  1. 場景適用說明

源/目的地:不限制

讀取模式:不限制

  1. 操作步驟
  • 不限制DataPipeline版本

  • 正常配置任務即可,只需開啓高級清洗功能

  • 將已寫好的加密代碼或脫敏代碼打成jar包,上傳到服務器執行目錄下,直接調用即可

  • 高級清洗代碼可聯繫DataPipeline提供模板

注意事項:所寫的jar包需要分別上傳webservice、sink、manager所在容器的服務器的/root/datapipeline/code_engine_lib(一般默認)目錄。

場景六:通過錯誤隊列,明確上下游數據問題責任及原因

  1. 場景說明

作爲數據部門,需要接收上游數據,並根據下游部門需求將數據傳輸給對應部門。因此當存在髒數據或者數據問題時,有時很難定位問題原因,劃分責任。

並且大多時候都是將髒數據直接丟棄,上游無法追蹤髒數據產生的原因。通過DP的高級清洗功能可自定義將不符合的數據放入錯誤隊列中。

  1. 場景適用說明

源/目的地:不限制

讀取模式:不限制

  1. 操作步驟
  • 不限制DataPipeline版本

  • 正常配置任務即可,只需開啓高級清洗功能

  • 在高級清洗中對對應字段根據業務進行邏輯判斷,將不想要的數據扔到DP錯誤隊列中

高級清洗代碼可聯繫DataPipeline提供模板

場景七:更便捷地支持目的地手動增加字段

  1. 場景說明

由Oracle->SQLServer,想在目的地手動添加一列TIMESTAMP類型,自動賦予默認值,記錄數據INSERT時間。

  1. 場景適用說明

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

讀取模式:不限制

  1. 操作步驟
  • 要求DataPipeline版本>=2.6.0

  • 在DataPipeline映射頁面配置時,添加一列,字段名稱和目的地手動添加名稱一致(標度類型任意給,無需一致)

  • 勾選該字段藍色按鈕(開啓表示同步該字段數據,關閉表示該字段不傳任何數據),點擊保存。如下圖所示:

上篇丨數據融合平臺DataPipeline的應用場景

  • 手動在目的地添加該列

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

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