專利名稱:用于自動化etl應用的系統和方法
技術領域:
本發明一般地涉及數據處理,并且更具體地,涉及自動化管理 用于填充數據庫的ETL (提取轉換裝載)處理。
背景技術:
ETL是用于描述數據入庫(data warehousing )(或填充數據庫) 處理的通用術語,其涉及從源提取數據、將數據轉換成適于商業需 要,并且最終將數據裝載進數據庫。
ETL處理的第 一部分是從源系統提取數據。許多數據庫填充工 程合并來自多個不同源的數據。每個分離的源也可能使用不同的數 據組織結構和/或格式。此類的數據源可以包括關系數據庫和平面文 件,但也可以包括非關系數據庫結構。提取步驟提取數據并且將數 據解析成用于轉換處理的格式。
轉換處理通常對提取的數據應用規則和/或函數,以準備待裝載 的數據。轉換處理的要求是提取的數據以及用于數據庫的最終數據 格式的函數。此類的轉換規則和函數包括選擇特定的字段、翻譯編 碼的符號、編碼新的符號、計算值、合并源等等。
裝載處理將轉換的數據裝載進數據庫。根據組織的要求,該處 理范圍很寬。某些數據庫僅以新的數據來覆蓋舊的信息。更為復雜 的系統可以保留歷史并且審查數據庫的所有改變的痕跡。
ETL處理可以很復雜,具有明顯的操作問題。 一個此類的問題 是伸縮性。由于其屬性,ETL處理可以被周期性地執行,具有增加 的數據量和數據源要處理。此外,轉換規則和函數可以被持續地修 改以基于商業需要不同地處理數據。運行E T L處理的另 一 個問題是其可以要求相當大數量的處理時 間,并且可以很容易涉及能中斷處理的錯誤和其他不可預見的條件。 典型i也,不可以重啟一個處理級,而必須再次/人開始運4亍。這可以 顯著地延長執行完整的ETL處理的時間。
E T L處理的另 一 個問題是其需要大量的工作量來設計和構建用 于特定域的ETL系統。 一個中型數據倉庫工程可以具有200-300個 分離的作業。對于必須設計、構建、運行和維護此類復雜的系統的 開發者來說,幾乎沒有自動化的工具或技術來輔助他們。
發明內容
下文提供對本發明的筒短總結以便提供對本發明的某些方面的 基本理解。該總結并不是本發明的詳盡評述。不旨在標識出本發明 的關鍵或重要元素或敘述本發明的范圍。下面的總結僅僅以簡化形 式提供本發明的某些概念,作為下面將提供的詳細描述的序言。
本發明的一個實施方式稱為"DataStage服務架構"并且存在于 IBMDataStageETL工具的頂部。相對于傳統的DataStage安排技術, 本發明的該實施方式提供若干種優勢。其可以最小化工作流程執行 時間,例如通過盡可能快地在所有前期必備的作業已經完成并且作 業槽(slot)可用時啟動ETL作業來優化CPU使用。類似地, 一個 實施方式自動地管理重啟活動,因為其將阻止被放棄作業的所有子 作業的4丸行以1更防止不一致性。 一旦重啟,該實施方式卩又完成前次 執行掛起的作業。
一個實施方式允許通過使用技術表來定義和更新所有的配置。 作為 一個例子,添加或移除工作流程內的作業僅僅是插入/刪除表中 的值的事情。
本發明的一個實施方式允許現有的ETL工程合并進新的架構中。
本發明的實施方式的優勢在于減小用于設計、構建和測試ETL 系統的工作量。根據使用的架構組件和作業模板的比例以及應用的
6個性化程度,在新的工程上可以節省若千人月的架構開發。相比于
在ETL作業間沒有使用共同的指南、模板、架構或服務的情形,使 用本發明估計可以節省整個ETL開發工作量的40-50%。 其他優勢包括
.減小營銷的時間,使用預構建的架構層,其通常位于ETL
開發的關鍵路徑上。
通過業已證明、全面的和預先測試過的框架和服務組件,
減小開發風險并提升軟件質量。
通過將ETL管理服務盡可能地與ETL作業設計隔離而增加
靈活性,避免例如垂直或水平綁定ETL的固定#1行方案。
通過帶有共享組件的模塊化和標準化的架構,以及通過技
術元數據和軟件文檔的強制和標準化產品,增加了可維護性。
通過標準和全面的操作組件,改進可操作性。 本發明的一個實施方式包括一種用于利用作業表處理多個ETL 作業的系統,該作業表包括多個作業標識符,每個作業標識符標識 要運行的作業,其中所述作業表進一步包括關于在運行其他作業之 前,需要完成哪些作業的信息。其也可以包括優先級表,該優先級 表包括作業表中至少 一個作業標識符的優先級信息,其中如果一個 作業完成并且多個作業目前可以運行,則系統使用優先級表中的優 先級信息來確定多個作業中的哪個作業將運行。其也可以包括狀態 表,該狀態表包括關于哪些作業已經運行的信息,以及關于每個此 類作業的狀態結果的信息。系統可能在所有作業完成之前停下,于 是在重啟時,還未完成的作業將被運行。如果作業已經運行并且狀 態表指示作業已經完成,則作業將不會再次運行。系統可以將可同
時運行的作業的數目限制到預定的值。
關于在運行其他作業之前需要完成哪些作業的信息可以采用第 一作業標識符和第二作業標識符之間的父/子指示的形式。
另一個實施方式包括用于生成對關于多個ETL作業的實時信息的顯示的顯示接口 ,例如標識哪些作業已經完成。
本發明的另一實施方式包括整合組件,例如工作流程設計器,
用于從應用提取關于多個ETL作業的信息,并且將該信息插入進作業表中。另外, 一個實施方式可以包括示圖生成器,用于從作業表提取信息并且產生作業的示圖,該示圖包括哪些作業必須在其他作業之前運行的指示。示圖生成器可以使用Visio⑧宏來生成Visio中的示圖。
本發明也可以包括一種用于處理多個ETL作業的方法,其可以通過工作流程管理器來執行。該方法可以包括從作業表確定要運行的多個作業,其中作業表進一步包括關于在運行其他作業前需要完成哪些作業的信息;從狀態表確定要運行的多個作業的狀態,其中
狀態表包括哪些作業已經成功完成以及哪些作業需要被再次運行的指示;基于來自作業表和狀態表的信息確定要運行的作業的子集。要運行的作業的子集可以被保持在低于預定值。該方法也可以包括開始該作業子集的處理;并且如果該作業子集中的作業完成,則確定將要運行的另 一 個作業,其中該確定包括如果多個作業目前可以運行,則使用作業優先級信息。其也包括基于對多個作業的處理來更新狀態表。如果在所有作業完成前處理停止,則在再次開始多個作業的處理時,完成的作業將不再次運行。
該確定要運行的作業的子集的步驟包括基于來自狀態表的指示確定哪些作業已經完成。
該方法也可以包括生成對關于多個作業的實時信息的顯示,其中多個作業中的每個作業的狀態將被顯示。此類狀態可以包括標識作業是否已經完成。
通過參考考慮附圖的以下描述,可以獲得對本發明及其優勢的更為全面的理解,其中相似的參考標號指代相似的特征,并且其中圖1示出本發明的一個實施方式的商業組件層的概覽;
8圖2示出本發明的一個實施方式的元數據/語義層的概覽;圖3示出一個實施方式的服務層的概覽;
圖4示出形成一個稱為"DataStage服務架構"(涉及DataStageETL作業組件)的實施方式的若干組件;
圖5示出根據本發明的一個實施方式的元數據表;
圖6A和圖6B示出由工作流程管理器執行的應用邏輯的流程圖7示出根據一個實施方式的實時監視顯示;以及
圖8示出根據一個實施方式的圖表工具的樣本輸出。
具體實施例方式
在下文對各種實施方式的描述中,將參考附圖,附圖形成這里的一部分,并且在其中通過示例的方式示出可以實施本發明的各種實施方式。應該理解,在不脫離本發明的范圍下,可以使用其他的實施方式并且做出結構和功能上的修改。
一個實施方式(稱為DataStage (數據級)服務架構(DAS ))為涉及簡單或復雜數據裝栽操作的不同類型ETL應用(例如數據入庫、數據整合、數據移植等)提供完整和穩健的數據裝載環境。DataStage服務架構是較寬泛的資產ETL加速器套件的一部分,該資產ETL加速器套件也包括下面詳細描述的ETL加速器框架。根據本發明的 一 個方面的資產E T L加速器套件旨在提供用于設計和構建ETL應用的助推啟動(jumpstart),這些應用通常用于數據倉庫填充、數據整合、主數據同步或其他成批數據移植。加速器設計工作在業已得到證明的策略、原理、最佳實踐和已開發且在實際生產環境中使用的組件上。
ETL工程中的數據裝栽涉及商業轉換和對公共服務的使用。商業轉換是像提取(選擇)、分類/過濾(排序、分組、哪里)、轉換("真業務邏輯(true business logic )")和裝載(插入或更新)之類的基本任務的組合。公共服務是管理像調度、參數化、重啟&SLA管理、審查日志等架構任務的操作。本發明的一個實施方式關注于提供針對這些公共服務的執行環境。
E T L軟件的編程和維護可以是復雜的操作。為了支持商業組件,本發明的一個實施方式包括專用于涉及ETL安排的公共任務的一組服務組件。這些組件可以是平臺相關的但商業感知的(businessaware),從而它們是高度可重用的。使用具有預構建和已測試的服務組件的已證明框架的巨大優勢在于開發者可以減小設計&構建工作量,同時獲得更好的軟件質量。典型地可以實現節省總ETL開發工作量的大約40-50%。 一個實施方式有助于設置提升全面軟件質量的標準設計指南,并且還強制產生可幫助開發者工作的技術元數據,并且減小了軟件歸檔的工作量。
現在將提供根據一個實施方式的ETL加速器框架的概覽。ETL加速器框架包括3個層商業組件、元數據/語義、和服務。服務和元數據層圖表是與由Accenture公司提供的用于商業智能的Accenture遞送架構商業智能應用風格和Accenture遞送方法共享的基礎。
在圖1中示出用于ETL框架的商業組件。其包含核心業務邏輯。組件的高層視圖包括提取(選擇)任務20、分類/過濾(排序、分組,哪里)任務22、轉換(其包括業務邏輯的使用)任務24和裝載(插入或更新)任務26。
圖2的元數據層可以包括一組表32-34以及用于管理軟件配置和文檔的主要工具,所述一組表32-34保持共同的定義、管理公共的任務。在許多情形下,由ETL工具提供元數據倉庫36,并且元數據倉庫36也提供例如數據譜系或影響分析的功能。元數據可以從現有環境中導入。進一步,元數據可以用于使用提供的工具來產生當前ETL應用的文檔。
圖3的服務組件支持與ETL安排有關的共同任務的商業層。它們通常是平臺相關的但商業感知的,因此是高度可重用的。通常,在公共的ETL架構中,大多數的控制和管理邏輯與業務邏輯綁在一起并且這些都包含在^:據流組件中(在DataStage中這稱為作業)。
10在用于本實施方式的方法中,業務邏輯與控制和管理邏輯分開,從
而,在DataStage作業中,通常^又i文置業務邏輯。該方法支持在多個實現之間重用控制和管理組件,而不需要重新架構這些組件。對于DataStage解決方案,例如數據填充服務37和批處理服務38的某些組件被本發明的一個實施方式的DataStage架構啟用。由于它們的屬性,當執行填充數據庫的處理時,這些服務37和38可以被停止和重啟。
拒絕數據管理服務3 9處理在裝載期間的某個點需要被拒絕的無效數據,從而剩余的數據可以繼續并且處理可以在某個點完成。拒絕數據管理是重要的,從而盡管存在壞的或殘缺的數據,仍令處理繼續運行。拒絕記錄被存儲在數據容器中,以支持進一步檢查和解決造成拒絕的問題。
調度器42可以基于調度器、事件或改變數據捕獲通知來發起ETL處理。訪服務通常通過產品支持團隊或通過ETL工具來提供。ETL工具具有與ETL運行時環境緊密整合的優勢。
另一個批處理服務是重啟/恢復40,根據一個實施方式,其允許在故障后適度的恢復,并且將為重啟準備數據庫和ETL服務器,如下所述。
歸類為公共服務44的其他組件通常僅運行一次。此類服務可以包括日志&審查跟蹤46。在整個ETL處理過程中,穩健的日志和跟蹤服務是有用的,從而應用活動和數據操縱結果可以展示給用戶。參數化服務48包括幫助創建穩健的ETL解決方案的參數管理服務。ETL作業可以被設計成從調度器接受參數值而不是對它們進行硬編碼。異常處理服務50有助于正確的ETLl丸行和監一見。無論何時在ETL執行期間發現不期望的事件或無效數據,則通常將記錄事件。其他組件44可以包括線程管理服務52,其幫助實施方式對執行進行分割以運行在多個并行的進程中。
本發明的一個實施方式幫助實現DataStage服務架構(DSA ),其為涉及簡單或復雜的數據裝載操作的不同類型的ETL工程提供全
ii面和穩健的數據裝載環境。該DSA有助于實現如圖3中所指示的部分服務組件。通過標準化ETL作業設計、處理基本的ETL功能(例如調度、參數化和重啟管理)和便于對ETL流的IT操作,DSA也簡化了 ETL編程和維護。
DataStage服務架構可以實施在IBM DataStage ETL工具的頂部。如圖4中所示,DataStage ETL工具套件由可以被分類為服務器組件和客戶端組件的若干組件構成。
DataStage服務器組件包括
a. DataStage存儲庫53,包含構建數據商業中心或數據倉庫所需的所有信息的中央倉庫。通常存儲庫53以私有布局進行儲存,并且第三方工具不易訪問。可選地,可以有用于訪問特定DataStage工程的特性并提取技術元數據的DataStage基本功能。這些基本功能就是本發明使用的那些功能。
b. DataStage服務器55,其運行提取、轉換和將數據裝載進數據倉庫的可執行作業。
DataStage客戶端組件包括
a. DataStage設計器56,用于創建DataStage應用(稱為作業)的設計接口。每個作業規定數據源、所需的轉換和數據的目的地。編譯作業以創建由控制器所調度并且由服務器運行的可執行程序(主機作業被傳輸并且運行在主機上)。
b. DataStage控制器57,用于驗證、調度、運行和監—見DataStage服務器作業的用戶接口;
c. DataStage管理器56,用于瀏覽和編輯存儲庫53的內容的用戶接
口 ;
d. DataStage管理員56,用于執行管理任務的用戶接口 。
對于該實施方式,工作流程管理器58是DataStage控制作業,其控制和管理大多數的架構能力。DataStage定制例程60幫助管理公共任務(例如審查、錯誤處理)。技術元數據表62用于配置架構。另外,審查報告64用于監視ETL執行。將在下面進一步討論這些組件中的每一個組件。
在一個實施方式中,工作流程管理器58實現大多數的ETL服務。這些包括確定ETL過程42的執行順序,圖3;為在先前會話40中失敗的ETL過程進行重啟/恢復;并且審查ETL過程事件和活動(處理的消息/錯誤/記錄)46。其他此類服務包括管理異常處理50;提取ETL過程參數48;并且跟蹤工作流程執行46 (并且還有監視,但該框還未編號)。
在該實施方式中,工作流程管理器58使用一組技術元數據表62來配置上述服務的行為。根據工程的特性和大小以及根據目標環境,設定例如允許的最大的運行ETL作業的數目,最大的警告數目之類的局部和全局執行參數。將在下面進一步描述技術元數據表62。
DSA允許ETL過程開發被劃分并且被分發到多個程序員,程序員僅遵從很少的設計指南。例子包括配置設計成從調度器42接收一組外部參數的ETL作業;并且也包括配置盡可能小以便允許重啟&恢復過程的ETL作業。
在圖5中示出技術元數據表62的邏輯數據模型的示圖。如前面所指出,這些表包括用于要由工作流程管理器58執行的作業的參數和值。在該實施方式中,表62通過使用編程作業的數據(如下所描述)或通過從不使用DataStage服務架構的ETL工程導入的數據(也將在下面描述)來填充。
對于該實施方式,某些重要的表被維護并且用于每個作業。TORAFULL01 TEC作業狀態表62a是作業主數據表并且對于每個作業包含關于源系統、主題區域、警告等級的信息,以及關于作業的最近運行狀態的信息,包括何時執行開始以及在完成時的狀態。關于上一次執行運行的信息在每次運行時被更新并且用于管理重啟和恢復動作。該表也包含用于每個作業的優先級。當多個作業同時準備好運行時,該優先級用于選擇關于哪個(些)作業先運行的順序。這樣的例子是當父作業完成時,取決于完成的父作業的多個子作業將變得有資格來運行。不同的子作業可能具有不同的運行要求(例如運行的時間、處理器負載等)。如果這些子作業都同時啟動,或 隨機選擇一個子集,則處理可能不穩定或變慢。通過為一個或多個 子作業提供優先級,實施方式可以以有效的方式來選擇和運行子作
業。父子關系維護在TORAFULL03TEC父作業表62c中。
TORAFULL02TEC作業參數表62b包含在執行期間由每個作業 使用的所有本地參數的列表和值。該表中的信息通常在運行時是只 讀,但在異常情況下,可以使得作業能夠修改某些值,然而,通常
不推薦這樣的修改操作。
TORAFULL03TEC父作業表62c為每個從屬作業的或子作業記 錄父作業是什么。父作業是在子作業能夠開始前必須完成的作業。 一個作業可以具有多個父作業,從而在啟動子作業前,所有的父作 業都應該完成。每個父作業可以具有一個或多個子作業。該表在運 行時是只讀的。該父-子設置定義了作業可以按什么順序運行,其中 父作業先于子作業。當有多于一個的子作業時,包含在表 TORAFULL01 TEC作業狀態表62a中的優先級將確定哪個作業將先 啟動。
TORAFULL04TEC所有鏈接作業表62d包含每個作業中包含的 所有數據鏈接和轉換器的名稱。該表在運行時是只讀的并且由DSA 審查過程來使用。根據在數據流邏輯中的位置,數據鏈接可以被標 記為輸入/輸出/錯誤鏈接。DSA審查過程提取針對每個鏈接處理的行 的數目,并且根據輸入/輸出/錯誤分類來聚合該數據以提供有意義的 4丸4亍統計。
在作業期間可以創建或填充其他表。例如,TORAFULL01TECH 歷史作業狀態表62e包含整個工作流程會話的所有作業執行統計的 歷史。TORAFULL05TECH事件日志表62f包括運行時錯誤信息,其 允許該實施方式來處理和分析產生錯誤的原因并且一旦錯誤糾正馬 上重啟作業。
TORAFULL07TECKPI表62g包含用于所建議的作業和區域 KPI的閾值以支持SLA管理。該表是可選的并且對于常規操作我們不需要使用它。當用戶想增強DSA的報告和監視能力,尤其當作業
從外部源系統讀取數據或當作業必須在特定的時間窗內完成時,該 表是有用的。
工作流程管理器58通常使用SQL (結構化查詢語言)來訪問表 62。當工作流程管理器58開始處理工作流程時,產生新的會話標識 符值并且將其存儲在SESSIONID字段。
工作流程管理器的一個實施方式如圖6中示出的那樣處理作業。 如先前所描述的,如在該實施方式中所闡述的,本發明允許ETL作 業以這樣的方式來處理,即允許區分優先級、重啟和恢復,以及具 有在運行期間和運行之后審查作業的能力。這樣,工作流程管理器 根據圖6中示出的步驟來完成作業執行和監視。
在步驟200,工作流程管理器58初始化工作流程,并且在步驟 202,確定來自先前運行掛起的作業的數目。通常掛起的作業是由于 自身作業或父作業中的錯誤條件而未能被執行的作業。
在步驟204處,工作流程管理器確定是否有作業要再次運行。 這些作業是先前啟動但未完成的作業,通常是因為錯誤或優先級問 題。如果有這樣的作業,工作流程管理器更新圖5中元數據表62中 的SESSIONID字段,并且更新引導(pilot)數據。引導數據是由工 作流程管理器全局管理的日期時間值,在步驟208中,其可以由每 個作業使用于管理增加的負載。
如果沒有要再次運行的作業,但有新的作業要開始,則在步驟 206,工作流程管理器初始化所有此類作業的狀態。接著,在步驟208 處,SESSIONID字段和引導數據被更新。在步驟210,工作流程管 理器接著確定要運行的作業的數目。將在下面描述關于限制要運行 的作業的數目的信息。
在這點上,工作流程管理器開始循環以允許根據一個實施方式 來進行作業處理。在步驟212,如果沒有作業要運行,則處理完成, 并且在步驟214,處理結束。然而,如果有作業要運行,則處理繼續。 在步驟216,工作流程管理器基于父子關系和優先級值來確定將要執行的下一個作業。
一旦選擇了下一個作業,工作流程管理器檢查在 存儲庫中是否存在作業。這對于避免工作流程管理器故障是必要的,
不同的名字。在作業不存在的情形中,在步驟220, TORAFULLOl TEC 作業狀態表上的狀態字段將被更新并且處理結束。所有其他掛起的 作業將不被執行以避免處理的不 一致性。該保守行為允許操作者檢 查和校正工作流程結構。
如果在步驟218確定可執行作業存在,則在步驟222確定該作 業是否具有可運行的狀態(被編譯)。如果沒有(作業被放棄或沒 被編譯),則工作流程管理器停止處理執行,中止所有的運行作業。 接著在步驟224,如在先前的項目中,針對受影響的作業的 TORAFULLOl TEC作業狀態表中的狀態字段被更新。該更新使用預 定的報告允許操作者知道處理中正發生著什么。
在步驟226,工作流程管理器準備作業并開始執行。在該實施方 式中, 一次可以執行多達十個作業,然而,本發明不受任何此類作 業數目的限制。工作流程管理器保持跟蹤運行的作業的數目,并且 更多的槽可用于運行作業,則在步驟228,處理返回到步驟212以開 始其他掛起的作業。否則在步驟230,處理繼續直到運行的作業完成, 此時在步驟232工作流程管理器將進行執行后操作,包括更新 TORAFULL01 TEC作業狀態表中的作業狀態字段,記錄 TORAFULL01TEC歷史作業狀態表中的作業執行信息,以及記錄 TORAFULL05TEC事件日志表中的審查信息。
所述的該處理允許工作流程管理器處理具有優先級和順序要求 的多個作業,以及在工作中作業可能被停止和因為錯誤和其他情況 4皮解決而多次重啟。
本發明的一個實施方式包括具有GUI的用戶控制臺,其提供對 處理的配置和控制。通過提供用戶名和口令,該控制臺允許用戶獲 得訪問。用戶接著可以執行某些任務,包括 作業查找在ETL數據庫中查找給定的作業名。作業管理配置、修改、刪除作業和相關屬性。
Kpi查找在ETL數據庫中查找給定的Kpi名(KPI-密鑰性能指示
々々 、付)。
Kpi管理配置、修改、刪除Kpi。 添加用戶添加新的用戶。 口令管理管理用戶的口令。
用于為元數據表62輸入數據和修改元數據表62的工具。
圖7示出根據本發明一個實施方式的由控制臺提供的顯示。該 顯示示出預定報告表以允許實時監視當前會話。關于每個作業的狀 態的信息被呈現,包括開始和結束時間,運行的狀態、錯誤計數等。 其他報告的例子包括執行趨勢報告和在會話級、作業級和主題區域 級的SLA監視。
在圖8中示出另一個實施方式的特征。稱為工作流程設計器的 該實施方式可以基于從元數據表6 2自動提取的信息來產生工作流程 圖。工作流程圖可視地展示一個處理的作業隊列排序和依賴性,允 許用戶容易地理解復雜的作業要求和排序。在該實施方式中,通過 從元數據表62提取數據創建工作流程圖,并且通過使用宏在 Microsoft Visio⑧中自動i也生成。然而,可以以多種不同的方式來產 生該工作流程圖,并且其可以被配置成提供或多或少的信息。工作 流程設計器使用SQL聲明和臨時表來產生工作流程結構的表格化呈 現。該工具使用Microsoft Visio對象模型來將每個作業畫成一個框 并且根據父子關系來連接這些框。在每個框內寫出關于作業的某些 有用信息,包括作業名和執行參數。因為其是基于支持DSA的相同 技術表,工作流程設計器可以被認為是DSA的擴展。
本發明的另 一 實施方式包括幫助將現有的DataStage ETL應用移 植和轉換到基于DataStage服務架構的架構的工具。復雜的ETL整 合工程可以具有幾百項作業,因此數據錄入很不簡單并且容易出現 錯誤。稱為讀取當前配置的輔助程序可以讀取現有的架構,并且提 取每個作業內的關于作業名、參數名和數據鏈接和轉換器名的某些信息。關于所述信息的細節被插入到元數據表中,例如
TORAFULL01TEC作業狀態62a, TORAFULL02TEC作業參數62b, TORAFULL03TEC父作業62c,以及TORAFULL04TEC所有鏈接作 業62d。通常,提取的信息不是對正確的處理執行的窮舉,并且應 該:帔審閱和手動地完成,如下一點中所指示。
一旦完全裝載元數據表62,可以設計填充架構。這可以包括在 主題區域中對作業進行分類、基于功能的依賴性來確定父子關系, 以及根據持續時間和根據子作業的數目來確定作業的重要性。
DataStage服務架構可以應用于任何的DataStage實現并且不需 要特定的ETL作業"i殳計方法。通常作業應該纟皮設計成從調度器接收 一組外部的參數。如果現有的作業具有它們自己的參數管理,則理 解如何將此與服務架構進行整合是有益的。另一個有用的通用指南
是ETL過程應該被設計的盡可能小,以便更好地管理重啟&恢復處 理。這可以在一個實施方式中通過頻繁地使用分級點來完成。基于 最終的填充架構和基于服務器的大小,可以確定和設定可以并行執 行的處理的最大數目。
本發明的 一 個或多個方面可以具體實現在計算程序產品、計 算機可用數據和計算機可執行指令中,例如在由 一 個或多個計算機 或其他設備執行的一個或多個程序模塊,在信號和/或數據流中。通 常地,程序模塊包括例程、程序、對象、組件、數據結構等,當由 計算機或其他設備中的處理器執行時,其執行特定的任務或實現特 定的抽象數據類型。計算機可執行指令可以存儲在計算機可讀介質 上,例如硬盤、光盤、可移動存儲介質、固態存儲器、RAM等。正 如本領域技術人員所知,程序模塊的功能性可以如各種實施方式中 所期望的那樣合并或分布。此外,功能性可以整體或部分地體現為 固件或硬件等同物,例如集成電路、現場可編程門陣列(FPGA)等。 特定的數據結構可以用于更為有效地實施本發明的一個或多個方 面,并且此類的數據結構在這里所述的計算機可執行指令和計算機 可用數據的范圍內可以預想到。
18具體地,提供一種計算機可讀存儲介質,包括當提供給處理器 時,使得處理器執行下面操作的指令
從作業表確定要運行的多個作業,其中作業表進一 步包括關于 在運行其他作業前要完成哪些作業的信息;
從狀態表確定要運行的多個作業的狀態,其中狀態表包括對哪
些作業已經成功完成并且哪些作業需要被再次運行的指示;
基于來自作業表和狀態表的信息確定要運行的作業的子集
開始作業子集的處理;
如果作業子集中的作業完成,則確定要運行的另一作業,其中 確定包括如果多個作業目前可以運行,則使用作業優先級信息;以 及
基于對多個作業的處理來更新狀態表。
進一步具體地,計算機可讀存儲介質進一步包括使得處理器在 確定要運行的作業子集時,基于來自狀態表的指示確定哪些作業已 經完成的指令
進一步具體地,計算機可讀存儲介質進一步包括使得處理器執 行下面操作的指令
在多個作業成功完成之前,停止對多個作業的處理,因此在再
次開始對該多個作業的處理時,已完成的作業將不再次運行。
進一步具體地,計算機可讀存儲介質進一步包括使得處理器來
生成對關于多個作業的實時信息的顯示的指令,其中多個作業中的 每個作業的狀態將被顯示。
盡管以特定于結構特征和/或方法動作的語言描述了主題,但是 應該理解在所附權利要求書中所限定的主題不必然限于上述的特定 特征或動作。相反地,上述的特定特征和動作是作為實現權利要求 的示例形式而^^開。
19
權利要求
1. 一種用于處理多個ETL作業的系統,包括作業表,其包括多個作業標識符,每個作業標識符標識要運行的作業,其中該作業表進一步包括關于在運行其他作業之前,需要完成哪些作業的信息;優先級表,其包括作業表中至少一個作業標識符的優先級信息;其中如果一個作業完成并且多個作業目前可以運行,則系統使用優先級表中的優先級信息來確定所述多個作業中的哪個作業將運行。
2. 根據權利要求1所述的系統,進一步包括狀態表,其包括關于哪些作業已經運行的信息,以及關于每個此 類作業的狀態結果的信息。
3. 根據權利要求2所述的系統,其中如果一個作業已經運行并 且狀態表指示該作業已經完成,則該作業將不會再次運行。
4. 根據前面權利要求的任意一項所述的系統,其中關于在運行 其他作業之前需要完成哪些作業的信息包括第一作業標識符和第二 作業標識符之間的父/子指示。
5. 根據前面權利要求的任意一項所述的系統,其中在所有作業 完成前,所述系統可能停止,于是在重啟時,還沒完成的作業將被 運行。
6. 根據前面權利要求的任意一項所述的系統,進一步包括顯示 接口,以產生對關于多個ETL作業的實時信息的顯示。
7. 根據權利要求6所述的系統,其中此類信息包括標識哪些作 業已經完成。
8. 根據前面權利要求的任意一項所述的系統,其中所述系統將 可同時運行的作業的數目限制到預定的值。
9. 根據前面權利要求的任意一項所述的系統,進一步包括整合組件,用于從應用提取關于多個ETL作業的信息,并且將 該信息插入進作業表中。
10. 根據前面權利要求的任意一項所述的系統,進一步包括示圖 生成器,該示圖生成器用于從作業表提取信息并且生成作業的示圖, 該示圖包括關于哪些作業必須在其他作業之前運行的指示。
11. 根據權利要求IO所述的系統,其中所述示圖生成器使用 Visio⑧宏來生成Visio中的示圖。
12. —種用于處理多個ETL作業的方法,包括 從作業表確定要運行的多個作業,其中該作業表進一步包括關于在運行其他作業前需要完成哪些作業的信息;從狀態表確定要運行的多個作業的狀態,其中該狀態表包括哪些 作業已經成功完成以及哪些作業需要被再次運行的指示;基于來自作業表和狀態表的信息確定要運行的作業的子集;開始處理該作業子集;如果該作業子集中的作業完成,則確定要運行的另一個作業,其 中該確定包括如杲多個作業目前可以運行,則使用作業優先級信息; 基于對多個作業的處理來更新狀態表。
13. 根據權利要求12所述的方法,其中所述確定要運行的作業 的子集的步驟包括基于來自狀態表的指示確定哪些作業已經完成。
14. 根據權利要求12或13所述的方法,進一步包括在多個作業成功完成前停止多個作業的處理,于是在再次開始對 該多個作業的處理時,已完成的作業將不被再次運行。
15. 根據權利要求12到14中的任意一項所述的方法,進一步包括生成對關于多個作業的實時信息的顯示,其中所述多個作業中的 每個作業的狀態被顯示。
16. 根據權利要求15所述的方法,其中此類狀態包括標識作業 是否已經完成。
17. 根據權利要求12到16中的任意一項所述的方法,其中要運行的作業的子集低于預定值。
18. 根據權利要求12到17中的任意一項所述的方法,進一步包括從應用提取關于多個作業的信息,所述信息包括作業名和作業參 數;以及將所述信息插入進作業表中。
19. 根據權利要求12到18中的任意一項所述的方法,進一步包括從作業表提取信息,所述信息包括作業名和在運行其他作業前需 要完成哪些作業;以及產生作業的示圖,該示圖包括作業名以及關于哪些作業必須在其 他作業之前運行的指示。
20. 根據權利要求19所述的方法,其中使用Visio⑧宏來生成示圖。
21. —種計算機程序產品,包括計算機可讀指令,當在合適的系 統上加載和執行該指令時,用于執行根據前面權利要求12到20的 任意一項所述的處理多個ETL作業的方法的步驟。
全文摘要
一種用于開發和操作用于填充數據庫的ETL(提取轉換裝載)系統的新穎工具。一個實施方式使用元數據表來描述要運行的作業之間的關系以便處理數據。這些關系可以包括父子作業關系以及優先級。這些工具創建有助于自動化和控制ETL處理的DataStage服務架構(DSA)。其他工具允許開發者容易地看到和更新ETL處理。
文檔編號G06F17/30GK101477543SQ20091000131
公開日2009年7月8日 申請日期2009年1月4日 優先權日2008年1月3日
發明者A·格拉索, P·佩萊格里尼 申請人:埃森哲環球服務有限公司