首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用Kettle进行数据同步(下)

上篇介绍了基于kettle的数据同步工程的搭建,entrypoint.kjb就是整个工程执行的入口。

为了进一步降低操作成本,让整个数据同步过程更稳定、安全,需要进行更高层面的抽象,做成一个简单易用的系统。

以下是应用截图:

除了选择数据源和数据库之外,还加入了授权码,意味着授权范围内的用户才能使用该系统。

因为是内部使用,授权用户还没实现后台管理,直接往应用数据库里添加,所选择的数据源和数据库都是通过配置文件生成的。

文末会附上GitHub上的源码地址,有需要的读者,可以进行二次开发改造。

一、数据库设计

数据库名称:kettle,目前有两张表:

1、授权用户表。表内记录的用户即可使用数据同步系统

2、同步记录表。记录用户的数据同步操作

二、程序设计

因为系统做得比较简单实用,没有什么特别设计之处。笔者重点说三点:

1、数据源及其参数配置

在application.yml配置文件中,有这么一段配置:

利用了springboot的@ConfigurationProperties的注解。

当中的DBSetting的定义如下所示:

通过客户端传来的参数,即可定位到对应的参数设置。

2、集成kettle的API

因为kettle相关的jar包放在了自己搭建的nexus私服上,所以如果使用的是maven管理jar包的话,需要在settings.xml配置文件中做一点修改:

其中的mirrorOf节点加上了!pentaho-releases,表示排除pentaho-releases。

然后,在springboot工程中的pom.xml中指定pentaho-releases的url。

接下来是核心的对接代码,具体可以参照工程源码。

3、异步执行作业

因为一个Job的执行时间可能会很长,这个主要是看数据量的多少,所以一个request的来回可能会导致TIMEOUT,所以需要改为异步的模式。

其核心的思想是:启动新的线程,客户端定时轮询执行结果。

三、总结

笔者分两篇文章介绍了如何利用kettle进行数据同步,并实现一个简易的系统,降低操作成本和出错率。

就介绍到这了,如有疑问,可以留言。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G1KXTO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券