文章目录
- 1.TIS是什么?
- 1.1 简介
- 1.2 官网及项目地址
- 1.3 架构
- 2.功能特性
- 2.1 基于Web UI的开箱即用
- 2.2 支持分布式任务分发
- 2.3 全新的基于微内核的运行环境
- 2.4 功能覆盖DataX大部分(Reader/Writer)Plugin
- 2.5 重构DataX的Classloader
- 2.6 支持RDBMS类型的Writer自动生成目标表
- 2.7 简化DataX部署方式
- 3.安装部署
- 3.1 挂载
- 3.2 config.properties配置
- 3.3 docker启动命令
- 4.首页
- 5.总结
1.TIS是什么?
1.1 简介
TIS集成大数据领域优秀组件(FlinkX-CDC,Chunjun(FlinkX),DataX,Flink等)为您提供一站式、开箱即用的DataOps数据中台,大幅提高ETL实时数仓构建效率。
TIS的愿景是实现企业大数据ETL(Extraction-Transformation-Loading)全覆盖的中台产品,数据抽取(Extraction)是大数据处理所有环节中的第一步,也是最重要的环节。
最新版本的TIS数据抽取组件是基于:
- Alibaba DataX,并且在原生DataX之上添加了功能特性大大提高了DataX的可用性
- 实时数据同步框架Flink-CDC和Chunjun
当业务分析场景中只需要T+1的数据报表分析,则只需要开启基于DataX的批量数据同步功能。如需要启用实时OLAP数据分析功能,则需要开启基于Flink的实时数据同步功能。
1.2 官网及项目地址
https://tis.pub/
https://github.com/datavane/tis?tab=readme-ov-file
1.3 架构
2.功能特性
2.1 基于Web UI的开箱即用
TIS基于ng-zorro-antd UI组件开发了一套覆盖DataX 任务定义、执行、更新等生命周期的流程实现,让用户轻松点击鼠标,让各种类型的数据在个端之间畅通无阻。
系统中提供了各种校验及错误提示机制,让用户不需要直接编辑DataX JSON格式的脚本,而是,TIS系统自动生成DataX JSON配置脚本。因此,大大避免了原生DataX配置目繁杂带来的不必要的错误。
2.2 支持分布式任务分发
原生开源版DataX解决方案是单机执行的,由于单节点执行任务吞吐量的限制,需要对DataX进行二次开发才能在生产环境中部署。
TIS支持单节点
和分布式
两种任务执行模式。分布式
模式基于ZK的Curator分布式任务队列实现Master-Slaver模式,由K8S容器中的Slaver节点来消费任务。
2.3 全新的基于微内核的运行环境
按照DataX UserGuid介绍,为了运行DataX需要在本地部署多个组件,对于普通小白用户来说有一定门槛。
TIS采用微内核的架构设计,参照Jenkins的插件架构体系,初始安装包只有300兆。运行时根据需要,在控制台中轻点鼠标,动态加载具体的DataX Plugin(Reader/Writer)。
对于企业级大数据中台产品内部会有非常多的组件,但是用户只会用到部分组件,采用微内核按需加载的方式会带来非常多的好处。
2.4 功能覆盖DataX大部分(Reader/Writer)Plugin
- 最新版本已经支持了DataX官方大部分核心Reader/Writer插件,其他插件将会在后续版本中添加。
- 新版本额外添加了对TiDB Reader Plugin支持
2.5 重构DataX的Classloader
重构DataX默认ClassLoadercom.alibaba.datax.core.util.container.JarLoader
,对其功能嫁接到了TIS的com.qlangtech.tis.datax.TISJarLoader
之上,实现了基于TIS平台可视化的插件加载机制,提升了用户体验。
2.6 支持RDBMS类型的Writer自动生成目标表
部分RDMS类型的Writer数据源如MySQL,Clickhouse等系统实现了通过反射Reader数据源的Meta信息,自动生成Writer Plugin对应的目标数据表,免去了手动创建Writer目标表的DDL语句。
支持Hive
,Spark
表自动创建,自动添加Partition(基于日期的)
2.7 简化DataX部署方式
原生DataX部署方案要求,需要在本地环境中支持Python运行环境DataX UserGuid,根据以往经验,Python运行环境的各种问题,常常导致DataX脚本无法正常执行,其实Python只是起到了DataX命令行参数的传递的作用。 所以在TIS的DataX整合方案中已经将Pyhton环境部署的环节去除掉了,这样一来提高了DataX运行稳定性。
3.安装部署
本文采用docker方式安装部署,部署方式还有很多种,有基于docker-compose的方式部署、有基于k8s的方式部署、有单节点部署、有多节点部署,还集成了PowerJob分布式定时任务,还集成了Zeppelin,官方提供了很多免费的插件使用。
3.1 挂载
3.2 config.properties配置
config.properties文件放在3.1挂载的config目录下即可,config.properties内容如下:
project.name=TIS
runtime=daily
# MySQL 数据库配置,参数根据用户所在环境自行修改
tis.datasource.type=mysql
tis.datasource.url=xxxx(ip)
tis.datasource.port=3306
tis.datasource.username=root
tis.datasource.password=123456
tis.datasource.dbname=tis_console
# Derby 数据库配置注释掉
#tis.datasource.type=derby
#tis.datasource.dbname=tis_console_db
assemble.host=127.0.0.1
tis.host=127.0.0.1
这里我们使用的是mysql8.0.28数据库持久化数据
需要执行的脚本如下:
https://github.com/qlangtech/tis-ansible/blob/v4.0.0/tis_console_mysql.sql
3.3 docker启动命令
docker run --name=tis -d -p 8080:8080 -v "D:\tis\config\config.properties":/opt/app/tis-uber/tjs/conf/tis-web-config/config.properties -v "D:\tis\config\config.properties":/opt/app/tis-uber/tis-assemble/conf/tis-web-config/config.properties -v "D:\tis\data":/opt/data registry.cn-hangzhou.aliyuncs.com/tis/tis-console:4.0.0
4.首页
首页地址:
http://localhost:8080/
首页地址不需要输入默认用户名和密码,用户模块在4.0.0版本还没有开放这个功能,估计还在重构着这块功能吧
5.总结
本文介绍了TIS这个开源的数据集成产品,还可以去探索它的一个更耐思的功能,数据分析内核还是基于Flink、Datax、Chunjun(原名叫FlinkX),只是TIS做了一些额外的工作,让数据集成处理变得可视化和简便化了,大幅度提高了效率,这些都是一些外壳,都需要添加一个数据分析处理的内核,如Flink等,上一篇文章分享的是:Dinky 让Flink作业纵享丝滑
https://mp.weixin.qq.com/s/IQkr12qL57RPjBjtv1DK_w
https://blog.csdn.net/qq_34905631/article/details/140104456?spm=1001.2014.3001.5502
之前的文章还分享了StreamPark、Seatunnel、Datax-Web等开源的项目,让我们在技术选型的时候有更多的对比和选择,这个更具自己的需求来选择适合自己的开源的项目,希望我的分享能给你启发和帮助,请一键三连,么么么哒!