標籤:
使用資料庫或者系統變數的目前時間
Informatica中的$$SYSDATE是表示當前系統時間的系統變數。
通過這個變數,我們對每天抽取的資料可以使用以下運算式來實現增量抽取:
時間戳記欄位>= TRUNC($$SYSDATE – 1)
這種方法的實現比較簡單,但是缺乏靈活性。不但需要另外開發一套相應的程式實現全量抽取,想要改變抽取時間範圍還需要對每一個任務程式修改代碼。例如需要抽取三天前的資料,我們需要對上面的運算式做如下修改:
時間戳記欄位>= TRUNC($$SYSDATE – 3)
Ø
使用參數檔案
Informatica可以從參數檔案中讀取變數值,因此我們可以使用讀取參數檔案裡的參數值的方式來實現增量抽取。參數檔案裡至少應該包括兩個參數:開始時間參數和結束時間參數。我們需要以下運算式:
開始時間參數<時間戳記欄位<=結束時間欄位
我們只要修改參數檔案的參數值就可以靈活的控制抽取增量抽取時間範圍,包括實現全量抽取。對正常的抽取過程,這個修改的動作是通過程式自動來完成的--在每次抽取開始前,以上次抽取的結束時間作為本次抽取的開始時間,當前系統時間作為抽取的結束時間,來修改參數檔案。只有對一些異常情況,如上次抽取失敗需要重新抽取,需要手動修改參數檔案。
因為參數檔案是程式外部檔案,如果檔案被人誤刪除或者錯誤修改,會導致任務失敗或者抽取資料錯誤。
Ø
使用參數表
參數表的使用與參數檔案的使用類似,只是我們把兩個時間參數儲存到資料庫表中。但是因為參數表需要建在資料來源系統中,可能不被允許。如果有多個不同資料來源系統,則需要對每個系統建立參數表。
Ø
結合使用參數檔案與參數表
這種方式是在目標資料庫中建立一張參數表格儲存體時間範圍參數。每次抽取開始前,先通過讀取參數表裡的資料產生參數檔案,每個抽取任務從該參數檔案中讀取參數。因為每次參數檔案都會重建,減少了被誤刪除或修改的機率,同時也不用修改資料來源系統,是一種常見並且運用很廣的的方式
Informatica增量抽取時間的設定