Releases: datavane/tis
Release v4.0.0
Abstract
TIS的v4.0.0
版本终于要与大家见面了,v4.0.0
在以下几方面进行了功能加强和升级。
发布报告:https://www.bilibili.com/video/BV1eD421V78u/
- flink及相关组件全面升级到1.18版本,flink-cdc升级到3.0.1,chunjun也做相应版本升级
- 单节点执行方式扩展为分布式,
利用powerjob将单点datax任务扩展为分布式执行方式,支持同一时间在分布式环境中多个datax任务并行执行,从而大幅提升数据同步管道的执行效率, 并且提供基于powerjob的crontab定时任务触发方式,完美支持T+1离线数据采集任务。 - 分布式执行基础上将TIS全面支持kubernetes的CloudNative的部署模式,支持私有云和各大公有云场景下的部署。
- 优化了部署流程,TIS内操作涉及长时间等待操作,例如,发布基于flink的流式计算任务,包括多个子过程,如编译、打包、发布、等待等环节,需要等待一段时间。在新版本中引入了发布流程可视化的机制,将各个步骤的执行状态直观展示给用户。
New Feature
- mongodb 数据源认证方式#311
- Flink K8S Cluster启动附加loadbalance service Flink JobMaster报WARN信息#310
- TIS 整体部署容器化部署方案#309
- 将flink-cdc的MySQL校验MySqlValidator.checkVersion前置#306
- 添加flink连接同步timeout#298
- 添加基于Flink-cdc 实现的 Postgresql source端实现#291
- 实时同步无法使用“批量创建“#284
- 为TIS 各种端提供图标显示支持#275
- 建议在批量构建功能中增加定时任务,可以实现datax的定时全量和增量同步#255
- [feature] 添加flink 实例一览页面#213
- 升级flink相关组件到最新版本#168
- 支持批量任务分布式执行#157
- 支持TIS Flink 在K8S上运行#156
- 离线T+1 怎么定时?#97
Bug Fix
- 管道创建流程中更改端类型会出错#312
- k8s application 模式下SQL模式执行flink Job 出错#308
- 无法识别VARBINARY类型的字段列#296
- 终止任务bug#294
- [tis-flink-cdc-postgresql-plugin] java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.time.Instant#293
- 写入clickhosue时自动建表bug#292
- FTP方式找不到对应匹配的文件#289
- mysql->doris 增量执行streamload出错#285
- 分库分表同步报找不到表#283
- 整库同步时个别表有json类型字段下游create table ddl报错#280
- plugin 进行校验过程中错误被遮蔽#277
- MySQL CDC Source 异常恢复消费位点异常#274
- flink rest api client 解析服务端返回的结果有类无法反序列化#268
Installation
- TIS Package 安装说明
- TIS Flink Standalone Package 安装说明
- TIS Zeppeline NoteBook Installation安装说明
Related Projects
Release v4.0.0-rc1
Abstract
TIS的v4.0.0
版本终于要与大家见面了,v4.0.0
在以下几方面进行了功能加强和升级。
- flink及相关组件全面升级到1.18版本,flink-cdc升级到3.0.1,chunjun也做相应版本升级
- 单节点执行方式扩展为分布式,
利用powerjob将单点datax任务扩展为分布式执行方式,支持同一时间在分布式环境中多个datax任务并行执行,从而大幅提升数据同步管道的执行效率, 并且提供基于powerjob的crontab定时任务触发方式,完美支持T+1离线数据采集任务。 - 分布式执行基础上将TIS全面支持kubernetes的CloudNative的部署模式,支持私有云和各大公有云场景下的部署。
- 优化了部署流程,TIS内操作涉及长时间等待操作,例如,发布基于flink的流式计算任务,包括多个子过程,如编译、打包、发布、等待等环节,需要等待一段时间。在新版本中引入了发布流程可视化的机制,将各个步骤的执行状态直观展示给用户。
Bug Fix
- 管道创建流程中更改端类型会出错#312
- k8s application 模式下SQL模式执行flink Job 出错#308
- 无法识别VARBINARY类型的字段列#296
- 终止任务bug#294
- [tis-flink-cdc-postgresql-plugin] java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.time.Instant#293
- 写入clickhosue时自动建表bug#292
- FTP方式找不到对应匹配的文件#289
- mysql->doris 增量执行streamload出错#285
- 分库分表同步报找不到表#283
- 整库同步时个别表有json类型字段下游create table ddl报错#280
- plugin 进行校验过程中错误被遮蔽#277
- MySQL CDC Source 异常恢复消费位点异常#274
- flink rest api client 解析服务端返回的结果有类无法反序列化#268
New Feature
- Flink K8S Cluster启动附加loadbalance service Flink JobMaster报WARN信息#310
- TIS 整体部署容器化部署方案#309
- 将flink-cdc的MySQL校验MySqlValidator.checkVersion前置#306
- 添加flink连接同步timeout#298
- 添加基于Flink-cdc 实现的 Postgresql source端实现#291
- 实时同步无法使用“批量创建“#284
- 为TIS 各种端提供图标显示支持#275
- 建议在批量构建功能中增加定时任务,可以实现datax的定时全量和增量同步#255
- [feature] 添加flink 实例一览页面#213
- 升级flink相关组件到最新版本#168
- 支持批量任务分布式执行#157
- 支持TIS Flink 在K8S上运行#156
- 离线T+1 怎么定时?#97
Installation
- TIS Package 安装说明
- TIS Flink Standalone Package 安装说明
- TIS Zeppeline NoteBook Installation安装说明
Related Projects
Release v3.8.0
Abstract
TIS的v3.8.0
版本终于要与大家见面了,v3.8.0
着重在以下几方面进行了功能加强和升级。
-
支持利用
Flink Checkpoint
恢复因意外宕机而中断的Flink Job任务用户运行的Flink Job 任务经常会因为各种原因导致意外停止,例如:机房断电等。如需要恢复中断的Flink
Job需要用户事先手动触发Savepoint存储来恢复。而机房断电属于不可预测事件,用户无法提前预测,所以只能对中断的Flink Job进行重新部署,这个流程特别费时,且之前保存的StateBackend也会丢失。因此,在TIS中提供了通过Flink Checkpoint机制来恢复Job的方式,用户只需要在部署Flink
Job过程中,开启Checkpoint机制、并设置持久化StatebackEnd,就可以方便恢复因意外中断的Flink Job任务。#224 -
与Doris最新版本的兼容性提升
使用Doris最新版本2.0.1与TIS兼容性优化,对
Sequence列模型
与批量删除
的设置体验进行优化,为用户提供整库导入Doris实现实时数仓方案提供了最佳技术手段。 -
提供TIS插件开发工具
随着TIS功能不断壮大,会有越来越多的开发者加入到TIS的生态构建中来。 TIS内部使用了微内核架构设计,践行OCP原则(对修改封闭,对新加功能开放),为了让用户愉快地加入到TIS生态构建中来,从
v3.8. 0
版本开始,会陆续提供一系列工具和技术分享文档,让用户可以独立地开发新的大数据集成插件,或者完善既有的TIS插件功能以满足自己的业务需求。新添加的插件参考文档:
-
Hive Reader 支持
T+1离线分析会将计算结果导入Hive的分布式文件系统中。本版本(v3.8.0)提供Hive Reader用户可以通过简单设置 将Hive中的数据导入到Doris、ElasticSearch、StarRocks、各种关系型数据库中。
-
重构 Aliyun OSS、FTP、HDFS
针对分布式文件端类型的支持,之前在TIS中对以上各种类型的数据端是各自实现的,但是在实现过程发现,每种数据类型都有压缩,数据Format(CSV、TEXT)的逻辑在需要重复实现,不同的仅仅是每种类型的文件流的获取方式。
在本版本(v3.8.0)中,将文件流获取的方式单独抽取出来,其他执行逻辑实现重用。这样有利于在TIS中对分布式式文件类型端的维护,也可大大简化今后在TIS中接入同类型数据端的复杂程度。#253 -
重构MongoDB Reader功能
- 支持MongoDB,多Collection选择,
- 针对MongoDB没有固定Schema的特性,TIS中加入了预判MongoDB Colection Scheam的功能,原理是预先从MongoDB
Collection中读取一定数量的记录数,TIS中会针对记录各Column值来猜测列类型,最终再由用户来确定类型进行微调。这样可以免去用户为MongoDB
Collection设置Schema的繁琐流程,从而大大提高部署效率。 - 针对MongoDB Collection的 提供给用户拆解Document类型的字段的途径、手段。可以将Document字段中的内容,打平、Sink到下游数据端中。
-
优化Kerberos认证支持
优化TIS中kerberos认证的支持,支持Hive、HDFS等数据端 #127
-
云原生方面的支持
支持Aliyun HDFS 的JindoFS类型的导入方式,通过 JindoFS类型的导入方式,性能比传统HDFS效率高3倍。
-
添加达梦数据库支持
支持在TIS中对达梦数据库批量读取,和批量/增量写入功能
Bug Fix
- [bug] elastic
java.sql.Timestamp
写入失败#272 - [doris] 类型com.qlangtech.tis.plugin.datax.seq.SeqKey转型错误#270
- mysql到mysql端实时同步问题,修改源表字段内容,目标表不会更新源表修改的内容,而是重新生成一条新的记录#267
- mysql_to_doris构建实时同步任务失败#261
- [bug]构建MySQL到StarRocks, Flink实时同步时,decimal-> 类型值为NULL#243
- [bug]目标端为StarRocks,目标端为MySQL内有 decmial 字段同步到 有误#242
- [BUG] hiveserver2连接配置数据库名无法携带参数#240
- [bug] doris create table DDL error with sequence_col#239
- [bug] Flink reserved key led to error 源数据库的表中存在flink保留字段,导致创建增量同步时异常#238
- [feat]希望可以删除界面无用的实例信息数据,避免干扰#237
- TIS Action执行失败 导致线程绑定资源没有被回收#236
- [bug] 使用flink-cdc的snapshot快照功能得到的date datatime类型的值有问题#232
- [mysql->doris] debezium中连接 mysql8服务端报 #203
- FTP Source map to MySQL create table DDL error#151
Others
- 替换Doris DDL Date 类型#266
- Clickhouse 执行全量数据同步初始化数据表出错#258
- 添加MongoDB数据源报错,MongoDB版本号为5.01.2#254
- 支持利用checkpoint来恢复(restore)Flink job#229
New Feature
- Doris增量实时通道主键设置流程去除#265
- 支持达梦数据库读写支持#262
- FTP、OSS、HDFS统一成T-DFS#253
- [feat] 实现CSV文档Sink写入#241
- [feat] SinkTabPropsExtends 主键候选列修改#235
- [feat] 提供TIS 插件开发者工具#233
- 支持doris sequence列模型#230
- [feat]Flink任务由于机房停电长时间宕机再次启动丢失数据#224
- [feat]增量实例需要添加一个 刷新按钮#220
- 实现一个hive Reader插件#201
- [bug]添加sql server数据源,校验失败#186
- upgrade fastjson version for security issue#152
- [SUPPORT] 希望连接hdfs和hive等组件支持kerberos认证#127
Installation
- TIS Package 安装说明
- TIS Flink Standalone Package 安装说明
- TIS Zeppeline NoteBook Installation安装说明
Related Projects
Release v3.7.2
Abstract
TIS的v3.7.2
版本终于与大家见面了,v3.7.2
在v3.7.1
之上作了几处小修改
Bug Fix
- mysql=>hive全量同步,校验hive数据源报错#223
- 构建MySQL到StarRocks, Flink实时同步时,timestamp->datetime类型值为NULL#222
- [bug] MySQL -> ElasticSearch 源表过大DataX 批量导入直接卡死#221
New Feature
Installation
- TIS Package 安装说明
- TIS Flink Standalone Package 安装说明
- TIS Zeppeline NoteBook Installation安装说明
Related Projects
Release v3.7.1
Abstract
TIS的v3.7.1
版本终于要与大家见面了,v3.7.1
着重在以下几方面进行了功能加强和升级。
-
TIS与Apache Zeppelin无缝整合
Apache Zeppelin 是一款让交互式数据分析变得可行的基于网页的开源框架。Zeppelin提供了数据分析、数据可视化等功能。经过与TIS无缝整合之后,用户可以在TIS中方便观测各数据源
中数据的状态。TIS中安装及使用Zeppelin说明 -
重新整理TIS中离线调度功能
目前TIS中支持的离线调度引擎为Spark,Hive,AliyunODPS,用户可以一站式地在TIS中抽取数据,并且通过离线分析引擎进行
T+1
数据分析操作
,详细请查看 -
支持用户在数据库系统中采用分表策略
生产环境中使用分表策略是DBA经常使用的应对海量数保存的一种方法,在本版本中以优雅的方式支持物理分表合并导入目标数据端,
详细请查看 -
添加Kafka Sink Connector插件
添加Kafka Sink Connector插件,支持canal和debezium两种格式,#179, 另外修改了flink的flink-json模块
在消息体中添加了source表名和生成记录的时间戳 qlangtech/flink@9844b37
Bug Fix
- [bug]After the ftp synchronization doris task is successfully created, an error message is displayed if you click the Generate script#211
- [bug]ftp file data synchronization doris error#207
- 通过插件池安装tis-hive-plugin失败#200
- 希望能提供一下mysql-SR没有主键不能建立实时通道的问题,辛苦了。#198
- 3.7 mysql 实时任务到 es有bug ,任务编译不了#194
- [Oracle->Doris] Chunjun Source 实时同步异常#192
- [mysql->doris]JdbcInputFormat.getMaxValueFromDb Faild And Instantiation classLoader of Source Flink-CDC-MySQL Faild#184
- mysql synchronize clickhouse#182
- mysql -> elastic 增量同步增量脚本生成出错#178
- MySQL -> Doris 实现增量通道分区表增量通道出错#176
- mysql->doris BIGINT(20) UNSIGNED 类型映射 失败#175
- oracle-> starRocks 增量实时脚本生成有误#173
- 当源表有选取部分列同步,开启flink 增量同步会出错#170
- Flink Server side JM TM启动 classloader 初始化并发异常#169
- Mysql Writer datasource selection faild#106
New Feature
- TIS 中支持阿里云 odps导入及基于MaxComputer的离线数据分析#183
- The save path of StreamUberJar shall be changed#180
- 增加 source & sink 端kafka#179
- starRocks Sink 端改造层chunjun类型的端#174
- add control flag startNewChain when use flink-cdc as Stream Source#164
- 实现TIS与Zeppling的整合弥补TIS在数据可视化方面的短板#161
- 实现数据通道删除功能#158
- 同库相同表结构表名不一样的表无法写入到相同的一张目标表#150
- 希望TIS 支持删除实例,目前实例只能新增#122
- Assemble节点中Dag调度并发度控制#119
Installation
- TIS Package 安装说明
- TIS Flink Standalone Package 安装说明
- TIS Zeppeline NoteBook Installation安装说明
Related Projects
Release v3.6.0
Abstract
经过几个月时间的开发TIS的v3.6.0
版本终于要与大家见面了,v3.6.0
着重在以下几方面进行了功能加强和升级。
-
对Apache Hudi Sink
- 主键模型重新进行抽象,已经完全和Apache Hudi 主键模型匹配。
- 为了支持Hudi能够支持三方包多版本多依赖,在TIS插件池中引入了
插件多版本依赖
,具体来说,在运行时可以选择Hudi版本所依赖的不同Hadoop依赖版本目前TIS中Hudi可以选择 Hadoop 2.7或者 Hadoop3.0。 - 另外为云端用户加入了KerberOS设置项,使用大数据组件中为了网络安全需要,用户往往需要为组件访问开启KerberOS认证功能,为了简化添加该认证机制流程,3.6.0中添加了开启KerberOS认证功能
-
引入 Chunjun 来完善TIS Source/Sink 的端覆盖面 #139,
在TIS的生态中以MySQL为例,如需以MySQL作为Source端,用户可以根据自身业务特点,可以选择 基于 Flink-CDC MySQL 插件或者基于 Chunjun 基于polling 策略实现的插件,两种插件各有特点,至于选择使用那种就取决于使用者自己的判断了。临近发布发现一个很有意思的使用场景,那就是用户可以选择基于Flink-CDC实现 MySQL插件来监听MySQL 表的增量变更来将数据同步到以 Chunjun 构建的 Sink端中去,这样的混搭使用方式给用户带来了更多的选择自由度,也避免了
在Flink-CDC和Chunjun各自的框架内部重复造轮子从而造成生态内卷。 -
完善各个端(Source/Sink)的单元测试,由于添加到TIS生态中的数据端(Source/Sink)逐渐增多,每次发布无法通过人肉的方式把所有的端功能回归
一遍,因此在v3.6.0
版本中通过引入testcontainer将各中数据库进行Stub化,最大限度保证每次发布功能稳定。
Bug Fix
- Oracle table column NUMBER(11,0) mapper to MySQL error#166
- mysql -> doris Flink 实时同步 出错#162
- postgresql作为Writer source的bug#149
- MySQL8 的Chunjun Source 执行datetime类型的数据映射出错#148
- 定义Oracle数据源过程使用ServiceName连接方式导致找不到表#147
- DataX 执行过程中,出错日志信息写入到了tis.log 中,没有打印到控制台执行日志中#146
Others
- 通过querySql中where条件实现增量抽取,flink 脚本支持SQL并且让用户自行修改#160
New Feature
Installation
Related Projects
Release v3.6.0-alpha
Abstract
经过几个月时间的开发TIS的v3.6.0
版本终于要与大家见面了,v3.6.0
着重在以下几方面进行了功能加强和升级。
-
对Apache Hudi Sink
- 主键模型重新进行抽象,已经完全和Apache Hudi 主键模型匹配。
- 为了支持Hudi能够支持三方包多版本多依赖,在TIS插件池中引入了
插件多版本依赖
,具体来说,在运行时可以选择Hudi版本所依赖的不同Hadoop依赖版本目前TIS中Hudi可以选择 Hadoop 2.7或者 Hadoop3.0。 - 另外为云端用户加入了KerberOS设置项,使用大数据组件中为了网络安全需要,用户往往需要为组件访问开启KerberOS认证功能,为了简化添加该认证机制流程,3.6.0中添加了开启KerberOS认证功能
-
引入 Chunjun 来完善TIS Source/Sink 的端覆盖面 #139,
在TIS的生态中以MySQL为例,如需以MySQL作为Source端,用户可以根据自身业务特点,可以选择 基于 Flink-CDC MySQL 插件或者基于 Chunjun 基于polling 策略实现的插件,两种插件各有特点,至于选择使用那种就取决于使用者自己的判断了。临近发布发现一个很有意思的使用场景,那就是用户可以选择基于Flink-CDC实现 MySQL插件来监听MySQL 表的增量变更来将数据同步到以 Chunjun 构建的 Sink端中去,这样的混搭使用方式给用户带来了更多的选择自由度,也避免了
在Flink-CDC和Chunjun各自的框架内部重复造轮子从而造成生态内卷。 -
完善各个端(Source/Sink)的单元测试,由于添加到TIS生态中的数据端(Source/Sink)逐渐增多,每次发布无法通过人肉的方式把所有的端功能回归
一遍,因此在v3.6.0
版本中通过引入testcontainer将各中数据库进行Stub化,最大限度保证每次发布功能稳定。
Bug Fix
- MySQL8 的Chunjun Source 执行datetime类型的数据映射出错#148
- 定义Oracle数据源过程使用ServiceName连接方式导致找不到表#147
- DataX 执行过程中,出错日志信息写入到了tis.log 中,没有打印到控制台执行日志中#146
- TIS启动时访问 https://mirror.qlangtech.com/.../default.json 超时#145
- error of create ftp source that is sink to mysql#143
- mysql同步clickhouse,字段大写导致映射字段重复#141
- mysql增量同步clickhouse部署异常#140
- [clickhouse] mysql-> clickhouse 使用k8s 集群同步方式#134
- [hudi]hudi DeltaStreamer 执行过程中tpi包并发修改出错#133
- spark sql查询批量同步生成的hudi分区表会报错,而hive和presto查询正常#131
- TIS平台自身的MySQL连接URL要加 useSSL=false 参数#130
- MySQL增量同步到clickhouse带有dateTime字段存在问题#116
- mysql8同步到es7.9.3版本date字段缺失"format"属性配置#114
- CUDCDCTestSuit 单元测试assert阶段定义的 TIME 类型 从flink RowData取出早8个小时#22
New Feature
- [feat] add to sink/source connector for customized selected tab properites#144
- 利用Chunjun添加新的Source/Sink支持#139
- 重构tis.pub文档结构#138
- 去除tis-solrj-client 模块依赖#137
- [starrocks][2.2版本] [兼容需求]sr从1.8版本升级到2.2后tis工作不正常需要tis调整对应的writer#132
- [Hudi] keyGenerator可视化配置完善#128
- [Clickhouse Sink] 目前不支持Delete 删除功能 #125
- sink-starrocks 字段与对端校验不一致#113
- TIs mysql的sink端插件暂未支持#110
- 支持DDL同步列注释自动添加#91
Supported Source/Sink
https://tis.pub/docs/plugin/source-sink
Installation
-
TIS Package
wget https://tis-release.oss-cn-beijing.aliyuncs.com/3.6.0-alpha/tis/tis-uber.tar.gz
-
TIS Flink Standalone Package
安装说明wget https://tis-release.oss-cn-beijing.aliyuncs.com/3.6.0-alpha/tis/flink-tis-1.13.1-bin.tar.gz
Related Projects
v3.4.0
v3.3.0
v3.3.0本版本修复以下功能点:
- 新建mysql 数据源的时候,数据库名称有规则约束,导致数字开头的数据库名无法新建成功
- TiDB dataX 任务执行,源数据列中如果有空值会抛异常
- mysql to starrocks 表结构变更之后,支持批量重新生成StarRocks 中ddl sql #58
- postgreSql数据源设置支持自定义schema,并且将jdbc驱动升级到42.3.1
- 数据库名已经支持大写、以数字或者下划线开头
- 自定义dataX配置、SQL ddl编辑,页面异常
- 支持Reader为MySQL json数据类型的字段
- remove zookeeper dependency in deploy mode of standalone
- mysql->starrock中支持 增、删、改的实时同步
- 选择同步表的时候,需要每个表勾选所有字段,如果表多,操作起来很麻烦,希望这块加一个批量的全选按钮
v3.2.0
modfiy readme content