kettle基本操作4:使用日期字段增量数据同步

news/2025/10/22 14:55:11/文章来源:https://www.cnblogs.com/shengqin/p/19157849

0.前言

两个数据库表之间使用日期(Date或timestamp)字段进行增量同步,是ETL操作的基本操作(本文举例的源表数据只新增不删除不修改的情况),最简单的步骤如下:

  • 获取目标表时间戳字段的max值;
  • 获取源表时间戳字段的max值;
  • 比较确认源表的时间要大于目标表,否则同步没有意义;
  • 根据目标表的时间戳字段获取源表的数据并写入至目标表;

1.主作业

主作业工作流如下图所示,这里使用变量的方式进行日期字段的传递。
image

以下逐个组件进行说明:

1.1 设置变量

这里将源表、目标表的最大时间戳字段先申明为变量:TARGET_MAX_DATE、SOURCE_MAX_DATE,注意变量的有效范围。
image

1.2 获取目标表的最大日期

  • 这个转换只有两个组件,从“表输入”组件获取目标表的最大时间戳,但这里要注意日期格式的转换。
    image

  • 表输入的SQL语句如下,我目标表是MySQL:

SELECT DATE_FORMAT(max(RUN_DATE), '%Y-%m-%d %H:%i:%s.%f') as target_max_month
FROM sasrep.rp_xxx
  • “设置变量”组件的配置比较简单,如下图:
    image

1.3 获取源表的最大日期

  • 这个转换的设置与上述“获取源表的最大日期”的转换没有什么大的差别,但我源表是DB2,取数的SQL如下:
SELECT VARCHAR_FORMAT(max(RUN_DATE), 'YYYY-MM-DD HH24:MI:SS.FF6') as source_max_month 
FROM SAS.rp_xxx
  • “设置变量”的组件配置如下图:
    image

1.4 写日志-变量赋值检查

  • 在设置好变量后,这里通过写日志的方式做一个简单的检查,看变量是设置成功,因为我本人因为变量名拼写问题,老是没有设置变量成功,故将写日志作为调试的手段之一,日志的设置如下图所示:
    image

1.5 日期比较

  • 这里使用了javascript脚本来检查目标表的max日期是表比源表max日期要小,这里要注意kettle的js脚本返回结果是布尔类型的,完整javascript代码如下所示:
var target_max_date = parent_job.getVariable("TARGET_MAX_DATE");
var source_max_date = parent_job.getVariable("SOURCE_MAX_DATE");
target_max_date < source_max_date ;

上述返回结果的条件为true则正常数据同步,如果为false则中止同步。

1.6 增量读取原表记录并写目标表

  • 这个转换只有“表输入”、“表输出”两个组件,以下是表输入组件的设置:
    image

  • 以下是表输出组件的设置,建议将批量提交的记录调大一些
    image

1.7 写日志-日期比较结果

如果在“日期比较”节点的结果为false,再通过节点写日志,没这个节点问题也不大。
image

2.总结

以上就是通过日期字段进行增量同步的简单kettle工作流,但实际生产会比较复杂,注意事项如下:

  • 上述只适用源表只新增无删除无更改的情况,且在同步作业时不会新增数据,生产时,最好回写“已读取”的标志;
  • 由于通过日期获取源表数据时,日期的format是固定的,获取max日期时注意转换合适的字符串;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/943374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

冰川之国破例:冰岛首次发现蚊子,气候变化敲响警钟

冰川之国破例:冰岛首次发现蚊子,气候变化敲响警钟一向以“无蚊之国”著称的冰岛,其纯净的生态系统纪录近日被打破。冰岛大学与自然资源保护局的科学家团队本周联合证实,在冰岛境内首次发现并捕获了活的蚊子个体。这…

成语趣有奖微信小程序管理系统:趣味与变现兼具的优质选择

一、概述总结 “成语趣有奖” 是一款以成语闯关为核心玩法的微信小程序,由谷喵网络开发并在微擎应用商城上线。该小程序将经典的成语知识问答与趣味闯关模式相结合,同时融入金币奖励、奖品兑换及流量主广告变现等功能…

2025 年钛棒厂家最新推荐权威榜单:深度解析国内头部厂家国际市场开拓成绩及产品优势钛螺丝/加工件/医用/合金/异形件钛棒厂家推荐

随着全球工业升级加速,钛棒凭借高强度、耐腐蚀等特性,在航空航天、石油化工、医疗等领域需求激增,国际市场成为国内钛棒厂商的重要增长极。但当前国际市场存在标准不统一、贸易壁垒多、区域需求差异大等问题,许多厂…

掌门社交电商系统:赋能本地生活的三方共赢新生态

一、概述总结 掌门社交电商系统是一款深耕本地生活服务领域的专业化解决方案,依托微擎系统构建核心架构,聚焦本地活动折扣资源的整合与运营。其核心价值在于打造 “商家拓客、用户受益、平台获利” 的三方共赢模式,…

就餐宝微信小程序:重塑企业食堂管理新生态

