熟悉Taier的小伙伴們應該都知道,在11月7日發佈的Taier1.3新版本中,我們融合了「DataSourceX 模塊」。這是十分重要的一個變化,移除Taier外部插件依賴,新增數據源插件相關特性,支持後續Taier對接更多的RDBMS類型的SQL任務。 本篇文章,就帶大家詳細瞭解一下DataSo ...
熟悉Taier的小伙伴們應該都知道,在11月7日發佈的Taier1.3新版本中,我們融合了「DataSourceX 模塊」。這是十分重要的一個變化,移除Taier外部插件依賴,新增數據源插件相關特性,支持後續Taier對接更多的RDBMS類型的SQL任務。
本篇文章,就帶大家詳細瞭解一下DataSourceX 的作用及設計。
DataSourceX 模塊的作用
為什麼說 DataSourceX 是一個非常重要的模塊?
在 Taier 中 RDB SQL 任務的運行,嚮導模式的數據同步、實時採集、FlinkSQL 任務配置都是依托數據源來進行的,其中保證數據源的正常使用以及 RDB SQL運行、任務所需的庫、表、欄位等信息的獲取都是依靠 DataSourceX 模塊來做的。
下文展開聊聊Taier-DataSourceX 模塊的具體功能。
數據源中心添加數據源
數據源中心添加數據源時需要進行數據源連通性檢測,確保數據源是真正可用的,具體就是通過調用 DataSourceX 模塊來實現。連通性檢測通過之後,可以進行數據源的保存,併在任務中進行引用。
數據同步任務-數據源配置
數據同步任務源表結果表配置中的表、欄位等信息都是通過 DataSourceX 模塊進行獲取。
FlinkSQL任務-數據源配置
FlinkSQL 中源表 topic 獲取、數據預覽等,結果表維表欄位、數據預覽等都是通過 DataSourceX 模塊進行實現。
RDB SQL運行
Taier 1.3版本中,RDB SQL任務和數據源進行了綁定,不需要再像之前一樣在控制台配置計算引擎,DataSourceX 中支持的RDB數據源都可以做RDB SQL的運行,比如像 OceanBase SQL 就可以通過 DataSourceX 模塊來運行。
On Yarn任務日誌
On Yarn 任務運行結束的聚合日誌通過 DataSourceX 模塊進行獲取。
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 來完成。
插件隔離載入
Taier-DataSourceX 會對每一個類型的數據源模塊打包成一個單獨的 jar 並放到指定目錄。
Taier-DataSourceX-api 模塊為每個插件包初始化一個 ChildFirstClassloader 隔離載入不同的數據源實現對象,解決多版本驅動同時載入的類衝突問題。
Client 對象統一代理
Taier-DataSourceX 模塊載入的 Client 對象是通過動態代理生成的代理對象,方便進行統一的異常處理、重試、超時、上下文 Classloader 的切換等處理。
連接池化管理
Taier-DataSourceX 模塊針對 RDB 數據源或其他數據源進行的統一池化管理,支持開啟連接池,為相同的數據源初始化一個連接池,控制資源使用和提升程式運行效率。
針對不開啟連接池的連接進行統一管理,及時清理過期連接。
資源的統一管理
Taier-DataSourceX 模塊針對初始化的 Classloader、Client 對象、執行線程池進行統一管理,在插件包變更、新增、刪除時動態檢測並銷毀或新增資源。
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=szbky
同時,歡迎對大數據開源項目有興趣的同學加入「袋鼠雲開源框架釘釘技術qun」,交流最新開源技術信息,qun號碼:30537511,項目地址:https://github.com/DTStack