同步数据常见的应用场景包括以下4个种类型:
Ø 只增加、无更新、无删除
Ø 只更新、无增加、无删除
Ø 增加+更新、无删除
Ø 增加+更新+删除
1 只增加、无更新、无删除
对于这种只增加数据的情况,可细分为以下2种类型:
1) 基表存在更新字段。
通过获取目标表上最大的更新时间或最大ID,在“表输入”步骤中加入条件限制只读取新增的数据。
这里要注意的是,获取最大更新时间或最大ID时,如果目标表还没有数据,最大值会获取不了。其中的一个解决方法是在“获取最大ID”步骤的SQL中,加入最小日期或ID的联合查询即可,如:
SELECT MAX(ID) FROM
(SELECT MAX(ID) AS ID FROM T1 UNION ALL SELECT 0 AS ID FROM DUAL)
2) 基表不存在更新字段。
通过“插入/更新”步骤进行插入。
插入/更新步骤选项:
2 只更新、无增加、无删除
通过“更新”步骤进行更新。
更新选项:
3 增加+更新、无删除
通过“插入/更新”步骤进行插入。
区别是“插入/更新步骤”中的选项,去掉“不执行任何更新”的勾选:
4 增加+truncate可以加条件吗更新+删除
这种数据同步情况,可细分为以下2种情况:
1) 源库有表保存删除、更新和新增的信息。
通过条件判断,分别进行“插入/更新”和“删除”即可,如下图所示。
2) 源库没有保存增删改信息
Kettle提供了一种对比增量更新的机制处理这种情况,可通过“合并记录”步骤实现,该步骤的输入是新旧两个数据源,通过关键字进行数据值比对,对比结果分为以下4种类型:
“Identical” : 关键字在新旧数据源中都存在,域值相同
“changed” : 关键字在新旧数据源中都存在,但域值不同
“new” : 旧数据源中没有到关键字
“deleted”: 新数据源中没有到关键字
两个数据源的数据都进入下一步骤,上述4种结果类型作为输出表的标志字段进行保存。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论