kettle 数据同步使用记录

最近工作中,需要设计数据同步方案,​调研了很多种方法。比如 SQL Server 事务复制、fine data link、SQL Server 第三方同步软件、pentaho kettle、SQL Server SSIS​ 等等。数据同步需要考虑以下几点:

  • 尽量不动生产数据库:这一点 SQL Server 事务复制淘汰。

  • 实时与定时​:实时同步 SQL Server 原生功能最可靠​;而且涉及到实时同步需要​改动原生数据库开启CDC数据捕获,其余方案都需要 kafka 等消息队列软件与第三方软件结合。

  • 全量与增量:数据量在一万以下​全量同步;在一万以上,需要考虑增量同步,毕竟单表有的是10G大小。增量同步​又要考虑来源表是否是增删改,还是只增​;以及目标表是否有增删改问题。

最终选择基于 pentaho data integration(kettle) 开源软件方案,能够较为完美实现数据同步方案的要求。

记录其中使用过程​中的问题。

峰回路转,单个表输入输出原来这么强大

一开始我以为同步需要分页,原来我以为kettle 中“提交记录数量”为2000,就是一次提交量。害得我花了很长时间考虑如何分页、分页后的数据对比、增量同步。看到别的文章才知道 “提交记录数量”是在一次事务中提交的数量。我自己设计的分页输入输出,20分钟才能完成,今天早上测试了一个60多万条数据的单表,大小为600mb,不到一分钟就完成了。
在这里插入图片描述

分页问题让我调了一晚上

我在分页查找数据的时候,使用 order by create_date,不知道为啥结果复制老是在500万条数据中差3条数据。终于在尝试多次后使用 id 排序,才能一条不差的完成。
在这里插入图片描述
在这里插入图片描述

kettle 软件还是非常强大的​,而且基于 Java 开发很容易配置、调试​,而且跨平台。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值