日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 增量_【干货分享】DMETL中的增量抽取初识

發(fā)布時(shí)間:2025/3/11 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 增量_【干货分享】DMETL中的增量抽取初识 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

DMETL實(shí)現(xiàn)了增量數(shù)據(jù)的同步。在源表上進(jìn)行的增刪改操作,可以通過增量數(shù)據(jù)抽取,同步到目的表中。在第一次將源表數(shù)據(jù)全量抽取到目的表中后,可以通過重復(fù)地執(zhí)行增量數(shù)據(jù)抽取,將源表上的增刪改操作產(chǎn)生的變化數(shù)據(jù),無遺漏地同步到目的表中,從而實(shí)現(xiàn)源表和目的表的長期同步。由于不需要每次都同步全量數(shù)據(jù),當(dāng)全量數(shù)據(jù)巨大,而每次變化數(shù)據(jù)較少時(shí),可以大幅提升數(shù)據(jù)同步的效率。

DMETL中“增量表讀取“提供對(duì)已建立好的數(shù)據(jù)庫數(shù)據(jù)源中增量表的數(shù)據(jù)讀取功能,并且可以對(duì)數(shù)據(jù)讀取列、數(shù)據(jù)行、緩存以及并發(fā)等選項(xiàng)的設(shè)置。

DMETL支持的增量有:

  • 觸發(fā)器增量:是通過在基表上建立觸發(fā)器,捕捉基表上發(fā)生的增刪改操作,從而產(chǎn)生增量數(shù)據(jù)。觸發(fā)器方式可以捕捉到插入和修改的大對(duì)象數(shù)據(jù)。

  • 影子表增量:是在數(shù)據(jù)源中,建立一張和基表結(jié)構(gòu)相同的影子表。當(dāng)基表上發(fā)生了增刪改操作后,在增量數(shù)據(jù)集進(jìn)行刷新操作時(shí),通過比較基表和影子表的數(shù)據(jù),從而獲得增量數(shù)據(jù)。

  • MD5增量:通過將變化前后的數(shù)據(jù)進(jìn)行MD5 散列處理,然后比對(duì)MD5 的散列值是否相同來實(shí)現(xiàn)。

  • 時(shí)間戳增量:通過一條記錄修改的時(shí)間戳值或生成的時(shí)時(shí)間戳值來決定是否遷移。

  • Oracle CDC 增量方式:是“Oracle變化數(shù)據(jù)捕捉”(Changed Data Capture)的簡稱,利用了Oracle內(nèi)建的存儲(chǔ)函數(shù)和過程捕捉和發(fā)布變化數(shù)據(jù),本質(zhì)是分析日志的方式,獲得Oracle 數(shù)據(jù)庫中某張表上的數(shù)據(jù)變化,從而實(shí)現(xiàn)增量數(shù)據(jù)的抽取。

  • DMHS 增量:DMHS是“DM異構(gòu)同步”的簡稱。DMHS工具通過解析數(shù)據(jù)庫日志,在不同的數(shù)據(jù)庫之間實(shí)現(xiàn)數(shù)據(jù)同步。

各種增量方式的比較和使用建議

增量方式

效率

通用性

使用建議

觸發(fā)器

在表上進(jìn)行增量抽取

一般情況下建議使用

影子表

較高

在表或視圖上進(jìn)行增量抽取

一般情況下建議使用,但比較列包含大對(duì)象類型時(shí),效率較低

MD5

在表或視圖上進(jìn)行增量抽取

需要在大對(duì)象類型列上進(jìn)行比較時(shí)可使用

時(shí)間戳

較高

在表或視圖上進(jìn)行增量抽取

需要修改時(shí)間戳列,因此需要數(shù)據(jù)庫支持時(shí)間戳自動(dòng)更新,或手工更新時(shí)間戳列

DMHS

DM數(shù)據(jù)庫中,在表上進(jìn)行增量抽取

需要安裝DMHS工具。當(dāng)對(duì)性能要求較高時(shí)建議使用

Oracle ? CDC

Oracle數(shù)據(jù)庫中,在表上進(jìn)行增量抽取

sync方式不支持大對(duì)象類型列的比較。當(dāng)對(duì)實(shí)時(shí)性要求較高時(shí)建議使用sync方式 ,hotlog方式可能有延時(shí),但是對(duì)數(shù)據(jù)源的影響較小

表格 1

使用建議:

源庫權(quán)限

