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