DAG任務調度系統 Taier 演進之道,探究DataSourceX 模塊

語言: CN / TW / HK

熟悉Taier的小夥伴們應該都知道,在11月7日發佈的Taier1.3新版本中,我們融合了「DataSourceX 模塊」。這是十分重要的一個變化,移除Taier外部插件依賴,新增數據源插件相關特性,支持後續Taier對接更多的RDBMS類型的SQL任務。

本篇文章,就帶大家詳細瞭解一下DataSourceX 的作用及設計。

DataSourceX 模塊的作用

為什麼説 DataSourceX 是一個非常重要的模塊?

在 Taier 中 RDB SQL 任務的運行,嚮導模式的數據同步、實時採集、FlinkSQL 任務配置都是依託數據源來進行的,其中保證數據源的正常使用以及 RDB SQL運行、任務所需的庫、表、字段等信息的獲取都是依靠 DataSourceX 模塊來做的。

下文展開聊聊Taier-DataSourceX 模塊的具體功能。

數據源中心添加數據源

數據源中心添加數據源時需要進行數據源連通性檢測,確保數據源是真正可用的,具體就是通過調用 DataSourceX 模塊來實現。連通性檢測通過之後,可以進行數據源的保存,並在任務中進行引用。

file file

數據同步任務-數據源配置

數據同步任務源表結果表配置中的表、字段等信息都是通過 DataSourceX 模塊進行獲取。

file file

FlinkSQL任務-數據源配置

FlinkSQL 中源表 topic 獲取、數據預覽等,結果表維表字段、數據預覽等都是通過 DataSourceX 模塊進行實現。

file file file

RDB SQL運行

Taier 1.3版本中,RDB SQL任務和數據源進行了綁定,不需要再像之前一樣在控制枱配置計算引擎,DataSourceX 中支持的RDB數據源都可以做RDB SQL的運行,比如像 OceanBase SQL 就可以通過 DataSourceX 模塊來運行。

file

On Yarn任務日誌

On Yarn 任務運行結束的聚合日誌通過 DataSourceX 模塊進行獲取。

file

Taier-DataSourceX 其他功能

• Taier-DataSourceX 模塊統一了各種數據源間的相同操作,提供了一組相同的接口來對不同的數據源進行操作,使得 Taier 可以更輕鬆的集成不同的數據源,支持更多的 RDB SQL 和數據源

• Taier-DataSourceX 模塊支持幾十種 RDB 數據源並支持開啟池化管理,支持 hdfs、ftp、s3 等存儲組件,支持 mongoDB、es、redis 等非關係型數據庫

• Taier-DataSourceX 模塊本身支持並統一了 kerberos 認證邏輯,對於支持開啟 kerberos 認證的數據源,Taier 本身並不關心底層的實現邏輯,而是交由 DataSourceX 模塊來完成

• Taier-DataSourceX 模塊基於 ChildFirstClassLoader 並結合 SPI 支持在同一個應用中對接不同版本的數據源,如 Taier 可以同時支持 Hive1.x、Hive2.x、Hive3.x 三種不同版本的 Hive

DataSourceX 模塊的設計

瞭解完 DataSourceX 的豐富功能之後,接下來帶大家瞭解Taier-DataSourceX 模塊的設計。

統一的 Client 接口

Taier-DataSourceX-api 模塊定義了 SPI 服務接口,具體實現由 Taier-DataSourceX-plugin 來完成。

file

插件隔離加載

Taier-DataSourceX 會對每一個類型的數據源模塊打包成一個單獨的 jar 並放到指定目錄。

Taier-DataSourceX-api 模塊為每個插件包初始化一個 ChildFirstClassloader 隔離加載不同的數據源實現對象,解決多版本驅動同時加載的類衝突問題。

file

Client 對象統一代理

Taier-DataSourceX 模塊加載的 Client 對象是通過動態代理生成的代理對象,方便進行統一的異常處理、重試、超時、上下文 Classloader 的切換等處理。

file

連接池化管理

Taier-DataSourceX 模塊針對 RDB 數據源或其他數據源進行的統一池化管理,支持開啟連接池,為相同的數據源初始化一個連接池,控制資源使用和提升程序運行效率。

針對不開啟連接池的連接進行統一管理,及時清理過期連接。

file

資源的統一管理

Taier-DataSourceX 模塊針對初始化的 Classloader、Client 對象、執行線程池進行統一管理,在插件包變更、新增、刪除時動態檢測並銷燬或新增資源。

file

Taier 1.3 新版本

Taier自今年2月份開源之後,得到了社區開發者的廣泛支持,我們積極吸收社區開發者的意見建議,不斷迭代版本,已於11月7日發佈了全新的1.3 版本,進行了多項功能改動。

技術改造

• DataSourceX 融合

• 部署優化

數據開發

• 任務支持指定隊列運行

• 任務數據源綁定

新增功能

• 新增Flink Standalone

• 新增Python、Shell任務,新增ClickHouse、Doris SQL任務

視頻回放&PPT獲取

視頻回看:

https://www.bilibili.com/video/BV1wW4y1T7EC/?spm_id_from=333.337.search-card.all.click

課件獲取:

關注公眾號“數棧研習社”,後台私信“Taier”獲得直播課件

想了解或諮詢更多有關袋鼠雲大數據產品、行業解決方案、客户案例的朋友,瀏覽袋鼠雲官網:https://www.dtstack.com/?src=szkyzg

同時,歡迎對大數據開源項目有興趣的同學加入「袋鼠雲開源框架釘釘技術qun」,交流最新開源技術信息,qun號碼:30537511,項目地址:https://github.com/DTStack