一、概述总结 就餐宝是一款专为企业食堂量身打造的智能化管理小程序,聚焦食堂物料节省与就餐流程优化,通过数字化手段实现就餐全流程的规范化管理。该系统采用多端协同设计,涵盖总后台、分后台、员工小程序入口和食…

2025 年度茶叶行业优质厂家权威榜单:最新推荐全解析,小青柑 / 普洱等好茶选品指南

引言 茶叶市场正迎来新旧品牌交替的活跃期,既有老字号坚守品质,更有近五年崛起的新品牌以创新破局,但乱象同样凸显:原料产地模糊、工艺标准缺失导致品质参差不齐,消费者难辨优劣;采购商面对海量品牌,核实资质与…

MySQL的三大日志redolog,binlog,undolog

MySQL 的三大核心日志:redolog(重做日志)、binlog(二进制日志) 和 undolog(回滚日志),以及它们在事务处理和数据恢复中的作用。以下是要点汇总:🧱 redo log(重做日志)属于 InnoDB 存储引擎,用于崩溃恢复…

卸载 macOS 上所有版本的 Python

卸载 macOS 上所有版本的 Python卸载 macOS 上所有版本的 Python 彻底卸载 macOS 上所有版本的 Python(包括系统自带的、Homebrew 安装的、手动安装的等)。 ⚠️ 注意:macOS 自带的 Python 2.x 或 3.x 系统依赖它,…

如何解除百度网盘下载限速

如何解除百度网盘下载限速如何解除百度网盘下载限速?今天就教一下大家最新的方法。这个方法下载速度绝对能惊艳你。下面就让你看看我测试的速度把这个速度怎么样?还不错把。下面我就教一下大家打开我说的方法你会看到…

分布式专题——33 一台新机器进行Web页面请求的历程 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

开源隐私计算框架SecretFlow | 基于隐语的金融全链路场景介绍和应用实践

打开链接点亮社区Star,照亮技术的前进之路。每一个点赞,都是社区技术大佬前进的动力Github 地址: https://github.com/secretflow本文根据蚂蚁集团隐私计算产品专家 陈步华,在「隐语城市行成都站 X 蓉数大讲堂」的…

2025 最新智能卫浴镜厂家推荐榜单:家装酒店工装优选,除雾语音多功能品牌权威盘点多功能/语音/蓝牙/led/带灯智能卫浴镜厂家推荐

在智能家居渗透率持续攀升的当下,智能卫浴镜已成为家装、酒店及工装场景的品质之选,其融合的除雾、照明、语音交互等功能极大提升了使用体验。但市场涌入大量品牌后,劣质产品频现 —— 部分产品采用普通银镜导致短期…

win11暂停更新

参考链接:https://zhuanlan.zhihu.com/p/1959940583482172602

2025 年陶土砖生产厂家最新推荐权威榜单:劈开/红色/干挂/砌筑/仿古/透气/耐火/异型/装饰/外墙陶土砖产品及生产流程优势全面解读

引言 在当前陶土砖市场中,产品质量良莠不齐、同质化竞争激烈、环保要求趋严等问题愈发凸显,给建筑行业采购者挑选可靠厂家带来极大困扰。部分厂家为压缩成本简化生产流程,导致产品性能不达标,严重影响建筑质量与使…

redis 5.0.14单机部署

环境:OS:Centos 7redis:5.0.14问题1:You need tcl 8.5 or newer in order to run the Redis testrpm -qa | grep tcl解决办法:yum install tcl问题2: make test 报错误!!! WARNING The following tests failed:*** [e…

视频汇聚平台EasyCVR在智慧工地无网线无电线监控现场视频解决方案

智慧工地的复杂环境(如临时施工区域、高空作业点、偏远户外场地)往往存在布线难度大、电力接入不便等问题,无网线无电线的无线监控方案通过"无线传输+新能源供电+智能终端"的核心架构,可实现监控系统的快…

Spring进阶 - SpringMVC达成原理(二)DispatcherServlet处理请求的过程

Spring进阶 - SpringMVC达成原理(二)DispatcherServlet处理请求的过程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

2025多校冲刺CSP模拟赛7

2025多校冲刺CSP模拟赛7 不是你怎么还有加赛?ys A. gcd&xor (gcdxor) 转化为外层枚举 \(\gcd\),内层枚举 \(i,j\),打表即可。可以发现规律,是调和级数做法,时间复杂度大约 \(O(1.5 \times 10^8)\)。 Code: #…

视频汇聚平台EasyCVR级联播放偶发失败排查:TCP主动模式下的3秒超时响应差

在视频监控平台的级联场景中,“有时能播、有时不能播”的偶发问题往往比必现问题更难排查。最近我们收到用户反馈:EasyCVR作为上级平台,请求播放下级级联的同一路视频时,出现间歇性播放失败的情况——同一通道有时…

redis 5.0单机部署

环境:OS:Centos 7redis:5.0.14问题1:You need tcl 8.5 or newer in order to run the Redis testrpm -qa | grep tcl解决办法:yum install tcl问题2: make test 报错误!!! WARNING The following tests failed:*** [e…