datavane / tis

Support agile DataOps Based on Flink, DataX and Flink-CDC, Chunjun with Web-UI
https://tis.pub
Apache License 2.0
1.04k stars 221 forks source link

优化TIS Flink实时增量通道启动速度 #366

Closed baisui1981 closed 1 month ago

baisui1981 commented 1 month ago

现象

有同学反馈TIS增量启动速度比较慢,一百张表的增量执行管道需要将近20分钟。

以下是启动执行日志链接:https://github.com/qlangtech/plugins-commercial/issues/1

问题分析:

根据典型的日志:

2024-09-26 21:01:20 WARN  c.qlangtech.tis.plugin.PluginStore- target xstream file is not exist:/home/sysadm/tis-uber/data/cfg_repo/tis_plugin_config/ap/ZF_MySQL_SR_ALL/com.qlangtech.tis.plugin.datax.SelectedTabExtend_batch.xml
2024-09-26 21:01:25 INFO  c.q.t.p.ds.BasicDataSourceFactory- tabmeta:PRI_COT_PAK_COTLOOK,colsSize:7,cols:CURDATE,COT_YEAR,PRODUCT_AREA,TYPE,NUMS,CREATE_TIME,UPDATE_TIME

下面那条通过表名获取对应的列元组信息,需要耗费5秒 时间,这个算比较耗费时间的,主要原因是:创建jdbc Connection对象费时,且没有使用dbcp的connection pool来缓存,所以当需要同步的表比较多时的确会比较耗时

优化思路:

在整个启动过程中,引入Connection缓存机制,将对应构建jdbcURL->Connection的 映射关系作为缓存。启动过程只需要构对Connection实例进行一次初始化工作,将会大大缩减启动初始化时间。

baisui1981 commented 1 month ago