搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
技术学习(版主发帖区)
›
大数据学习
›
实操演练
›
kettle实现从mongo增量到Postgresql
0
1
2
分享
kettle实现从mongo增量到Postgresql
J20_果农
2016-10-2 00:54:41
发表于
实操演练
[显示全部楼层]
只看大图
阅读模式
关闭右栏
1
22425
本帖最后由 J20_果农 于 2016-10-2 16:15 编辑
总体实现:
需要创建一个作业 j_test_d, 两个转换T_增量临时数据_D, T_增量至PG数据表_D,在j_test_d中设置两个用于接收开始日期和结束日期的参数dt1, dt2
加载策略: 按主键删除后增量追加记录
创建步骤:
1.首先创建转换 T_增量临时数据_D
mongo控件详细设置
设置连接mongo的 IP 和 端口号
设置mongo数据库名,集合名
设置查询条件(这里取前一天的日期)
获取mongo文档中的数据
字段选择中获取所有字段,根据需要可将里面的字段转换成不同类型,如字符串转int
表输出详细设置
转换中输出日志的设置
运行转换, 在弹出的运行界面变量栏中输入dt1, dt2 并输入对应的日期,确定
运行成功后,效果如下:
到这一步,就完成了从mongo 中抽取增量数据到postgresql 临时表中。
在这里讲一下平时开发过程中数据为什么先加载到临时表,而不是直接加载到test1中。
这是因为我们采用的加载方式是先按主键删除后追加增量记录,所有处理过程必须先删除test1中的主键
而删除test1中的主键数据如果直接从mongo直接传过来,作为删除test1表里面的条件参数这样的话kettle实现过程速度特别慢
主要原因是1.kettle传参数的处理只能一行一行执行,比批量删除慢很多。2.垮库之间网络传输也会影响速度
而采用先将数据加载到临时表,删除主键时,即可以实现批量删除,又避免了垮库造成的网络耗时。
下一步将实现从临时表把数据灌入到表test1中实现最终的数据增量加载
2.创建转换 T_增量至PG数据表_D
删除主键脚本设置:
表输入设置
表输出设置
3.创建一个运行作业,将两个转换串行起来执行
给作业设置参数
在这里设置参数,一般是在kettle服务器端linux系统上使用shell调用kitchen脚本时,传给kettle参数用的
下面本地执行,手工输入日期参数值,运行
运行结束
本帖被以下淘专辑推荐:
·
大数据
|
主题: 906, 订阅: 9
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(1)人评论
电梯直达
正序浏览
haibo18
发表于 2016-10-2 11:05:53
感谢楼主分享
回复
使用道具
举报
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
最佳新人
积极上进,爱好学习
热心会员
经常帮助其他会员答疑
发表新帖
J20_果农
实习版主
关注
12
主题
26
帖子
2
粉丝
TA的主题
flume1.7 sink 到es5.5.2 报错问题
2017-8-24
大家使用spark实现ETL的使用方式有哪些?
2017-6-29
spark DataFrame 通过JDBC把数据插入oracle 报错!
2017-5-11
当流量增大的情况下,Flume提示警告信息问题
2017-4-7
flume taildir source 问题
2017-3-24
24小时热文
矩阵分析引论罗家洪(第四版)
互联网大厂年终福利曝光:看看别人家老板怎
像高手一样发言:七种常见工作场景的说话之
携程允许员工春节回乡办公2个月
数据治理实施方案
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