基于DataX的TIS数据抽取组件

数据抽取(Extraction)架构

TIS的愿景是实现企业大数据ETL(Extraction-Transformation-Loading)全覆盖的中台产品,数据抽取(Extraction)是大数据处理所有环节中的第一步,也是最重要的环节。最新版本的TIS数据抽取组件是基于Alibaba DataX实现的, 并且在原生DataX之上添加了功能特性大大提交了DataX的可用性

视频示例

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语句。

支持HiveSpark表自动创建,自动添加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

类型
数据源
Reader(读)
Writer(写)
RDBMS 关系型数据库MySQL
Oracle
SQLServer
PostgreSQL
DRDS
TiDB
ClickHouse
阿里云数仓数据存储ODPS
ADS
OSS
NoSQL数据存储OTS
Hbase0.94
Hbase1.1
Phoenix4.x
Phoenix5.x
MongoDB
Hive
Spark
Cassandra
无结构化数据存储TxtFile
FTP
HDFS
Elasticsearch
时间序列数据库OpenTSDB
TSDB

联系我们

钉钉讨论群

使用过程中有任何问题请随时联系我们