教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

大數(shù)據(jù)培訓(xùn):全量加載與增量加載

更新時(shí)間:2022年07月21日15時(shí)27分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  數(shù)據(jù)的加載是ETL的最后一個(gè)階段,它的主要任務(wù)是將數(shù)據(jù)從臨時(shí)數(shù)據(jù)表或文件中加載到指定的數(shù)據(jù)倉(cāng)庫(kù)中。一般來說,可以通過編寫SQL語句和利用加載工具將數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中。ETL的數(shù)據(jù)加載和數(shù)據(jù)抽取類似,將數(shù)據(jù)加載到目標(biāo)數(shù)據(jù)表或者數(shù)據(jù)倉(cāng)庫(kù)的過程中可分為全量加載、增量加載以及批量加載。下面詳細(xì)介紹一下ETL的全量加載、增量加載以及批量加載。

  1.全量加載

  全量加載是指全表刪除后再進(jìn)行全部(全量)數(shù)據(jù)加載。從技術(shù)角度來說,全量加載和增量加載相比,全量加載更簡(jiǎn)單。一般只需要在數(shù)據(jù)加載之前將目標(biāo)表清空,再將源數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行導(dǎo)入。但是,由于數(shù)據(jù)量、系統(tǒng)資源和數(shù)據(jù)實(shí)時(shí)性的要求,很多情況下都需要使用增量加載機(jī)制。

  2.增量加載

  增量加載是指目標(biāo)表僅更新源數(shù)據(jù)表中變化的數(shù)據(jù)。增量加載的關(guān)鍵在于如何正確設(shè)計(jì)相應(yīng)的方法,用于從源數(shù)據(jù)表中抽取增量的數(shù)據(jù),以及變化“牽連”數(shù)據(jù)(雖然沒有變化,但受到變化數(shù)據(jù)影響的數(shù)據(jù))。同時(shí),將這些變化的和未變化但受到影響的數(shù)據(jù),在完成相應(yīng)的邏輯轉(zhuǎn)換后更新到數(shù)據(jù)倉(cāng)庫(kù)中。

  數(shù)據(jù)加載的性能和作業(yè)失敗后可進(jìn)行恢復(fù)重啟的易維護(hù)性,需要一個(gè)有效的增量抽取機(jī)制的支持。因?yàn)樵谝粋€(gè)有效的增量抽取機(jī)制,ETL能夠?qū)I(yè)務(wù)系統(tǒng)中變化的數(shù)據(jù)按一定的頻率準(zhǔn)確地進(jìn)行捕獲,并且不會(huì)對(duì)業(yè)務(wù)系統(tǒng)造成太大的壓力,也不會(huì)影響現(xiàn)有的業(yè)務(wù)。

  ETL的增量加載類似于增量抽取,同樣有4種方式,分別是時(shí)間戳方式、日志表方式、全表對(duì)比方式、全表刪除插入方式,具體介紹如下所示。

  (1)時(shí)間戳方式,即在業(yè)務(wù)表中統(tǒng)一添加一個(gè)字段作為時(shí)間戳,當(dāng)聯(lián)機(jī)分析處理(OLAP)系統(tǒng)更新修改業(yè)務(wù)數(shù)據(jù)時(shí),同時(shí)也會(huì)修改時(shí)間戳字段值,這時(shí)就將更新修改的數(shù)據(jù)加載到目標(biāo)表中。

  (2)日志表方式,即在OLAP系統(tǒng)中添加日志表,業(yè)務(wù)數(shù)據(jù)發(fā)生變化時(shí),更新維護(hù)日志表內(nèi)容。

  (3)全表對(duì)比方式,即抽取所有源數(shù)據(jù),在加載目標(biāo)表之前先根據(jù)主鍵和字段進(jìn)行數(shù)據(jù)比對(duì),有更新的數(shù)據(jù)就進(jìn)行更新和插入。

  (4)全表刪除插入方式,刪除目標(biāo)表中的數(shù)據(jù),將源數(shù)據(jù)表中的數(shù)據(jù)全部加載到目標(biāo)表中。

  3.批量加載

  通常,對(duì)于幾十萬條記錄的數(shù)據(jù)遷移而言,采取DML(數(shù)據(jù)操縱語言)的insert、update、delete等語句能夠比較好地將數(shù)據(jù)遷移到目標(biāo)數(shù)據(jù)庫(kù)中。然而,當(dāng)數(shù)據(jù)遷移量過大時(shí),DML語句執(zhí)行時(shí)生成的事物日志(事務(wù)日志是一個(gè)與數(shù)據(jù)庫(kù)文件分開的文件,用于存儲(chǔ)對(duì)數(shù)據(jù)庫(kù)進(jìn)行的所有更改,并全部記錄插入、更新、刪除、提交、回退和數(shù)據(jù)庫(kù)模式變化)和約束條件將大大影響加載性能,故需要針對(duì)數(shù)據(jù)采取批量加載處理。

0 分享到:
和我們?cè)诰€交談!