前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kettle-7.1-mongodb数据同步到RDBMS

Kettle-7.1-mongodb数据同步到RDBMS

作者头像
cosmozhu
发布2020-06-15 11:58:51
1.2K0
发布2020-06-15 11:58:51
举报
文章被收录于专栏:cosmozhu技术篇

0

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

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

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

1.kettle启动

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

启动kettle
启动kettle

2.创建作业

创建作业
创建作业

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

作业设置
作业设置
创建开始节点
创建开始节点

保存作业

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

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

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

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

转换1
转换1
表输入
表输入
配置文件输出
配置文件输出
删除
删除

5.同步数据到sqlserver

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

转换2
转换2
查询mongodb1
查询mongodb1
查询mongodb2
查询mongodb2
查询mongodb3
查询mongodb3
表输出
表输出

6.添加转换到作业中

作业
作业
设置变量
设置变量

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.kettle启动
  • 2.创建作业
  • 3.一个简单的数据同步逻辑
  • 4.创建获取当前最新数据时间戳
  • 5.同步数据到sqlserver
  • 6.添加转换到作业中
  • 总结
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档