ucarGroup/DataLink
DataLink是一个满足各种异构数据源之间的实时增量同步、离线全量同步,分布式、可扩展的数据交换平台。
5 Releases
Latest: 6y ago
V1.0.2-betaLatestPre-release
📦 重要功能新增
- 开源全量同步子系统
- 基于阿里datax进行封装改造,并提供基本的配置管理功能
- 支持手动管理任务,也支持配置定时任务
- 提供服务接口,支持外部系统启动、停止任务等操作
📦 一些事项说明
- 1. 此次开源的新功能,保证大部分功能可用,但因精力有限,主要目标还是供参考学习和抛砖引玉
- 2. 因工作量较大,新开源的代码,一些细节没有调整完,源码中的flinker和datax,请统一理解为flinker
- 3. 增量子系统进行了一些优化和小的bug修复,可放心使用
V1.0.1-betaPre-release
🐛 相关bug修复
- 1. 修复了FastJson报AutoType无法识别的问题
- 2. 修复了mapper-task.xml文件中的部分sql语法错误
- 3. 调整了表t_dl_sys_properties中properties_key列的长度
📦 如何升级
- 1. 如果是从0.x升级到1.0.1-beta,直接执行如下升级sql,可无缝升级到新版本,[升级Sql](https://github.com/ucarGroup/DataLink/blob/master/dl-biz/src/main/resources/biz/sql/0.0.2%E5%8D%87%E7%BA%A7%E5%88%B01.0.0_%E5%A2%9E%E8%A1%A5.sql)
- 2. 如果是从1.0.0-beta升级到1.0.1-beta,执行如下sql即可,ALTER TABLE `t_dl_sys_properties` MODIFY `properties_key` VARCHAR(30);
V1.0.0-betaPre-release
📦 重要功能新增
- 1. 新增kudu-writer插件
- 2. 新增kafka-writer插件
- 3. 对Task新增两个维度的监控
- 支持TaskBusyStatus监控,当Task在Writer端出现卡死情况时,系统可监控预警,参见类:[TaskSyncStatusManager](https://github.com/ucarGroup/DataLink/blob/master/dl-worker/dl-worker-core/src/main/java/com/ucar/datalink/worker/core/runtime/TaskSyncStatusManager.java)
- 新增Task轨迹查看功能:精确查看在不同时间段Task执行所在的Worker机器,便于排查问题,参见类:[TaskTraceMonitor](https://github.com/ucarGroup/DataLink/blob/master/dl-manager/dl-manager-core/src/main/java/com/ucar/datalink/manager/core/monitor/impl/TaskTraceMonitor.java)
- 4. 对es-writer插件进行了升级
- 支持routing方式的同步,配置映射时可指定routing字段
- 列名前缀支持可配置,参见类:[EsMappingParameter](https://github.com/ucarGroup/DataLink/blob/master/dl-domain/src/main/java/com/ucar/datalink/domain/plugin/writer/es/EsMappingParameter.java)
- + 5 more
📦 重要功能优化
- 1. 对rdbms-writer插件进行了优化
- 支持自增列不是主键情况下的同步,参见类:[SqlBuilder](https://github.com/ucarGroup/DataLink/blob/master/dl-worker/dl-worker-writer-rdbms/src/main/java/com/ucar/datalink/writer/rdbms/handle/SqlBuilder.java)
- 支持更新时不仅更新发生变更的列,还能更新所有列,参见类:[RdbmsWriterParameter](https://github.com/ucarGroup/DataLink/blob/master/dl-domain/src/main/java/com/ucar/datalink/domain/plugin/writer/rdbms/RdbmsWriterParameter.java)
- 2. 对hdfs-writer插进行了优化
- 对HRecord数据类型增加参数binlog_eventtime,以支持对同一rowkey去重
- 调用其它Worker释放租约时,url中的端口调整为动态获取,参见类:[RemoteUtil](https://github.com/ucarGroup/DataLink/blob/master/dl-worker/dl-worker-writer-hdfs/src/main/java/com/ucar/datalink/writer/hdfs/handle/stream/RemoteUtil.java)
- 3. 对hbase-writer插件进行了优化
- 同步时,family列族名称支持自定义,参见类:[HBaseMappingParameter](https://github.com/ucarGroup/DataLink/blob/master/dl-domain/src/main/java/com/ucar/datalink/domain/plugin/writer/hbase/HBaseMappingParameter.java)
- + 4 more
📦 其它优化调整
- 1. 升级zkclient版本到0.10
- 2. 升级mysql驱动到8.0.11
- 3. 升级canal版本到1.1.3
- 4. 升级druid版本到1.1.16
- 5. 增加页面操作日志审计功能,可对关键操作进行行为审计
- 6. 分组管理页面增加强制触发Reblance功能
- 7. 同一个Task下,支持某张表同时同步到同一个目标DB的不同表(之前版本不支持)
📦 如何升级
- 1. 执行如下升级sql,可从旧版本,无缝升级到新版本,[升级Sql](https://github.com/ucarGroup/DataLink/blob/master/dl-biz/src/main/resources/biz/sql/0.0.2%E5%8D%87%E7%BA%A7%E5%88%B01.0.0_%E5%A2%9E%E8%A1%A5.sql)
V0.0.2
📦 重要变更:
- 1、完善PositionManager的位点管理机制,解决一个极端情况下数据丢失的bug
- 2、Mysql位点信息完善,调整firstEntryTime的获取方式
- 3、AbstractHandler调整线程池策略
- 4、优化Goup模式下的心跳频率
- 5、EsWriter插件,支持HBase类型的数据同步到ES
🐛 小需求&bugfix:
- 1、配置文件中的ucar_datalink数据库密码兼容明文,密文/明文均可#5
- 2、sh脚本格式由CRLF改为LF #10
- 3、DataSourceFactory、HTableFactory增加移除监听来关闭连接,避免数据库连接数过多
- 4、sqlserver-writer支持“有自增列且自增列不是主键”的情况
- 5、RDBMSMapping类型转换的bug修复
V0.0.1
DataLink开源初始版本
