根據模型的設計和源數據的情況,有四種數據ETL模式:
完全刷新:數據倉庫數據表中只包括最新的數據,每次加載均刪除原有數據,然后完全加載最新的源數據。這種模式下,數據抽取程序抽取源數據中的所有記錄,在加載前,將目標數據表清空,然后加載所有記錄。為提高刪除數據的速度,一般是采用Truncate清空數據表。如本系統中的入庫當前信息表采用此種模式。
鏡像增量:源數據中的記錄定期更新,但記錄中包括記錄時間字段,源數據中保存了數據歷史的記錄,ETL可以通過記錄時間將增量數據從源數據抽取出來以附加的方式加載到數據倉庫中,數據的歷史記錄也會被保留在數據倉庫中。
事件增量:每一個記錄是一個新的事件,相互之間沒有必然的聯系,新記錄不是對原有記錄數值的變更,記錄包括時間字段,可以通過時間字段將新增數據抽取出來加載到數據庫中。
鏡像比較:數據倉庫數據具有生效日期字段以保存數據的歷史信息,而源數據不保留歷史并且每天都可能被更新。因此,只能將新的鏡像數據與上次加載的數據的鏡像進行比較,找出變更部分,更新歷史數據被更新記錄的生效終止日期,并添加變更后的數據。大多數源數據中需保存歷史信息的維表