更新時間:2021年06月08日16時30分 來源:傳智教育 瀏覽次數:
數據的加載是ETL的最后一個階段,它的主要任務是將數據從臨時數據表或文件中加載到指定的數據倉庫中。-般來說,可以通過編寫sQL語句和利用加載工具將數據加載到數據倉庫中。ETL的數據加載和數據抽取類似,將數據加載到目標數據表或者數據倉庫的過程中可分為全量加載、增量加載以及批量加載。下面詳細介紹一下ETL的全量加載、增量加載以及批量加載。
1.全量加載
全量加載是指全表刪除后再進行全部(全量)數據加載。從技術角度來說,全量加載和增量加載相比,全量加載更簡單。一般只需要在數據加載之前將目標表清空,再將源數據表中的數據進行導人。但是,由于數據量、系統(tǒng)資源和數據實時性的要求,很多情況下都需要使用增量加載機制。
2.增量加載
增量加載是指目標表僅更新源數據表中變化的數據。增量加載的關鍵在于如何正確設計相應的方法,用于從源數據表中抽取增量的數據,以及變化“牽連”數據(雖沒有變化,但受到變化數據影響的數據)。同時,將這些變化的和未變化但受到影響的數據,在完成相應的邏輯轉換后更新到數據倉庫中。
數據加載的性能和作業(yè)失敗后可進行恢復重啟的易維護性,需要一個有效的增量抽取機制的支持。因為在-一個有效的增量抽取機制,ETL能夠將業(yè)務系統(tǒng)中變化的數據按一定的頻率準確地進行捕獲,并且不會對業(yè)務系統(tǒng)造成太大的壓力,也不會影響現(xiàn)有的業(yè)務。
ETL的增量加載類似于增量抽取,同樣有4種方式,分別是時間戳方式、日志表方式、全表對比方式、全表刪除插入方式,具體介紹如下所示。
(1)時間戳方式,即在業(yè)務表中統(tǒng)-添加-個字段作為時間戳,當聯(lián)機分析處理(OLAP)系統(tǒng)更新修改業(yè)務數據時,同時也會修改時間戳字段值,這時就將更新修改的數據加載到目標表中。
(2)日志表方式,即在OLAP系統(tǒng)中添加日志表,業(yè)務數據發(fā)生變化時,更新維護日志表內容。
(3)全表對比方式,即抽取所有源數據,在加載目標表之前先根據主鍵和字段進行數據比對,有更新的數據就進行更新或插入。
(4)全表刪除插入方式,刪除目標表中的數據,將源數據表中的數據全部加載到目標表中。
3.批量加載
通常,對于幾十萬條記錄的數據遷移而言,采取DML(數據操縱語言)的insert、update、delete等語句能夠較好地將數據遷移到目標數據庫中。然而,當數據遷移量過大時,DML語句執(zhí)行時生成的事物日志(事務日志是一個與數據庫文件分開的文件,用于存儲對數據庫進行的所有更改,并全部記錄插人、更新、刪除、提交、回退和數據庫模式變化)和約束條件將大大影響加載性能,故需要針對數據采取批量加載處理。
猜你喜歡: