Kettle-7.1-mongodb数据同步到RDBMS

2020-06-15 11:58:51 浏览数 (1)

0

仅供学习,未经允许严禁转载。

使用Kettle将数据从mongodb同步到RDBMS的配置方法。

本文中使用的kettle是7.1版本,大家可以点击这里下载。

1.kettle启动

kettle是基于JVM的所以大家只要有安装好的JVM解压后直接启动即可。这里推荐使用jvm8。

2.创建作业

右键,打开作业设置。 添加自定义属性文件路径my_properties,这个文件用于暂存从sqlserver中查出来的当前时间戳。

保存作业

3.一个简单的数据同步逻辑

这里说一下数据同步的一个简单逻辑。首先在mongodb的文档中增加字段时间戳。 1. 获取sqlserver表中最大的时间戳,如果为null则代表0; 2. 从sqlserver中删除此时间戳的所有数据; 3. 在mongodb中查询比此时间戳大的所有数据,并批量导入sqlserver;

4.创建获取当前最新数据时间戳

创建转换,此转换的目的是获取sqlserver表中最大的时间戳。然后做两个操作。1、把此时间戳保存在my_properties属性的文件中。2、删除sqlserver数据库中此时间戳的所有数据。

5.同步数据到sqlserver

创建转换,此转换的目的是从mongodb中抽取数据并同步到sqlserver中。

6.添加转换到作业中

总结

由于刚接触kettle,对其中的所有组件并没有完全了解。这里只说一下我了解到的一些。 1. 使用表输出组件的性能明显优于插入更新组件。 2. 这个作业中先是在转换1(获取当前已存游标并删除当前游标数据)中将max(time)计算出来放入了一个properties文件中,然后在紧跟的下一步作业中又将此值作为变量读出来。这里为了可以把流中的值当做变量在mongodb input 组件中使用。(如果有更好的方法请在此篇文章下给我留言) 3. 转换中的组件时同步执行的,作业中是顺序执行的。刚开始我想在一个转换中做完所有的事情,但是发现没法控制顺序,因此最终成为了这个样子。

0 人点赞