1.利用Kettle进行数据同步(下)
利用Kettle进行数据同步(下)
上篇内容对基于kettle的源码数据同步工程的构建进行了介绍,entrypoint.kjb作为工程执行的下载入口。
为了减少操作成本,源码并确保数据同步过程稳定、下载安全,源码需要从更高层次进行抽象,下载寻仙源码架设创建一个简单易用的源码系统。
以下是下载应用截图:
除了选择数据源和数据库,还增加了授权码,源码意味着只有授权范围内的下载用户才能使用该系统。
由于是源码内部使用,授权用户尚未实现后台管理,下载直接在应用数据库中添加,源码买卖指标源码选择的下载数据源和数据库都通过配置文件生成。
文末会提供GitHub上的源码源码地址,有需要的读者可以进行二次开发。
一、数据库设计
数据库名称为kettle,目前包含两张表:
1、网络电视源码授权用户表。表中记录的用户可以使用数据同步系统。
2、同步记录表。记录用户的数据同步操作。
二、php精品源码程序设计
系统简单实用,没有特别的设计。以下是重点说明的三点:
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进行数据同步,并实现一个简易的系统,以降低操作成本和出错率。
介绍到此,如有疑问,请留言。
欢迎fork我的工程代码。