更新時間:2021年06月04日14時47分 來源:傳智教育 瀏覽次數(shù):
數(shù)據(jù)的抽取就是從異構(gòu)數(shù)據(jù)源抽取數(shù)據(jù),但是并不是所有數(shù)據(jù)源中的數(shù)據(jù)都有實際的價值。業(yè)務(wù)人員和設(shè)計人員需要分析討論哪些數(shù)據(jù)有價值,哪些數(shù)據(jù)可以忽略,然后制定抽取策略。數(shù)據(jù)的抽取分為數(shù)據(jù)的全量抽取和數(shù)據(jù)的增量抽取。其中,全量抽取類似于數(shù)據(jù)遷移或數(shù)據(jù)復(fù)制,它將原數(shù)據(jù)表中的數(shù)據(jù)全部抽取出來;經(jīng)過上次抽取后,源數(shù)據(jù)表中的數(shù)據(jù)出現(xiàn)變化時,會進(jìn)行增量抽取。增量抽取是抽取數(shù)據(jù)源表中新增或被修改的數(shù)據(jù)。
在ETL的使用過程中,數(shù)據(jù)的增量抽取比數(shù)據(jù)的全量抽取應(yīng)用更廣泛。要實現(xiàn)增量抽取,就要準(zhǔn)確地捕獲到數(shù)據(jù)庫中數(shù)據(jù)源表數(shù)據(jù)的變化,因此捕獲變化的數(shù)據(jù)是增量抽取的關(guān)鍵。數(shù)據(jù)的增量抽取有4種方式,具體如下。
1.觸發(fā)器方式
觸發(fā)器方式是根據(jù)抽取要求,在要被抽取的數(shù)據(jù)源表上建立插人、修改、刪除3個觸發(fā)器,每當(dāng)數(shù)據(jù)源表中的數(shù)據(jù)發(fā)生變化,就被相應(yīng)的觸發(fā)器將變化的數(shù)據(jù)寫人一個增量日志表中。ETL的增量抽取則是從增量日志中抽取,而不是直接在源表中抽取數(shù)據(jù),同時,增量日志表中抽取過的數(shù)據(jù)要及時被標(biāo)記或者刪除。
2.時間戳方式
時間戳方式是指增量抽取時,抽取進(jìn)程通過比較指定抽取時間與抽取源表的時間戳字段的值決定抽取哪些數(shù)據(jù)。這種方式需要在源表中增加一個時間戳字段,系統(tǒng)中更新或修改源表數(shù)據(jù)的時候,也會同時修改時間戳字段的值。插入數(shù)據(jù)的時間戳由系統(tǒng)時間指定。
3.全表比對方式
全表比對方式是指在增量抽取時,ETL進(jìn)程逐條比較源表和目標(biāo)表的記錄,將新增或修改等變化的記錄過濾讀取出來。
4.日志表方式
對于建立了業(yè)務(wù)系統(tǒng)的生產(chǎn)數(shù)據(jù)庫的企業(yè)來說,可以在數(shù)據(jù)庫中創(chuàng)建業(yè)務(wù)(企業(yè)中的業(yè)務(wù))日志表,當(dāng)特定需要監(jiān)控的業(yè)務(wù)數(shù)據(jù)發(fā)生變化時,由相應(yīng)的業(yè)務(wù)系統(tǒng)程序模塊更新維護(hù)日志表的內(nèi)容。增量抽取時,通過讀日志表數(shù)據(jù)決定加載哪些數(shù)據(jù)及如何加載。日志表的維護(hù)需要由業(yè)務(wù)系統(tǒng)程序編寫代碼完成。
以上4種常見的增量抽取方式?jīng)]有種方式具有絕對的優(yōu)勢,不同的方式在不同企業(yè)中的表現(xiàn)大體都是相對平衡的。通常根據(jù)企業(yè)中的業(yè)務(wù)需求和硬件環(huán)境選擇ETL抽取機(jī)制。
猜你喜歡:
數(shù)據(jù)倉庫的結(jié)構(gòu)詳細(xì)介紹
Spark SQL架構(gòu)的工作原理和工作流程是什么?