隨著雲計算的普及和大資料時代的到來,如何讓各種資料來源中的種類豐富的資料高效上雲,以及經過雲上大資料計算後,如何把計算結果回流到種類豐富資料來源 ?或者雲上各個產品之間的資料怎麼進行同步 ? 各個雲廠商或者大資料解決方案提供商都推出了各自的資料整合產品,本文將就常見的解決方案進行**。
典型的大資料業務整合場景
資料整合的本質是實現不同資料來源之間的資料交換,並且在交換過程中具備資料清洗轉換的能力;當然,在實際應用場景中,還需要解決各種複雜網路問題,例如使用者本地機房如何進行資料上雲,雲上不同vpc 內的資料來源如何進行相互同步等。
乙個商業資料整合產品通常需要具備以下功能:
1)支援種類豐富的資料來源,並具備資料來源的元資料管理
2)具備資料來源的全量抽取和增量抽取能力,並且穩定高效
3)具備視覺化的轉換清洗能力
4)具備資料質量監控能力,能收集髒資料並對同步的資料做質量校驗
5)完善的運維體系
6)開放性,方便第三方擴張資料來源
7)系統水平擴充套件能力
8)具備複雜網路下的資料整合方案
目前業內公司的整合產品有很多,但技術選型上基本分為兩類:
1) 單機同步引擎+資源管理分布式擴充套件,典型的如開源的datax,kettle + k8s 進行整合 ,當然還有部分拿web伺服器來嵌入同步引擎的,這種方案並不如拿專門的資源管理系統來做擴充套件好
2) 利用已有大資料計算引擎,將外掛程式執行在計算引擎上,在上面包裝成資料整合產品,如早期的sqoop,以及現在不少公司搞的基於spark,flink 的流批一體資料整合產品
下面將從技術角度分析一下上面兩種方案
方案一:
採用方案一典型架構如下 :
其中node 節點上面安裝需要執行的同步引擎,如datax 或者kettle
方案一的好處就是簡單可控,當需要接入不同網路環境的資料來源時候,可以借助資源排程層來做擴充套件,當然像k8s 這類的資源管控還不支援這種複雜網路情況,如果有這種業務場景,需要自建資源排程層。借助與資源排程層,多個同步任務執行時候可以水平擴充套件,但由於同步引擎只能單機執行,所以當同步的源頭和目標都為集群時候,單機版本可能會出現效能瓶頸。
方案二 :
方案二直接利用現有的大資料計算引擎,如hadoop,spark,flink ;按照具體的計算引擎規範開發相應的同步外掛程式,然後通過資料整合產品的特性進行業務化包裝。技術細節可以參考具體的計算引擎,不再細述
方案二的優缺點也很明顯 :
優點 : 大資料計算引擎本身功能比較強大,在上面包裝資料整合產品可以快速獲取集群同步能力,轉換清洗能力
缺點 : 無法適應複雜的網路情況,另外對應大資料計算引擎,一般需要專門的團隊去維護,幾乎沒人為乙個資料整合會去單獨搭建並且運維乙個大的計算引擎,成本高。另外整個資料整合跟某個具體的計 算引擎綁死,如果將來要換計算引擎,成本更高
方案二對於大廠自建資料整合能力比較適用,因為通常大資料計算引擎有專門團隊維護,不僅用於資料整合,而且用於其他的計算場景,成本會比較低,而且因為自己公司用,很少有複雜的網路場景。
經過對上面方案一和方案二的分析,我們發現效能、成本、以及適應複雜網路環境似乎存在著矛盾,那麼是否有一直解決方案可以完美解決上述痛點呢?
dlink 是阿里巴巴自研的資料整合引擎,採用外掛程式和引擎分離式設計,外掛程式通過引擎適配層執行在具體引擎上,整個外掛程式邏輯跟具體引擎無關,不僅實現了外掛程式可擴充套件,還可以實現執行引擎擴充套件,具體架構如下 :
外掛程式與執行引擎分離
我們針對資料整合場景,把讀取/寫入的外掛程式需要的方法做了最原子的抽象,通過引擎適配層執行在具體的引擎上,從而實現外掛程式與引擎解耦;整個同步過程不僅可以執行在自帶的原生引擎上面,也可以執行在flink,spark,hadoop 上面,單機能力與集群能力、清洗轉換能力全部具備,並且執行引擎可以通過增加新的引擎
適配層進行擴充套件,不需要改動外掛程式**。
成本優勢
由於dlink 執行態沒有與任何引擎綁死,也就意味著只要客戶有任何一套dlink 已經支援的執行引擎,那麼可以直接把外掛程式執行在客戶原有的計算引擎上面。舉個例子,有個客戶自己有個spark 或者 flink 計算集群 ,那麼可以不需要單獨購買同步資源,可以直接利用客戶的計算資源做同步,從而降低成本
複雜網路支援能力
1) dlink 支援單機執行,可以通過資源排程層的能力將客戶環境的機器註冊上來,解決網路問題
2)如果客戶本身有dlink 支援的計算集群,如flink , 由於直接執行在客戶的計算集群上面,那麼就天然的跟 使用者的網路做了打通
目前dlink一期功能已經在阿里雲上線 ,感興趣的可以通過dataphin產品中的整合模組進行試用
BPM Domino整合解決方案
一 需求分析 lotus notes domino是ibm的協同辦公平台,在國內有廣泛的使用者。但由於推出年頭較早 採用文件資料庫等特點,導致其流程整合能力弱 統計分析難 不支援移動辦公等問題,很多企業採用新的流程引擎與其整合,滿足企業日益複雜的 協同需求。二 方案實現 h3 bpm可以與企業已經實...
SAP Oracle EBS整合解決方案
一.需求分析 sap和oracle ebs都是作為全球頂級的的erp產 品,得到了眾多客戶的親耐。然而由於 系統龐大 昂貴以及定位不同,客戶在實施過程中經常會面臨以下困惑 1.sap如何實現 線上 線下 閉環流程 sap使用者外延流程設計以及二次開發流程面臨挑戰。2.如何梳理業務流程 企業的制度 規...
NPU算力整合解決方案
通過rk3399與多個rk1808核心板組合成超高算力的ai集群,同時進行ai運算處理。npu算力整合不僅能增加算力,更能靈活的控制成本,具有更高的價效比。配置ai專用晶元rk1808,rk1808內建的npu算力最高可達3.0 tops,支援int8 int16 fp16混合運算,最大程度兼顧效能...