是否要同步update和delete操作

數(shù)據(jù)量

建議(按優(yōu)先級(jí)排列)

只讀

1. ? 如果目的表上有主鍵或者唯一索引,可以使用全量抽取,然后在表目的上使用插入更新選項(xiàng)。

2. ?每次同步前先刪除目的表的數(shù)據(jù),然后在進(jìn)行全量同步。

1. ?如果源表上有序列或者自增列可以使用帶參數(shù)的sql查詢進(jìn)行同步,參見典型示例《基于變量實(shí)現(xiàn)斷點(diǎn)續(xù)傳和增量抽取》

2. 如果源是dmhs支持的數(shù)據(jù)庫,則可以通過dmhs進(jìn)行

1. ?每次同步前先刪除目的表的數(shù)據(jù),然后在進(jìn)行全量同步。

1. 如果源是dmhs支持的數(shù)據(jù)庫,則可以通過dmhs進(jìn)行

2. Oracle CDC (需要在源庫上有oracle cdc的相關(guān)權(quán)限)

讀寫

不限

1. Oracle CDC

2. ?觸發(fā)器增量

3. ?DMHS

1. 影子表增量

2. MD5增量

表格 2

注:數(shù)據(jù)量在100w以內(nèi)的都可以認(rèn)為是小表,超過100w的為大表。

添加增量表方式

通過工具欄的“數(shù)據(jù)讀取“中的“增量表”選擇的數(shù)據(jù)集,就可以在普通表上添加增量表。比如下圖,是在普通表DEPARTMENT_T1上添加的MD5_CDC表。

圖1

表/視圖選擇的數(shù)據(jù)集是普通表,增量表比普通表多兩列CDC_ID和CDC_OPT(圖4),用來記錄對(duì)源表的操作。當(dāng)對(duì)源表進(jìn)行插入、更新、刪除時(shí),目的表中記錄會(huì)相應(yīng)地更改。

本文以增加MD5增量表為例,進(jìn)行增量演示(該示例可在DMETL示例庫中找到,或按如下步驟創(chuàng)建):

1.??? 創(chuàng)建數(shù)據(jù)源及目的表

在數(shù)據(jù)集DMETL_SAMPLE 庫下添加表DEPARTMENT_T1、DEPARTMENT_T2(圖2),在表DEPARTMENT_T1 處添加MD5 增量表(圖3~5):

圖 2 DEPARTMENT_T1、DEPARTMENT_T2表結(jié)構(gòu)

圖3

圖4

圖 5 DEPARTMENT_T1表的MD5增量表DEPARTMENT_T1_MD5_CDC

2.??? 創(chuàng)建轉(zhuǎn)換

轉(zhuǎn)換名稱:“增量表演示”

圖6

圖7 轉(zhuǎn)換流程圖

圖7中源表及目的表分別選擇第一步中創(chuàng)建的MD5_CDC表及T2表。

3.??? 往源表插入、更新數(shù)據(jù),執(zhí)行轉(zhuǎn)換

第一步中創(chuàng)建表后,并沒有往表里添加記錄

圖8

接下來,往T1表中增加、更新記錄:

圖9

執(zhí)行圖7所示的轉(zhuǎn)換后,瀏覽三張表分別得到如圖所示結(jié)果:

圖10

增量表:為了方便做增量抽取。增量抽取只抽取自上次抽取以來數(shù)據(jù)庫中要抽取的表中變化的數(shù)據(jù),將捕獲的變化數(shù)據(jù)寫入到對(duì)應(yīng)的CDC表(增量表)中。在ETL 使用過程中,增量抽取較全量抽取應(yīng)用更廣。如何捕獲變化的數(shù)據(jù)是增量抽取的關(guān)鍵。對(duì)捕獲方法一般有兩點(diǎn)要求:①準(zhǔn)確性,能夠?qū)I(yè)務(wù)系統(tǒng)中的變化數(shù)據(jù)按一定的頻率準(zhǔn)確地捕獲到;②性能,不能對(duì)業(yè)務(wù)系統(tǒng)造成太大的壓力,影響現(xiàn)有業(yè)務(wù)。本文以MD5增量為例,對(duì)增量抽取流程做了簡單介紹,實(shí)際使用中請(qǐng)考慮系統(tǒng)特性,選擇合適的增量抽取方式。

總結(jié)

以上是生活随笔為你收集整理的oracle 增量_【干货分享】DMETL中的增量抽取初识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。