DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块

熟悉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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/3869098/blog/5705839

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。