大家好,又见面了,我是你们的朋友全栈君。
东方通ETL开发实例
下面通过一个简单的“Oracle CDC增量抽取”实例,带大家感受一下TIETL的
开发思路和强大的数据处理能力。
功能需求:
同一数据库(localhost_etl)下,现有cdc_source和cdc_target两张表如下:
表cdc_source
表cdc_target
现表cdc_source的增量(增、删、改)需同步到cdc_target中
TIETL环境下开发思路:
类似于java
OO开发,需要什么功能?—>这种功能属于哪种类?—>当前是否存在这种类?—>是,则载入并使用,否则创造后使用
这里把OO中“类”替换为“组件(具有某种特定功能的部件)”即可,另外本实例要实现的功能,现有的组件完全可以满足,所以
不存在需创造的情况(TIETL支持自定义组件开发,由于本文只介绍其基本使用方法,故组件开发在此不作介绍)。
转换设计:
根据对需求的分析结合TIETL现有的组件设计如下
因TIETL对数据库插入/更新和删除操作做了区别对待,所以通过中间的内容路径进行流程控制。
现分别对每个组件进行配置和解释。
图:Oracle CDC增量抽取
订阅字段及需要同步的字段,匹配字段一般选用主键(唯一标识),用于源和目的表记录的匹配。
图:内容路由
OPERATION$包括数据库插入、更新、删除操作分别对应值I,UN,D
图:数据库记录插入/更新
提交记录数量为一次提交数量,若CDC增量多于这个值则会分次执行。
勾选“不执行任何更新”后只执行插入操作。
图:数据库记录删除
执行过程:
cdc_source表中插入若干数据
cdc_target表为空
执行前面设计的转换后
cdc_target表如下
CDC成功执行!更新和删除操作执行过程相同,故不作赘述。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133399.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...