ETL Automation

//
目錄:
第一部分:ETL Automation簡介
第二部分:ETL Automation架構
第三部分:ETL Automation環境變量說明
第四部分:ETL Automation目錄結構說明
第五部分:ETL Automation服務說明
第六部分:ETL Automation知識庫說明
第七部分:ETL Automation GUI工具
第八部分:ETL任務調度
第九部分:常見問題討論
/
/
第一部分:ETL Automation簡介
1、Teradata公司開發的ETL流程調度產品(product);
2、使用Perl程序開發,運行環境需要安裝Perl軟件及DBI、DBD插件;
3、C/S服務器架構
4、ETL Automaiton由以下幾部分組成:
(1)、ETL Automation服務
(2)、ETL Automation目錄架構
(3)、ETL Automation知識庫
(4)、ETL Automation環境變量
(5)、ETL Administrator / ETL monitor管理工具(GUI)
第二部分:ETL Automation架構

第三部分:ETL Automation環境變量說明
變量名稱

說明

舉例說明

AUTO_DB

ETL知識庫名稱,默認爲ETL

AUTO_DB=PETL

AUTO_DSN

ETL Automation連接數據庫的ODBC DSN

AUTO_DSN=ETLDB

AUTO_HOME

ETL主目錄路徑

AUTO_HOME=D:\DWETL

AUTO_JOB_COUNT

ETL流程調用任務的最大並行數

AUTO_JOB_COUNT=10

AUTO_PERL

Perl的安裝路徑

AUTO_PERL=C:\PERL

AUTO_PRIMARY_SERVER

ETL Automation的主服務器標識:1-主Server 0-Client

AUTO_PRIMARY_SERVER=1

AUTO_SERVER

ETL服務器名稱標識

AUTO_SERVER=DWLOAD

AUTO_SERVER_IP

ETL服務器的IP地址

AUTO_SERVER_IP=192.168.6.76

AUTO_SLEEP

ETL服務輪詢的時間間隔

AUTO_SLEEP=60

第四部分:ETL Automation目錄結構說明
/ETL (Automation 主目錄)
|—/APP 存放ETL任務腳本。在此目錄下先建子系統目錄,然後建ETL任務目錄
|—/DATA
|------/complete 存放已成功執行過的數據. 以系統名稱以及日期來建立子目錄
|------/fail
|---------/bypass 存放不須執行的檔案.以系統名稱以及日期來建立子目錄
|---------/corrupt 存放大小不符合的檔案. 以系統名稱以及日期來建立子目錄
|---------/duplicate 存放重複接收的檔案. 以系統名稱以及日期來建立子目錄
|---------/error 存放執行作業過程中產生錯誤的檔案. 以系統名稱以及日期來建立子目錄
|---------/unknown 存放未定義在 ETL Automation 機制中的檔案. 以日期來建立子目錄
|------/message 存放要發送訊息通知的控制文件
|------/process 存放正在執行中的作業所使用的數據文件及控制檔
|------/queue 存放準備要執行的作業所使用的數據文件及控制檔
|------/receive 用來接收各來源系統所傳送來的數據文件及控制文件
|—/LOG 存放 ETL Automation 系統程序及各作業在執行時所產生的記錄檔案
|—/bin 存放 ETL Automation 系統程序的執行文件
|—/etc 存放 ETL Automation 機制的一些設定檔案
|—/lock 存放 ETL Automation 系統程序及各作業在執行時所產生的 lock 檔案
|—/tmp 臨時緩衝目錄,存放臨時文件
第五部分:ETL Automation服務說明
服務名稱

說明

etlagent.exe

負責執行遠程操作的動作。另外該服務對應的日誌文件能夠提供一定的審

計功能。

etlclean.exe

負責執行數據清除 (House Keeping) 的動作

etlmaster.exe

負責處理由 etlrcv.pl 所交付的檔案。etlmaster.exe 會找出檔案所對應的作業

並在作業的執行條件滿足時呼叫 etlslave_nt.pl 或 etlslave_unix.pl 來執行作業

etlmsg.exe

負責發送訊息通知 (Message Notification) 的動作,可選方式爲短信或EMAIL

etlrcv.exe

負責處理從各來源系統所傳送來的檔案. 當檔案通過檢查後, 會將檔案交由

etlmaster.exe來處理

etlwdog.exe

在主要服務器(Primary erver) 上是負責接收各次 要服務器 (Secondary

Server)所傳送來的存活封包(Heartbeat Packet) 以判斷各服務的狀態並 更新

記錄。而在發現有次要服務器未能在一段時間內送來存活封包的話, 則會認

定此次要服務器 爲停止狀態, 而會將當時正在此部次要服務器上執行的作

業的狀態設成失敗(Failed)。 而在次要服務器(Secondary Server)上則是定時

