微衆開源數據交換平臺Exchangis,可跨多數據源實現傳遞共享

Exchangis是微衆銀行開源的數據交換平臺,用於數據在不同計算存儲中快速傳遞,並解決數據交換過程中面臨的序列化反序列化耗時長、傳輸限流、數據讀寫權限管控、組件版本兼容性等問題。設計上採取微服務架構,上下層服務松耦合,易於進行定製擴展開發。

Exchangis Github地址:
https://github.com/WeBankFinTech/Exchangis

一、Exchangis是什麼

Exchangis是一個數據交換系統,便捷且安全地進行數據交換流程是其主要職責。它提供創建和管理數據交換任務的功能,目的是以類似任務總線的方式,滿足現有的同構或者異構數據源之間數據傳輸、管理的需求。Exchangis將數據交換中涉及的數據源抽象化,可以隨時更新和修正數據源連接,數據交換任務的執行流程也被拆分成幾大部分,對任務有更細粒度的管理。

Exchangis底層使用的執行引擎具有可替換性,目前主要使用的執行引擎是基於阿里DataX框架二次開發後的成果,支持以記錄或者二進制兩種方式進行數據傳輸。

二、爲什麼需要Exchangis

隨着數據利用率的提高和數據共享行爲變得頻繁,對於大數據平臺應用開發來說,如何進行數據交換是每個平臺組件都繞不過去的問題。目前大數據平臺應用開發的痛點圍繞在如下五點:

1. 隨着大數據平臺數據來源的增多,以及大數據集羣本身之間的隔離,數據彼此之間缺少穩定安全的傳輸交換通道。

2. 不同業務數據的存儲方式不一樣,缺少統一標準的數據交換協議。

3. 數據所處的網絡環境不一樣,沒有便捷的平臺管理工具。

4. 數據通常對應有不同的數據屬主和用戶權限,不同用戶之間的數據交換方向不可控。

5. 缺少便捷的數據交換操作入口,在配置自動化,報表圖形化方面都有所欠缺。

可以說Exchangis的設計就是爲了解決如上的痛點,作爲一個平臺系統,它針對數據交換的業務場景抽象出了一套統一的數據來源到目的的元數據映射結構,極大降低了用戶使用數據交換的學習和使用成本,使數據在不同存儲系統、不同存儲格式之間的流轉,變得更加的簡單和易用,同時結合了數據權限管理的功能,增強用戶對數據傳輸流向的把控和監管能力。

三、Exchangis的技術架構

Exchangis的設計理念是將平臺的相關特性在高層抽象化爲統一入口,例如任務作業管理,執行調度,權限管控等,而在底層方面(特指底層傳輸引擎)則採用多架構多實現的形式(例DataX等傳輸框架),不同架構之間彼此隔離,可以選擇在舊傳輸架構上合理新增新特性,也可以選擇引入新傳輸架構。而對於用戶來說,入口是穩定且統一的。這使得Exchangis在特性拓展上有一定的靈活性。

  • WEB/GATEWAY Container
    界面和網關服務容器,用於各個服務容器之間的鑑權,外部請求的鑑權和與外部鑑權服務器的交互,維護着整個平臺的路由鏈路。

  • SERVICE Container
    管理着多組和用戶使用相關的API接口,是用戶創建配置數據源,配置執行數據交換任務等業務操作的入口

  • EXECUTOR Container
    實際執行數據交換任務的容器,可以對接多種執行引擎,引擎之間可以自由切換,同時還維護任務作業的多種監聽線程,監聽作業日誌、是否超時和作業資源分配

四、Exchangis核心特徵

  • 較爲完善的數據源管理用戶可以分別維護自己的數據源,通過綁定項目的方式共享自己的數據源,同時可以設置數據源的對外權限,控制數據的流入和流出。

  • 多傳輸引擎支持傳輸底層可以橫向擴展,目前聚合了離線批量傳輸引擎DataX和大數據批量導數引擎Sqoop,對兩者功能進行了整合,還可以繼續做動態擴充。

  • 多引擎服務管理基於Spring Cloud的特性,可以動態擴充系統的某項服務,系統會接收這些服務上報的機器信息,調整調度傳輸任務的負載均衡策略,同時提供統一的服務管理界面,允許管理員對這些服務進行創建系統用戶等基本的機器底層操作。

  • 支持近實時的任務管控可以快速地抓取傳輸任務的日誌以及傳輸速率等信息,可以實時地關閉正在運行的任務,並根據當下網絡情況對單個運行中任務進行動態限流處理。

  • 任務狀態自檢流程系統會週期性地去捕捉長時間運行的任務和排隊等待的任務,檢驗任務狀態是否異常,對異常的任務及時釋放佔用的資源並收集告警信息發出。

  • 支持無結構化數據傳輸對底層批量傳輸引擎做架構改造,單獨構建二進制流快捷通道,適用於某些無數據轉換的純數據同步的需求。

五、Exchangis和WeDataSphere

WeDataSphere是一套一站式、金融級、開源開放大數據平臺套件,已在國內最大線上銀行WeBank,經過了數年海量嚴苛金融業務場景的打磨和驗證,表現卓越。

更多關於WeDataSphere的介紹,請訪問:
https://github.com/WeBankFinTech/WeDataSphereExchangis

作爲WeDataSphere的數據交換組件,負責各個工具組件與外部環境之間的數據傳遞工作,相對其他WeDataSphere組件,Exchangis以輕量級少依賴爲設計出發點,目前還暫時處理獨立狀態,但部分功能例如數據源管理,已整合進已開源的Linkis組件中,後續Exchangis也將作爲WeDataSphere Studio中的節點被使用。

六、Exchangis的前景規劃

Exchangis數據交換系統在開源版本上後續會同步做兩方面的提升,一方面是自身系統架構的優化改造,支持作業拆分調度,以分佈式的形式執行子作業,充分利用集羣每個傳輸節點的資源,並逐步開放支持的數據類型,接入更多的執行引擎;對於現有引擎例如DataX,則是會繼續開放一讀多寫,斷點續傳等二次開發後的新特性。

另一方面是和WeDataSphere社區其他開源組件的整合, Exchangis會將其數據源模塊統一集成到Linkis組件中,而底層的引擎部分也會逐步做成Linkis的Engine引擎,會和Linkis做同步的適配。而對於DSS(DataSphere Studio),Exchangis則會以插件化的方式嵌入到其中,作爲應用數據開發的第三方節點存在。

七、總結

Exchangis數據交換系統,提供了一個通用化的平臺,整合並增強了現有的傳輸交換引擎功能,爲後續的改進優化提供了可能。由於篇幅的限制,本文就不再多論述更多的設計點和優化點,期待有更多的開源社區力量,幫助和完善Exchangis的設計,推動其更進一步的成長。

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