当前位置:首页>微思动态 > >详情
全国热线电话 400-881-4699

在线留言

【技术分享】Oracle全量同步与增量同步方式

发布作者:微思网络   发布时间:2026-02-06   浏览量:0
etl——Extract, Transform, Load,即“提取、转换、加载”


一、全量同步(T+1)

逻辑:用源表的数据直接覆盖目标表。

实现的逻辑:在往目标表中插入数据之前,【先清空目标表】,然后查询源表的数据,直接插入目标表。适用于数据量小的情况。

(一)全量同步步骤

1.创建源表

2.创建数据同步的目标表

3.创建全量同步的存储过程并调用

目标表同步成功:

(二)全量同步练习

通过入参 P_JOB 工种,将非这个工种的数据,全量同步到 EMP_0318 这个表(全量用TRUNCATE 实现,使用动态SQL实现);

(三)存储过程 & 动态SQL & 全量同步之间的区别

1.存储过程:是封装一段 数据的 同步 &转换逻辑;

2.动态SQL:当SQL中存在不稳定因素,比如,表名不确定,筛选条件不确定,或者是 DDL语句(TRUNCATE / DROP)不能直接运行,这个时候需要 拼接一个变量的SQL语句字符串,然后用 EXECUTE IMMEDIATE SQL语句字符串 去动态执行。如果这个SQL是 SELECT 语句 一般后面还有 INTO 变量赋值。

3.全量同步:在插入目标表的时候,需要先清空目标表,这样才能保证目标表的数据不会重复。(否则 我们调用一次存储过程,目标表的数据就会重复一次)。


二、增量同步——MERGE INTO

(一)相关概念介绍

1.什么是增量

增量指的是那一天新增的或者发生修改的数据。

2.什么是增量同步

逻辑:用源表的数据 更新 目标表 ,如果这条数据在目标表中存在则更新,数据不存在,则插入。

实现的逻辑:首先判断 目标表中是否有源表中的数据:如果有,则用 源表的数据 更新目标表中对应的数据;如果没有,则查询源表的记录,直接插入目标表。

通常用 MERGE INTO 的方式来做增量同步数据。

3.全量同步与增量同步的区别

全量同步是同步整张表的数据,增量同步只同步增量数据(比如今天只同步昨天新增的或者修改的数据)

全量同步之前要清空目标表的数据,增量同步不用清空表,有则更新,无则插入;

4.增量同步MERGE INTO语法结构


(二)增量同步练习

1.练习1

示例:假如在昨天公司里新增一个员工和 7788 这个员工的薪资发生了变化,用存储过程实现,将 EMP_SOURCE 表的数据增量同步到 EMP_TAR

源表数据:

目标表数据:

编写存储过程进行增量同步,并进行调用:

目标表数据:

2.练习2

源表数据成功INSERT到目标表中:





返回顶部