首页 > 其他分享 >DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块

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

时间:2022-12-28 11:06:05浏览次数:58  
标签:DAG 数据源 Taier RDB DataSourceX 模块 SQL 任务调度

熟悉Taier的小伙伴们应该都知道,在11月7日发布的​​Taier1.3新版本​​中,我们融合了「DataSourceX 模块」。这是十分重要的一个变化,移除Taier外部插件依赖,新增数据源插件相关特性,支持后续Taier对接更多的RDBMS类型的SQL任务。

本篇文章,就带大家详细了解一下DataSourceX 的作用及设计。

DataSourceX 模块的作用

为什么说 DataSourceX 是一个非常重要的模块?

在 Taier 中 RDB SQL 任务的运行,向导模式的数据同步、实时采集、FlinkSQL 任务配置都是依托数据源来进行的,其中保证数据源的正常使用以及 RDB SQL运行、任务所需的库、表、字段等信息的获取都是依靠 ​​DataSourceX 模块​​来做的。

下文展开聊聊Taier-DataSourceX 模块的具体功能。

数据源中心添加数据源

​数据源中心​​添加数据源时需要进行数据源连通性检测,确保数据源是真正可用的,具体就是通过调用 DataSourceX 模块来实现。连通性检测通过之后,可以进行数据源的保存,并在任务中进行引用。

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

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

数据同步任务-数据源配置

数据同步任务源表结果表配置中的表、字段等信息都是通过 DataSourceX 模块进行获取。

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块_连接池_03

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

FlinkSQL任务-数据源配置

FlinkSQL 中源表 topic 获取、数据预览等,结果表维表字段、​​数据预览​​等都是通过 DataSourceX 模块进行实现。

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

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块_连接池_06

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块_连接池_07

RDB SQL运行

Taier 1.3版本中,RDB SQL任务和数据源进行了绑定,不需要再像之前一样在控制台配置计算引擎,DataSourceX 中支持的​​RDB数据源​​都可以做RDB SQL的运行,比如像 OceanBase SQL 就可以通过 DataSourceX 模块来运行。

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块_连接池_08

On Yarn任务日志

On Yarn 任务运行结束的聚合日志通过 DataSourceX 模块进行获取。

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

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​​ 来完成。

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块_数据源_10

插件隔离加载

Taier-DataSourceX 会对每一个类型的数据源模块打包成一个单独的 jar 并放到指定目录。

Taier-DataSourceX-api 模块为每个插件包初始化一个 ChildFirstClassloader 隔离加载不同的数据源实现对象,解决多版本驱动同时加载的类冲突问题。

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

Client 对象统一代理

Taier-DataSourceX 模块加载的 Client 对象是​​通过动态代理生成的代理对象​​,方便进行统一的异常处理、重试、超时、上下文 Classloader 的切换等处理。

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块_数据源_12

连接池化管理

Taier-DataSourceX 模块针对 RDB 数据源或其他数据源进行的​​统一池化管理​​,支持开启连接池,为相同的数据源初始化一个连接池,控制资源使用和提升程序运行效率。

针对不开启连接池的连接进行统一管理,及时清理过期连接。

DAG任务调度系统 Taier 演进之道,探究DataSourceX 模块_连接池_13

资源的统一管理

Taier-DataSourceX 模块针对初始化的 Classloader、Client 对象、执行线程池进行统一管理,在插件包变更、新增、删除时动态检测并销毁或新增资源。

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

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=sz51cto​

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:​​https://github.com/DTStack​

标签:DAG,数据源,Taier,RDB,DataSourceX,模块,SQL,任务调度
From: https://blog.51cto.com/u_15137832/5973870

相关文章

  • 基于SSH的任务调度系统的设计与实现(论文+PPT+源码)
    基于SSH的任务调度系统的设计与实现摘要随着科学技术的飞速发展和各行各业的分工愈发明细化,对于改革传统的人工任务调度方式的呼声越来越大。得益于快速发展的计算机技术,我......
  • T1408 矩阵嵌套(DAG 记忆化搜索)
    T1408矩阵嵌套​ 有n个矩阵,每个矩阵有长x和宽y。我们定义矩阵A可以嵌套在矩阵B中:A.x>B.x且A.y>B.y或者A.x>B.y且A.y>B.x。我们现在要找一个最长......
  • 通过surging的后台托管服务编写任务调度并支持规则引擎自定义脚本
    简介    过去,如果在业务中需要处理任务调度的时候,大家都会使用第三方的任务调度组件,而第三方组件有一套自己的规则,在微服务的中显得那么格格不入,这样就会造成代码臃......
  • Spring的两种任务调度Scheduled和Async
    Spring提供了两种后台任务的方法,分别是:调度任务,@Schedule异步任务,@Async当然,使用这两个是有条件的,需要在spring应用的上下文中声明​​​<task:annotation-driven/>​​​......
  • 任务调度系统-业务线资源隔离
    问题背景最近注意到自己负责的一个任务调度集群碰到了计算资源业务线分配不均的问题(即业务线资源隔离没有做好):在任务高峰期,调度系统会将计算资源偏向分配给(执行耗时比较......
  • [dp 记录]agc016F Game on DAG
    博弈论好题,做完感觉加深了对SG函数的理解!题意:给定一张DAG,问该DAG的\(2^m\)张导出子图中有多少张满足\(SG[1]=SG[2]\)注:此为转换后题意\(n\leq15\)考虑推......
  • .net core 任务调度
      任务调度在项目开发中,已经变得越来越常见,每个项目一般都会出现几个需要定时程序来完成的,有的选择直接与web网站一起运行,有的选择将任务调度作为服务单独运行。还有的......
  • 定时任务、分布式任务调度框架
    同类产品对比类别QuartZxxl-jobSchedulerX2.0PowerJob任务类型内置Java内置Java、GLUEJava、Shell、Python等脚本内置Java、外置Java(FatJar)、Shell、Pyt......
  • Apache Airflow < 2.4.0 example dag 远程代码执行漏洞(CVE-2022-40127)【WAF防护运营】
    ApacheAirflow是一个可编程,调度和监控的工作流平台,基于有向无环图(DAG),Airflow可以定义一组有依赖的任务,按照依赖依次执行。CVE-2022-40127中,若攻击者可访问到ApacheA......
  • 09Linux任务调度
    任务调度基本介绍crontab指令Linuxcrontab是用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否有要执......