ETL調度開發(5)——串連資料庫執行資料庫命令子程式,etl調度
ETL調度中讀寫資料資訊,都需要串連資料庫,下面的子程式通過傳入的資料庫連接字串和資料庫命令(或SQL)執行所需要的操作:
#!/usr/bin/bash#created by lubinsu#2014source ~/.bash_profilevalues=`sqlplus -S $1 << EOF set heading off feedback off pagesize 0 verify off echo off WHENEVER SQLERROR exit SQL.SQLCODE ROLLBACK $2 commit; exit EOF`echo "${values}"
參數的參數依次是:資料庫連接字串,資料庫命令(或SQL語句)
什是ETL調度系統?
.1 ETL流程及調度設計(ETL Schedule)(PSP)
? ETL調度的目標
快速見效系統要抽取39家分行四個系統的資料進行加工處理,資料從下傳檔案到ODS庫,ODS庫到LDM,再計算PI值和匯總PI,整個ETL處理過程需按一定步驟和滿足某些條件進行,某些關鍵的檔案如匯率資料、機構表等都會影響整個ETL的處理,因此,快速見效的ETL處理流程將是一個比較複雜的過程。
考慮到將來ETL處理的多樣性和複雜性,引入了Job的概念,將ETL處理過程分為一個一個的Job,Job可能是清洗\載入\轉換,也可能是PI加工。為了對複雜的ETL處理過程更好的調度和監控,專門設計一個ETL調度系統。通過ETL調度系統的開發使用,將清晰、高效地通過Job調度的方式處理快速見效的ETL過程。
? ETL調度的功能範圍
1. ETL調度功能圖示
2. ETL調度功能說明
調度維護
1) 調度系統參數維護,對調度系統的公用參數:期數、進程數、資料日期、本期開始日期和本期結束日期進行設定和修改。
2) 下傳檔案資訊維護,維護所有地區的下傳檔案名稱、檔案狀態、檔案資料日期和對應地區的歸屬關係。
3) 作業步定義與維護,定義作業對應的實際ETL處理過程,產生作業編號,定義作業類型和作業的驅動關係,作業的運行所需要的條件。
4) 調度異常處理,對調度過程中出現的異常情況進行處理,提供錯誤尋找、出錯重跑功能。
日誌管理
1) 調度過程日誌,管理記錄調度中的主要過程和異常資訊,如調度開始、調度完成、資料庫操作異常和讀寫檔案異常的日誌。
2) Job執行日誌,管理記錄Job執行資訊的日誌,提供該日誌的查詢、刪除和執行狀態重設功能。
3) Job詳細事件記錄,管理記錄Job執行中的詳細事件(清洗記錄條數、資料庫具體操作情況)的日誌,提供對日誌的查詢、刪除操作。
作業調度
正常情況下的作業調度,對整個ETL過程進行調度,提供分段提交處理和自動認可處理功能。
可調度的Job類型
1) C程式(清洗),ETL調度提供與C程式的介面,從而可以對C程式進行調度。
2) 用C封裝的SQLLDR(載入),將ORACLE SQLLDR封裝在C程式中進行調度。
3) PROC程式(合并、轉換),對合并和轉換過程,調度提供相應的介面,從而對ORACLE的PROC程式進行調度。
4) 預存程序(轉換),將預存程序封裝在PROC程式中進行調度。
5) DataStage(PI加工),調度系統提供了與DataStage的介面,可以對DataStage各個種類的Job進行調度。
? ETL總體流程圖
? 作業步(ETL_Step)的功能類型及資料處理
0. 檔案FTP: 將各個分行的源業務系統(NLNS、SBS、NACS)的以預定的檔案格式以FTP方式通過中行網路傳輸到QUICK WIN項目系統的ETL伺服器。
1. 檔案註冊:0中FTP的來源資料檔案,經過解壓縮後,必須在QUICK WIN項目系統中註冊,只有經過檔案註冊過程後QUICK WIN項目系統才能確認“那些分行的來源資料” 已經正確到達,ETL系統就可以相應的處理流程。
2. 資料清洗:從各分行FTP來的來源資料檔案,可能存在非法資料或冗餘資料或者資料規則標準不統一,而且檔案格式上也不能被QUICK WIN項目的ETL過程立即使用,因此必須對資料檔案進行資料清洗(刪除非法、冗餘資料、統一資料規則標準、轉換成QUICK WIN項目的ETL過程能“載入”處理的檔案格式)。
3. 資料載入:將清洗後的資料(檔案格式)通過SQL......餘下全文>>
有人總結:“ETL是BI(商業智可以)的基礎,調度是ETL的靈魂”問這究竟是個什理?
ETL是資料幫浦(Extract)、清洗(Cleaning)、轉換(Transform)、裝載(Load)的過程
你想啊,資料的由來都是ETL實現的,以後所有的資料處理,不都是要依靠這些抽取來的資料。
這一塊沒有做好,後面的分析,展現就是來了大神,他也沒有辦法,就像巧婦難為無米之炊一樣。
所以說ETL是BI商業智慧的基礎,
調度是ETL的靈魂,我們首先講講調度的功能。
2. ETL調度功能說明
調度維護
1) 調度系統參數維護,對調度系統的公用參數:期數、進程數、資料日期、本期開始日期和本期結束日期進行設定和修改。
2) 下傳檔案資訊維護,維護所有地區的下傳檔案名稱、檔案狀態、檔案資料日期和對應地區的歸屬關係。
3) 作業步定義與維護,定義作業對應的實際ETL處理過程,產生作業編號,定義作業類型和作業的驅動關係,作業的運行所需要的條件。
4) 調度異常處理,對調度過程中出現的異常情況進行處理,提供錯誤尋找、出錯重跑功能。
日誌管理
1) 調度過程日誌,管理記錄調度中的主要過程和異常資訊,如調度開始、調度完成、資料庫操作異常和讀寫檔案異常的日誌。
2) Job執行日誌,管理記錄Job執行資訊的日誌,提供該日誌的查詢、刪除和執行狀態重設功能。
3) Job詳細事件記錄,管理記錄Job執行中的詳細事件(清洗記錄條數、資料庫具體操作情況)的日誌,提供對日誌的查詢、刪除操作。
作業調度
正常情況下的作業調度,對整個ETL過程進行調度,提供分段提交處理和自動認可處理功能。
可調度的Job類型
1) C程式(清洗),ETL調度提供與C程式的介面,從而可以對C程式進行調度。
2) 用C封裝的SQLLDR(載入),將ORACLE SQLLDR封裝在C程式中進行調度。
3) PROC程式(合并、轉換),對合并和轉換過程,調度提供相應的介面,從而對ORACLE的PROC程式進行調度。
4) 預存程序(轉換),將預存程序封裝在PROC程式中進行調度。
5) DataStage(PI加工),調度系統提供了與DataStage的介面,可以對DataStage各個種類的Job進行調度。
你看看,是不是最不好處理的問題基本上都是調度在處理。所以說調度是ETL的靈魂。
來源:商業智慧和資料倉儲愛好者
提供,,,,商業智慧和雲端運算、、、、、、陪訓,,,,,包括 ETL