DMETL实现了增量数据的同步。在源表上进行的增删改操作,可以通过增量数据抽取,同步到目的表中。在第一次将源表数据全量抽取到目的表中后,可以通过重复地执行增量数据抽取,将源表上的增删改操作产生的变化数据,无遗漏地同步到目的表中,从而实现源表和目的表的长期同步。由于不需要每次都同步全量数据,当全量数据巨大,而每次变化数据较少时,可以大幅提升数据同步的效率。
抽取方式中选取增量抽取,表数据源有三种抽取方式:MD5、时间戳和触发器。
一、MD5 增量抽取
1. 描述:
MD5 方式是将变化前后的数据进行 MD5 散列处理,然后比对 MD5 的散列值是否相同,如果相同,则表示该行数据没有变化,否则,则数据发生了变化,就将变化后的数据保存在MD5 同步表中。通过记录的唯一列以及记录的 MD5 与MD5 同步表的唯一列以及 MD5 列值进行比较,决定该源记录是否迁移。
2. 示例:
--将数据库BOOKSHOP下的模式PRODUCTION下的PRODUCT表同步到ETLSAMPLE 数据库 DMETL模式下的 PRODUCT 表。
二、时间戳增量抽取
1、描述:
时间戳的方式,则是通过一条记录修改的时间戳值或生成的时时间戳值来决定是否迁移。一条记录被修改后,那么该条记录的时间戳肯定是要发生变化的,并且是变大的;一条记录被增加,会有一个时间戳与之对应。时间戳增量抽取的方式在后台创建一个时间戳同步表,在每次进行增量抽取时,会把源表的记录时间戳以及唯一列与时间戳表的唯一列以及时间戳列进行比较,来判断是否进行迁移,以及怎样的迁移。
2、示例:
--将数据库 ETLSTAMPLE 下的模式 DMETL 下的TIMESTAMP_TESTS 表同步到数据库 ETLSTAMPLE 下的模式 DMETL 下的TIMESTAMP_TESTD表。
三、触发器增量抽取
1、描述:
触发器方式是在源数据上建立更新、插入和删除触发器,当数据发生变化时通过触发器自动将变化后的的数据以及变换前的唯一列值保存到触发器影子表中。在进行增量数据迁移时,从触发器影子表中,获取增删改的信息,来确定迁移源对象记录。对于触发器的增量抽取,只支持表数据源的增量抽取,不支持视图数据源或 SQL数据源的增量抽取。
2、示例:
--将数据库 BOOKSHOP 下的模式 PRODUCTION 下的PRODUCT_CATEGORY 表同步到 ETLSAMPLE 数据库 DMETL 模式下的PRODUCT_CATEGORY表。
上海腾科教育科技有限公司聚焦ICT人才培养和教育服务、培养数字化时代的新型ICT人才、促进良性的ICT人才生态发展,提供面授教育、在线教育、IT人才培养与就业、高校专业共建与实验室建设、企业人才定制培养,以及教育科技领域内的技术开发、咨询、服务以及解决方案,专注高校ICT课程课件研发、基于华为公有云的云实验实训平台建设,致力于ICT技术在高等院校的引进、开发和推广,是一家全国性的专业ICT行业技术认证服务公司。
腾科教育是华为授权的培训合作伙伴,专业提供华为ICT技术架构认证、平台与服务认证、行业服务认证等华为职业认证服务,连续多年荣获华为年度最佳合作伙伴贡献奖、华为优秀战略合作伙伴、上海HCIE精英俱乐部伙伴,连续多年举办腾科技术嘉年华华为专场,并协办华为ICT大赛、华为生态伙伴精英赛伙伴赛分赛场、华为人才双选会上海场等活动和赛事,提供面向华为生态合作伙伴和ICT学员的人才供需双选平台及ICT学员就业通道,培养ICT行业所需创新型、融合型人才。