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
与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