oracle 增量_【干货分享】DMETL中的增量抽取初识
DMETL实现了增量数据的同步。在源表上进行的增删改操作,可以通过增量数据抽取,同步到目的表中。在第一次将源表数据全量抽取到目的表中后,可以通过重复地执行增量数据抽取,将源表上的增删改操作产生的变化数据,无遗漏地同步到目的表中,从而实现源表和目的表的长期同步。由于不需要每次都同步全量数据,当全量数据巨大,而每次变化数据较少时,可以大幅提升数据同步的效率。
DMETL中“增量表读取“提供对已建立好的数据库数据源中增量表的数据读取功能,并且可以对数据读取列、数据行、缓存以及并发等选项的设置。
DMETL支持的增量有:
触发器增量:是通过在基表上建立触发器,捕捉基表上发生的增删改操作,从而产生增量数据。触发器方式可以捕捉到插入和修改的大对象数据。
影子表增量:是在数据源中,建立一张和基表结构相同的影子表。当基表上发生了增删改操作后,在增量数据集进行刷新操作时,通过比较基表和影子表的数据,从而获得增量数据。
MD5增量:通过将变化前后的数据进行MD5 散列处理,然后比对MD5 的散列值是否相同来实现。
时间戳增量:通过一条记录修改的时间戳值或生成的时时间戳值来决定是否迁移。
Oracle CDC 增量方式:是“Oracle变化数据捕捉”(Changed Data Capture)的简称,利用了Oracle内建的存储函数和过程捕捉和发布变化数据,本质是分析日志的方式,获得Oracle 数据库中某张表上的数据变化,从而实现增量数据的抽取。
DMHS 增量:DMHS是“DM异构同步”的简称。DMHS工具通过解析数据库日志,在不同的数据库之间实现数据同步。
各种增量方式的比较和使用建议
增量方式 |
效率 |
通用性 |
使用建议 |
触发器 |
高 |
在表上进行增量抽取 |
一般情况下建议使用 |
影子表 |
较高 |
在表或视图上进行增量抽取 |
一般情况下建议使用,但比较列包含大对象类型时,效率较低 |
MD5 |
低 |
在表或视图上进行增量抽取 |
需要在大对象类型列上进行比较时可使用 |
时间戳 |
较高 |
在表或视图上进行增量抽取 |
需要修改时间戳列,因此需要数据库支持时间戳自动更新,或手工更新时间戳列 |
DMHS |
高 |
DM数据库中,在表上进行增量抽取 |
需要安装DMHS工具。当对性能要求较高时建议使用 |
Oracle CDC |
高 |
Oracle数据库中,在表上进行增量抽取 |
sync方式不支持大对象类型列的比较。当对实时性要求较高时建议使用sync方式 ,hotlog方式可能有延时,但是对数据源的影响较小 |
表格 1
使用建议:
源库权限 |
是否要同步update和delete操作 |
数据量 |
建议(按优先级排列) |
只读 |
否 |
小 |
1. 如果目的表上有主键或者唯一索引,可以使用全量抽取,然后在表目的上使用插入更新选项。 2. 每次同步前先删除目的表的数据,然后在进行全量同步。 |
大 |
1. 如果源表上有序列或者自增列可以使用带参数的sql查询进行同步,参见典型示例《基于变量实现断点续传和增量抽取》 2. 如果源是dmhs支持的数据库,则可以通过dmhs进行 |
||
是 |
小 |
1. 每次同步前先删除目的表的数据,然后在进行全量同步。 |
|
1. 如果源是dmhs支持的数据库,则可以通过dmhs进行 2. Oracle CDC (需要在源库上有oracle cdc的相关权限) |
|||
读写 |
不限 |
大 |
1. Oracle CDC 2. 触发器增量 3. DMHS |
小 |
1. 影子表增量 2. MD5增量 |
表格 2
注:数据量在100w以内的都可以认为是小表,超过100w的为大表。
添加增量表方式
通过工具栏的“数据读取“中的“增量表”选择的数据集,就可以在普通表上添加增量表。比如下图,是在普通表DEPARTMENT_T1上添加的MD5_CDC表。
图1
表/视图选择的数据集是普通表,增量表比普通表多两列CDC_ID和CDC_OPT(图4),用来记录对源表的操作。当对源表进行插入、更新、删除时,目的表中记录会相应地更改。
本文以增加MD5增量表为例,进行增量演示(该示例可在DMETL示例库中找到,或按如下步骤创建):
1. 创建数据源及目的表
在数据集DMETL_SAMPLE 库下添加表DEPARTMENT_T1、DEPARTMENT_T2(图2),在表DEPARTMENT_T1 处添加MD5 增量表(图3~5):
图 2 DEPARTMENT_T1、DEPARTMENT_T2表结构
图3
图4
图 5 DEPARTMENT_T1表的MD5增量表DEPARTMENT_T1_MD5_CDC
2. 创建转换
转换名称:“增量表演示”
图6
图7 转换流程图
图7中源表及目的表分别选择第一步中创建的MD5_CDC表及T2表。
3. 往源表插入、更新数据,执行转换
第一步中创建表后,并没有往表里添加记录
图8
接下来,往T1表中增加、更新记录:
图9
执行图7所示的转换后,浏览三张表分别得到如图所示结果:
图10
增量表:为了方便做增量抽取。增量抽取只抽取自上次抽取以来数据库中要抽取的表中变化的数据,将捕获的变化数据写入到对应的CDC表(增量表)中。在ETL 使用过程中,增量抽取较全量抽取应用更广。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:①准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到;②性能,不能对业务系统造成太大的压力,影响现有业务。本文以MD5增量为例,对增量抽取流程做了简单介绍,实际使用中请考虑系统特性,选择合适的增量抽取方式。
oracle 增量_【干货分享】DMETL中的增量抽取初识相关推荐
- [转载] python判断字符串中包含某个字符串_干货分享| Python中最常用的字符串方法
参考链接: Python中字符串string capitalize 字符串是字符序列.Python中内置的string类代表基于Unicode国际字符集的字符串.除了Python中常见的操作外,字符串 ...
- sysdba 默认密码_干货分享|DM数据库密码策略和登录限制设置
在数据库的用户安全中,口令复杂度策略和资源限制是用户安全重要的一部分.在DM数据库中,口令策略分为系统口令策略和用户口令策略.只有安全版本才支持对每个用户设置口令策略(即用户口令策略),非安全版本,只 ...
- 达梦数据库删除用户_干货分享丨DM8用户管理
原标题:干货分享丨DM8用户管理 用户介绍 安装创建达梦企业版数据库后,系统会默认创建四类数据库账号,分别是: SYS:达梦数据库内置管理用户,不能登录,数据库使用的大部分的数据字典和动态性能视图. ...
- 位图排序 大数据_干货分享:大话12种排序算法
干货分享:大话12种排序算法 常见的排序算法: 快速排序.堆排序.归并排序.选择排序 插入排序.二分插入排序 冒泡排序.鸡尾酒排序 桶排序.计数排序.基数排序.位图排序 技能点: 1.归并排序在O(N ...
- lwip协议栈优化_干货分享 | KNI性能优化实践
友情提示:全文5000多文字,预计阅读时间15分钟 文章源自现网实践对支撑及用户态/内核态网络报文交换场景的认识,欢迎有Linux/FreeBSD内核.网络协议栈.DPDK优化实践经验的同学留言探讨- ...
- vs code vue插件_干货分享 | Vue框架常见问题浅谈
友情提示:全文7800多文字,预计阅读时间10分钟 Vue是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手, ...
- python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...
今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...
- eureka 之前的服务如何关闭_干货分享 | 服务注册中心Spring Cloud Eureka部分源码分析...
友情提示:全文13000多文字,预计阅读时间10-15分钟 Spring Cloud Eureka作为常用的服务注册中心,我们有必要去了解其内在实现机制,这样出现问题的时候我们可以快速去定位问题.当我 ...
- android分享文件分享结果_干货分享丨DM删除归档日志文件的多种方法
上一期我们讲解了DM数据库归档日志的切换,本期我们讲解DM数据库归档日志文件的删除. 本章内容已在如下环境上测试: ①操作系统:中标麒麟7: ②数据库版本:达梦8: 相关关键字:DM数据库.归档日志文 ...
最新文章
- 概述Nod32的部署
- 网易模板html,163企业邮箱HTML网站模板
- Web 前端——项目文件夹命名规范
- idea配置tomcat以及环境变量
- 解析JavaScript中的字符串类型与字符编码支持
- AGC004E - Salvage Robots(dp,思维)
- C语言预处理命令总结
- android setprogress,progressDialog 为什么设置了setProgress()方法无反应?
- MXNet 的学习(一)—— MXNet Dependency Engine(依赖引擎)
- Java并发编程技术
- c语言程序设计爱心图片,c语言爱心图片表白程序源代码
- 一个局域网联机小游戏
- C语言利用指针实现字符串逆序输出
- 自动化运维工具-ansible入门(一)
- 计算机启动修复怎么还原,电脑开机出现系统恢复选项该怎么办
- 泰山OFFICE技术讲座:字体属性的上标研究1:上标是什么
- 大文件分块计算MD5值 C++实现
- 【NCNN解读】——benchmark部分
- 《Android源码设计模式解析与实战》读书笔记(十四)
- 计算机基础知识图谱,基于知识图谱的大学计算机基础习题推荐方法技术
热门文章
- stm32外部中断_STM32学习笔记 | 电源管理及低功耗设计要点
- 检测到目标url存在内部ip地址泄露_Cendertron,动态爬虫与敏感信息泄露检测
- linux修改栈指针x86,为什么x86-64 Linux系统调用会修改RCX,这个值意味着什么?
- restfull加签_SpringBoot RestFull API签名
- 使用python读取iphone文件_如何在连接的iPhone上用Python从windows7访问照片?
- Latex 生成的PDF增加行号 左右两边
- Latex 中插入超链接 插入网址
- WordPress 首页显示摘要
- 步步为营 SharePoint 开发学习笔记系列 七、SharePoint Timer Job 开发
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用