TIS介绍
实时ETL数仓
TIS的愿景是实现企业大数据ETL(Extraction-Transformation-Loading)全覆盖的中台产品,数据抽取(Extraction)是大数据处理所有环节中的第一步,也是最重要的环节。
最新版本的TIS数据抽取组件是基于:
- Alibaba DataX,并且在原生DataX之上添加了功能特性大大提高了DataX的可用性
- 实时数据同步框架Flink-CDC和Chunjun
当业务分析场景中只需要T+1的数据报表分析,则只需要开启基于DataX的批量数据同步功能。如需要启用实时OLAP数据分析功能,则需要开启基于Flink的实时数据同步功能。
视频示例
- 启用分布式执行功能
- MySQL导入ElasticSearch
- MySQL导入Hive
- MySQL导入Clickhouse
- MySQL全表入湖Hudi >>视频Demo
- MySQL到StarRocks的同步实现 >>视频Demo
TIS安装
功能特性
基于Web UI的开箱即用
TIS基于ng-zorro-antd UI组件开发了一套覆盖DataX 任务定义、执行、更新等生命周期的流程实现,让用户轻松点击鼠标,让各种类型的数据在个端之间畅通无阻。
系统中提供了各种校验及错误提示机制,让用户不需要直接编辑DataX JSON格式的脚本,而是,TIS系统自动生成DataX JSON配置脚本。因此,大大避免了原生DataX配置目繁杂带来的不必要的错误。
支持分布式任务分发
原生开源版DataX解决方案是单机执行的,由于单节点执行任务吞吐量的限制,需要对DataX进行二次开发才能在生产环境中部署。
TIS支持单节点
和分布式
两种任务执行模式。分布式
模式基于ZK的Curator分布式任务队列实现Master-Slaver模式,由K8S容器中的Slaver节点来消费任务。
全新的基于微内核的运行环境
按照DataX UserGuid介绍,为了运行DataX需要在本地部署多个组件,对于普通小白用户来说有一定门槛。
TIS采用微内核的架构设计,参照Jenkins的插件架构体系,初始安装包只有300兆。运行时根据需要,在控制台中轻点鼠标,动态加载具体的DataX Plugin(Reader/Writer)。
对于企业级大数据中台产品内部会有非常多的组件,但是用户只会用到部分组件,采用微内核按需加载的方式会带来非常多的好处。
功能覆盖DataX大部分(Reader/Writer)Plugin
- 最新版本已经支持了DataX官方大部分核心Reader/Writer插件,其他插件将会在后续版本中添加。
- 新版本额外添加了对TiDB Reader Plugin支持
重构DataX的Classloader
重构DataX默认ClassLoadercom.alibaba.datax.core.util.container.JarLoader
,对其功能嫁接到了TIS的com.qlangtech.tis.datax.TISJarLoader
之上,实现了基于TIS平台可视化的插件加载机制,提升了用户体验。
支持RDBMS类型的Writer自动生成目标表
部分RDMS类型的Writer数据源如MySQL,Clickhouse等系统实现了通过反射Reader数据源的Meta信息,自动生成Writer Plugin对应的目标数据表,免去了手动创建Writer目标表的DDL语句。
支持Hive
,Spark
表自动创建,自动添加Partition(基于日期的)
简化DataX部署方式:
原生DataX部署方案要求,需要在本地环境中支持Python运行环境DataX UserGuid,根据以往经验,Python运行环境的各种问题,常常导致DataX脚本无法正常执行,其实Python只是起到了DataX命令行参数的传递的作用。 所以在TIS的DataX整合方案中已经将Pyhton环境部署的环节去除掉了,这样一来提高了DataX运行稳定性。
功能一瞥
选择Reader/Writer插件类型
添加MySqlReader
设置MySqlReader目标表、列
添加ElasticWriter,可视化设置ElasticSearch的Schema Mapping
执行MySql->ElasticSearch DataX实例,运行状态
执行MySql->ElasticSearch 执行成功
TIS支持的DataX(Reader/Writer)Plugin
Provider: FlinkCDCChunjunTISDataX
类型 | 批量(DataX) | 实时 | ||
---|---|---|---|---|
读 | 写 | Source | Sink | |
StarRocks | 1 | 1 | ||
MongoDB | 1 | 1 | ||
Doris | 1 | 1 | ||
Kafka | 1 | 1 | ||
TDFS | 1 | 1 | ||
RocketMQ | 1 | |||
SqlServer | 1 | 1 | ||
Cassandra | 1 | 1 | ||
Oracle | 1 | 1 | 1 | 1 |
HiveMetaStore | 1 | 12 | ||
ElasticSearch | 1 | 1 | ||
DaMeng | 1 | 1 | 1 | |
MySQL | 1 | 1 | 1 | 1 |
AliyunODPS | 1 | |||
Hudi | 1 | 1 | ||
Clickhouse | 1 | 1 | ||
Postgres | 1 | 1 | 1 | 1 |