其他分享
首页 > 其他分享> > 12.DMETL3增量同步简要操作

12.DMETL3增量同步简要操作

作者:互联网

【环境准备】

ETL3, 数据库:DM7, 外置数据库模式(DM7, DMETL用户模式管理)

数据源:

BOOKSHOP  -  模拟源端

DMETL_JX      -     模拟镜像库

DMETL_SAMPLE   - 模拟目标端

变量:

rowPerson

rowDepartment

TEST_NUM

1,镜像同步

表抽取模式:全量抽取

BOOKSHOP(PERSON, DEPARTMENT) è DMETL_JX(JX_PERSON, JX_DEPARTMENT)

2, 同步表

2.1 源表/目的表结构

DMETL_JX: PERSONè DMETL_SAMPLE:P_PERSON

CREATE TABLE "DMETL_JX"."PERSON"

(

"PERSONID" INT IDENTITY(1, 1) NOT NULL,

"SEX" CHAR(1) NOT NULL,

"NAME" VARCHAR(50) NOT NULL,

"EMAIL" VARCHAR(50),

"PHONE" VARCHAR(25),

CLUSTER PRIMARY KEY("PERSONID")) STORAGE(ON "DMETL_JX", CLUSTERBTR) ;

CREATE TABLE "DMETL_SAMPLE"."P_PERSON"

(

"P_ID" INT IDENTITY(1, 1) NOT NULL,

"P_SEX" CHAR(1) NOT NULL,

"P_NAME" VARCHAR(50) NOT NULL,

"P_EMAIL" VARCHAR(50),

"P_PHONE" VARCHAR(25),

"P_FRIENDID" INTEGER,

CLUSTER PRIMARY KEY("P_ID")) STORAGE(ON "DMETL_SAMPLE", CLUSTERBTR) ;

-- P_FRIENDID 为转换过程中派生的新列,目标库源表中没有此列。

2.2 转换-MD5增量_PERSON

 

【表数据源】:

DMETL_JX.PERSON, 第一次增量同步抽取数据

【列映射】:

 

【派生列1(新增列)】: 

 

【派生列2】:

列内容根据表达式替换

 

【查找替换】: 

【script脚本】:

用于变量自增, 后续需要时在作业中判断

 

【表目的】:

DMETL_SAMPLE.P_PERSON

 3,插入更新

与JX_PERSON的镜像同步对比结果,可直观地区分“表目的”与“表目的(插入更新)”的区别。 

4, 作业

同步_PERSON

【设置变量】

这里的变量在转换中设置了自增。

【清空镜像表JX_PERSON】

清空镜像表,重新同步

【镜像表JX_PERSON同步】

从数据库源端同步到镜像

【MD5增量_PERSON】

从镜像表到目的端的MD5增量同步。

【条件线】

通过对变量的判断,来决定是否执行最后SQL中的操作。

5,元数据导入导出

 

6,总结

6.1, 表目的

表目的组件的功能是将输入的数据装载到表中,表目的组件的输入列应该与表中的列名匹配,输入数据中的列如果在目的表中没有匹配的列,则该列的数据会被丢弃。对于全量抽取表目的只执行插入操作,对于增量抽取,表目的会根据数据的类型执行插入、删除和更新操作。

6.2 表目的插入更新

与 表目的唯一差别在于, 全量抽取表目的的插入操作。表目的全量抽取表目的只支持插入操作; 表目的插入更新, 会根据设置的插入更新查找列在目的表中查找目的表记录,如果能找到,则会对目的表的记录进行更新,否则进行插入操作。

---------------------------------------------------------------------------------------------------------------------------------------

更多达梦数据库解决方案,可访问如下地址:

https://eco.dameng.com/
 

 

标签:简要,JX,插入,目的,DMETL3,PERSON,12,镜像,DMETL
来源: https://blog.csdn.net/liugh_csdn/article/details/121152985