發送存活封包(Heartbeat Packet) 至主要服務器 (Primary Server)上以通知目前

次要服務器的狀態

etlschedule.exe

負責提交定時任務作業的動作

1、etlrcv

2、etlmas

3、etlschedule

第六部分:ETL Automation知識庫說明
知識庫是ETL Automation最重要的組件之一。
包括但不限於以下信息存儲在ETL知識庫中:ETL服務器標識、 ETL任務的定義、任務之間的關係、任務運行狀態歷史、ETL記錄日誌、ETL文件接收日誌及ETL事件日誌等。
ETL知識庫中比較重要的表如下:
1、ETL服務器配置表:ETL_Server
2、ETL子系統表:ETL_Sys
3、任務定義表:ETL_Job、ETL_Job_Source、ETL_Job_TimeWindow;
4、任務關係表:ETL_Job_Dependency、ETL_Job_Stream、ETL_RelatedJob
5、任務運行狀態歷史表:ETL_Job_Status
6、ETL記錄日誌表:ETL_Record_Log
7、ETL文件接收表:ETL_Received_File
8、ETL事件表:ETL_Event
第七部分:ETL Automation GUI工具
ETL Automation GUI工具包括ETL Administrator和ETL Monitor。
ETLAdmin用來定義並管理在 ETL Automation 中的作業及作業關連性。ETLMonitor用來監看ETL服務器的狀態、作業的執行狀態及其它異常情況。

由於GUI工具使用Java語句編寫,因此在運行工具之前,必須安裝Java的運行環境(Runtime Environment ),需要安裝的Java運行環境版本爲1.3.1及以上。
你可以至 Sun 的網站去下載最新的 Java 執行環境版本。
第八部分:ETL任務調度
ETL Automation通過控制文件對ETL任務自動調度
文件命名規則
作業的腳本文件與控制文件的命名必須與ETL Automation資料庫表中的相關定義一致。其對應關係如下表所示:

文件或目錄

資料庫中的對應表和字段

作業目錄名

ETL_Job.Etl_Job

作業腳本名

ETL_Job.Etl_Job

receive目錄下的控制文件名

ETL_Job_Source.Source

queue目錄下的控制文件名

ETL_Job_Source. Conv_File_Head

process目錄下的控制文件名

ETL_Job_Source. Conv_File_Head

第九部分:常見問題討論
1、通過Automation調度作業時,作業爲何無法啓動?
ETL Automation的系統程序,以及所有作業腳本在正常執行時,都會在目錄HOME/etl/lock.locklock.lock調ETLMonitorHOME/etl/lock下生成一個.lock文件,因此當重複啓動一個系統程序或作業腳本時,都會首先檢查到lock目錄下已經有相應的.lock文件,這就避免了程序或作業的重複調用。 也可以通過ETL Monitor工具觀察到這一錯誤。 解決方法:將目錄HOME/etl/lock下的對應文件清除。
2、Automation的作業調度性能爲何會下降?
當Automation的receive、queue、process等目錄下積壓的控制文件過多時,或者資料庫表ETL_Job_Queue中存儲的記錄過多時,etlrcv、etlmas以及etlschedule等進程的執行效率會降低,從而使得Automation對作業的調度能力顯著下降。
例如在EMS項目組,曾出現過作業由pending狀態轉爲running狀態耗時45分鐘的情況。
解決方法:加強對Automation目錄結構的維護,對運行失敗的作業及時進行處理,避免由於作業失敗而導致上述目錄中的控制文件產生積壓。同時要儘量減少資料庫表ETL_Job_Queue中的記錄數。
3、有數據文件的作業加載失敗後,爲何無法重新啓動?
當作業帶有需要處理的數據文件時,在讀取數據文件之前,Automation會首先將該數據文件的信息存入到資料庫表ETL_Received_File中。
由於數據文件格式錯誤導致作業失敗後,Automation會自動將數據文件移入error目錄。之後,當數據文件的格式修改無誤,並將數據文件和控制文件重新移入receive目錄後,作業仍然無法執行。
解決方法:將資料庫表ETL_Received_File中的對應記錄刪除。
4、定時觸發的作業突然開始執行,且執行完後還會再次反覆執行。
這是由於從庫表ETL_TimeTrigger中直接刪除了該作業的定時觸發記錄,而沒有同步更新ETL_Job表中TimeTrigger字段的值。
Etlschedule進程首先檢查ETL_Job表,認爲當前作業是時間觸發的。隨後檢查ETL_TimeTrigger表時,無法找到該作業的觸發時間,此時默認其爲0,而當前時間通常大於等於0,因此係統認爲觸發條件滿足,該作業被不斷觸發。
解決方法:更新ETL_JOB表,同時將ETL_Job_Queue中已插入的對應記錄刪除。並且今後儘量通過GUI工具操作,避免直接對資料庫表進行update。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章