專利名稱:一種etl調度的實現方法及裝置的制作方法
技術領域:
本申請涉及計算機領域,特別涉及一種流程控制方法及裝置。
背景技術:
數據倉庫(DataWarehouse, DW)是一個面向主題的、集成的、相對穩定 的、反映歷史變化的數據集合,用于支持管理決策。數據倉庫是一個獨立的數 才居多不境,而數才居抽取、壽爭4吳和力口載(Extraction國Transformation-Loading, ETL) 是構建數據倉庫的重要一環。
ETL用于將分布的、異構數據源中的數據(例如,關系數據、平面數據文 件等)抽取到臨時中間層后進行清洗、轉換和集成,最后按照預先定義好的數
據倉庫模型,將數據加載到數據倉庫中,使構建的數據倉庫成為聯機分析處理 和數據挖掘的;S^。在技術上,ETL主要涉及到關聯、轉換、增量、調度和監 控等幾個方面。通常,數據倉庫中的數據不要求與聯機事務處理系統中的數據 實時同步,因此,ETL可以定時進行,^旦多個ETL的才喿作時間、順序和成敗 對數據倉庫中數據的有效性有著至關重要的影響,從而直接影響到聯機分析處 理結果和數據挖掘結果的質量。
目前,構建數據倉庫時所執行的ETL大多使用基于Java程序語言的事 務管理系統(Java Business Process Management, JBPM)引擎實現程序代碼的 流程化控制,所謂JBPM引擎,是一種基于J2EE的輕量級工作流管理系統, 它作為企業級的流程引擎,在外部還拓展了如身份組件、兼容性數據包、任務 管理等模塊。JBPM引擎在運行時,以令牌(即認證權限,如用戶名、密碼等) 作為媒介在節點之間依次傳遞,令牌到達哪個節點,哪個節點所映射的程序就 開始執行,程序執行完成后再將令牌向下傳遞。令牌在傳遞過程中可以被克隆 成兩份分別傳送給兩個具有獨立任務程序的節點,這兩個節點即可并行執行相應的任務程序;如果有一節點執行的任務程序依賴于上述兩個任務程序的執行 結果,則該節點需要收集到用于分別表示上述兩個任務程序執行完畢的兩個令 牌后,才能開始執4于相應的任務程序。
JBPM引擎并不是針對ETL的流程調度所設計的流程引擎,因此,使用 JBPM引擎對ETL進行流程調度管理,會降低ETL的執行效率,例如
現有的JBPM引擎是一個開放式的流程引擎,其不僅僅應用于ETL領域,也 應用于OA-辦公自動化、CRM-客戶關系管理等系統,因此,JBPM引擎中嵌 套了許多與ETL的流程調度管理無關的功能,如swimlane-泳道、安全認證管 理、消息服務等功能。并且JBPM引擎內核采用令牌式依次傳遞方式,不能適 應'任務回退,、'任務跳躍前進,等ETL流程調度中的實際應用需求。
另一方面,JBPM引擎所采用的流程描述語言(JPDL)不能描述父子流程 間的依賴關系,只能靠程序員對JAVA程序中的節點類進行擴展來實現相似的功 能,這樣,在任務程序執行過程中便需要反復通過擴展類來創建子流程,從而 嚴重降低了父流程的執行效率。同時在JBPM流程設計器中也不提供整體ETL 調度流程的可視化管理,從而增加了流程設計和后期維護的技術難度。
本申請實施例中,在執行ETL調度包含的若干任務流程時,針對任意一個 任務流程,根據預設的配置文件確定任務流程內包含的各子任務流程的觸發方 式、執行順序和相互之間的依賴關系;按照設定的觸發方式依次觸發相應的子 任務流程,并且按照設定順序執行已被觸發的子任務流程,其中,在確定至少 一個子任務流程已執行完畢時,根據所述子任務流程之間的依賴關系,開始執 行依賴所述至少一個子任務流程并且已被觸發的其他子任務流程。這樣,便使 各任務流程內的子任務流程之間的業務邏輯清晰、業務功能明確,從而有效提 升了 ETL調度流程的執行效率。
發明內容
本申請實施例提供一種ETL的流程調度方法及裝置,用于提高ETL調度流程的執行效率。
本申請實施例提供的具體技術方案如下
一種ETL調度的實現方法,ETL調度包含若干任務流程,每一任務流程 包含若干子任務流程,其中,針對一個任務流程,包括
根據預設的配置文件確定任務流程內包含的各子任務流程的觸發方式、執 行順序和相互之間的依賴關系;
按照設定的觸發方式依次觸發相應的子任務流程,并且按照設定順序執行 已被觸發的子任務流程,其中,在確定至少一個子任務流程已執行完畢時,根 據所述子任務流程之間的依賴關系,開始執行依賴所述至少一個子任務流程并 且已被觸發的其他子任務流程。
一種用于執行ETL調度的裝置,包括
存儲單元,用于保存配置文件,該配置文件至少包含歸屬于ETL調度的 若干任務流程內各子任務流程的觸發方式和相互之間的依賴關系;
確定單元,用于根據所述配置文件,確定某一任務流程內包含的各子任務 流程的觸發方式、執行順序和相互之間的依賴關系;
處理單元,用于按照設定的觸發方式依次觸發相應的子任務流程,并且按 照設定順序執行已被觸發的子任務流程,其中,在確定至少一個子任務流程已 執行完畢時,根據所述子任務流程之間的依賴關系,開始執行依賴所述至少一 個子任務流程并且已被觸發的其他子任務流程。
本發明實施例中,提供了嵌套式ETL調度實現方法,即在執行ETL調度 包含的若干任務流程時,針對任意一個任務流程,根據預設的配置文件確定任 務流程內包含的各子任務流程的觸發方式、執行順序和相互之間的依賴關系; 按照設定的觸發方式依次觸發相應的子任務流程,并且按照設定順序執行已被 觸發的子任務流程,其中,在確定至少一個子任務流程已執行完畢時,根據所 述子任務流程之間的依賴關系,開始執行依賴所述至少一個子任務流程并且已 被觸發的其他子任務流程。這樣,便使各任務流程內的子任務流程之間的業務邏輯清晰、業務功能明確,從而有效提升了 ETL調度流程的執行效率。本發 明同時公開了 一種用于執行ETL調度的裝置。
圖1為本申請實施例中ETL調度所包含的任務流程示意圖2為本申請實施例中任務流程組成結構示意圖3A為本申請實施例中ETL調度服務器功能結構圖3B和圖3C為本申請實施例中ETL調度服務器內處理單元功能結構圖4為本申請實施例中任務流程1設置方式示意圖5為本申請實施例中ETL調度服務器執行任務流程的第 一種方式流程
圖6為本申請實施例中ETL調度服務器執行任務流程的第二種方式流程
圖7為本申請實施例中ETL調度服務器。
具體實施例方式
在構建數據倉庫時,為了提高數據抽取、轉換和加載 (Extraction-Transformation-Loading, ETL)調度流程的執行效率,本發明實施 例中,針對ETL調度包含的若干任務流程內任意一個任務流程,執行以下操 作根據預設的配置文件確定任務流程內包含的各子任務流程的觸發方式、執 行順序和相互之間的依賴關系;按照設定的觸發方式依次觸發相應的子任務流 程,并且按照設定順序執行已被觸發的子任務流程,其中,在確定至少一個子 任務流程已執行完畢時,根據所述子任務流程之間的依賴關系,開始執行依賴 所述至少一個子任務流程并且已被觸發的其他子任務流程。
本申請實施例中,ETL調度模型中定義了任務流程、子任務流程和程序流 程的概念。參閱圖l所示,ETL調度工作是由若干任務流程組成,其中,各任務流程 按照設定的依賴關系運行,任務流程之間可以串行,也可以并行。
參閱圖2所示,任務流程是ETL調度的基本單元,由一個或多個子任務 流程(以下稱為任務塊)組成,任務塊用于描述一個業務的執行目的, 一個獨 立的任務塊包含一個或多個程序流程(圖2中僅以一個任務塊包含一個程序流 程為例),多個任務塊以邏輯依賴關系組成的流程就是任務流程。例如,參閱 圖2所示,任務l、任務2、任務3和任務4這四個任務塊組成了任務流程1。
如圖2所示,程序流程由 一個或多個獨立的程序塊以邏輯依賴的形式組成, 每一個程序塊必須確保事務的原子性、獨立性、 一致性和持續性,即每一個程 度塊為一個原子級進程。程序塊可以是shdl腳本、java程序、omcle存儲過程、 SQL塊等等; 一個任務塊內的一個或多個程序流程是完成一個任務的具體實現 方法和步驟。例如,參閱圖l所示,程序ll、程序12、程序13和程序14這四個 程序塊組成一個程序流程以完成任務1 。
本實施例中,以一個任務塊內包含一個程序流程為例進行具體i兌明。
任務塊內包含的程序流程中第一個程序塊的開始運行表示任務塊開始執 行,而最后一個程序塊的結束運行則表示任務塊結束執行。例如,如圖2所示, 程序11開始運行則表示任務1開始執行,而程序14結束執行則表示任務1結 束執行。
本實施例中,各任務塊的執行過程分為觸發和運行兩個階段,任務的觸發 包含時間觸發和事件觸發兩種,觸發階段只是生成任務實例,但當前任務實例 必須等待其前置任務運行完成后才能運行。
下面以任務塊由時間觸發為例進行說明。本實施例中,ETL調度流程中的 各任務塊可以按照-沒定的時間點自行觸發,例如,每天上午8: 00、每周周一 中午12: 00、或者每月第一天的下午13: 00;也可以按照設定的循環周期自行 觸發,例如,每隔24小時觸發一次,每隔一周觸發一次,或者每隔一個月觸發 一次等等。在同一任務流程中可以包含執4亍間隔周期不同的兩個4壬務,例如,如圖l
所示,任務1為任務2和任務3的前置任務且設定每月執行一次,而任務2和任務 3則設定為每天執行一次,那么,任務2和任務3在每次執行之前都需要判斷任 務l在當月是否已執行完成,確定任務l已在當月執行完成后,再執行后續的操 作。這樣設計的好處是減小了任務和任務流程的緊耦合, 一個任務既能表示任 務流程中的某一環節也可以獨立重復調用,而循環周期的定義可以令整個任務 流程跳過不需要重復執行的任務,提高執行性能。
下面結合附圖對本申請優選的實施方式進行詳細說明。
參閱圖3A所示,本實施例,用于執行ETL調度流程的ETL調度服務器包括 存儲單元300、確定單元301和處理單元302,其中,
存儲單元300,用于保存配置文件,該配置文件至少包含歸屬于ETL調度 的若千任務流程內各子任務流程的觸發方式和相互之間的依賴關系;
確定單元301,用于根據所述配置文件,確定某一任務流程內包含的各子 任務流程的觸發方式、執行順序和相互之間的依賴關系;
處理單元302,用于按照設定的觸發方式依次觸發相應的子任務流程,并 且按照設定順序執行已被觸發的子任務流程,其中,在確定至少一個子任務流 程已執行完畢時,根據所述子任務流程之間的依賴關系,開始執行依賴所述至 少一個子任務流程并且已被觸發的其他子任務流程。
在上述ETL調度服務器內,存儲單元300還用于保存任務流程包含的各 任務塊的觸發方式、執行順序和相互之間的依賴關系,以及程序流程包含的各 程序塊的觸發方式、執行順序和相互之間的依賴關系;如圖3所示,本申請實 施例中,ETL調度服務器內還包括一監測單元303,用于對各任務流程、各子 任務流程、各程序流程和各程序塊的執行情況進行監測,并將監測結果以郵件 或短信方式通知有斥又用戶。
參閱圖3B所示,處理單元302進一步包括第一處理子單元3020、第二處 理子單元3021和第三處理子單元3022,其中,第一處理子單元3020,用于在執行某任務流程時,按照設定的觸發方式依 次觸發相應的任務塊(即相應的子任務流程),并且按照設定順序執行已被觸 發的任務塊,其中,在確定至少一個任務塊已執行完畢時,根據所述任務塊之 間的依賴關系,開始執行依賴所述至少一個任務塊并且已被觸發的其他任務 塊。
第二處理子單元3021,用于在執行某任務塊(即某一子任務流程)時,按 照設定的觸發方式依次觸發相應的程序流程,并且按照設定順序執行已被觸發 的程序流程,其中,在確定至少一個程序流程已執行完畢時,根據預設的各程 序流程之間的依賴關系,開始執行依賴所述至少一個程序流程并且已被觸發的 其他程序流程。
第三處理子單元3022,用于在執行某程序流程時,按照設定的觸發方式依 次觸發相應的程序塊,并且按照設定順序執行已被觸發的程序塊,其中,在確 定至少一個程序塊已執行完畢時,根據預設的各程序塊之間的依賴關系,開始 執行依賴所述至少一個程序塊并且已被觸發的其他程序塊,所迷程序塊為原子 級進程。
或者,
參閱圖3C所示,若某一任務流程由單一程序流程組成,即可以看作直接 由若干程序塊組成,則處理單元302可以通過內部設置的處理子單元對上述任 務流程包含的若干程序塊進行處理,該處理子單元用于在執行某程序流程時,
行已被觸發的程序塊,其中,在確定至少一個程序塊已執行完畢時,根據預設 的各程序塊之間的依賴關系,開始執行依賴所述至少一個程序塊并且已被觸發 的其他程序塊,所述程序塊為原子級進程。
基于上述ETL調度服務器,本實施例中,以圖l所示的任務流程l為例進行 說明。參閱圖2所示,在任務流程l中包括四個待執行的任務,分別為任務l、 任務2、任務3和任務4,其依賴關系為任務2和任務3的觸發均依賴于任務1的運行結果,任務2和任務3為并行關系,任務4的觸發依賴于任務2和任務3的運 行結果;如圖4所示,假設任務1設定在每天03: OO觸發,任務2設定在每月13 號的4: OO觸發,任務3設定在每天04: OO觸發、任務4設定在每天05: OO觸發, 那么,參閱圖4和圖5所示,假設執行日期為某月12日,則ETL調度服務器執行 任務流程l的第一種方式的詳細流程如下
步驟500:在時間到達03: OO時,觸發任務l并開始運行,任務l的運行標 志著任務流程l的啟動。
假設本申請涉及的內容是關于一個網絡支付系統,在實際應用中,用戶在 使用網絡支付系統時可能會存在使用信用卡進行違法套現的情形,本實施例可 以用于統計使用網絡支付系統的用戶行為,以便對用戶違法套現的行為加以識 別,其中,任務流程l所執行的內容可以有很多種,例如任務流程l為"套 現數據提取",而任務l為"統計前一個月卡信息,,,任務2為"統計簽約商戶 列表"、任務3為"統計白名單列表",任務4為"統計過濾后貨記卡用戶數" 等等,具體任務流程的內容可以根據具體環境而設定,上述內容僅為舉例。
步驟510:在時間到達04: OO時,確定當天日期不是本月13號后,跳過任 務2不運行,同時,觸發任務3但并不運行,因為任務3是任務1的后置任務,任 務l的運行結果尚未獲得,任務3觸發后不能夠馬上運行。
步驟520:在時間到達04: 35時,任務l運行完畢,獲得任務l的運行結果, 并開始運行任務3。
步驟530:在時間到達04: 50時,任務3運行完畢,獲得任務3的運行結果。 步驟540:在時間到達05: OO時,觸發任務4并開始運行。 本實施例中,由于任務3在任務4觸發之前便已運行完畢,因此任務4在觸 發后可以馬上運行,并且由于任務2在當前流程中被跳過,所以任務4雖然為任 務2的后置任務,但在當前流程中可以忽略任務2的運行結果,僅根據任務3的 運行結果即可開始運行。另一方面,如何任務4觸發后,任務3尚未運行完畢,則任務4需要等到任 務3運行完畢,獲得任務3的運行結果后才能夠開始運行。
步驟550:在時間到達06: 15時,任務4運行完畢,這表示任務流程l已結束。
在上述步驟500-步驟550中,各任務是依靠設定的時間點觸發的,在實際 應用中,還可以將各任務設置為依靠事件觸發,例如在步驟500-550記載的 流程中,任意一任務流程發生異常時,ETL調度服務器內設置的錯誤收集器會 自動調用綁定該異常情況,并調用處理該異常事件的任務。
另一種情況下,假設執行日期為某月13號,那么,參閱圖6所示,ETL調 度服務器執行任務流程1的第二種方式的詳細流程如下
步驟600:在時間到達03: OO時,觸發任務l并開始運行,任務l的運行標 志著任務流程l的啟動。
步驟610:在時間到達04: OO時,確定當天日期是本月13號后,觸發任務2 和任務3但不運行,同時,觸發任務3但并不運行,因為任務2和任務3是任務1 的后置任務,任務l的運行結杲尚未獲得,任務1和任務3觸發后不能夠馬上運 行。
步驟620:在時間到達04: 35時,任務l運行完畢,獲得任務l的運行結果, 并開始運行任務2和任務3。
步驟630:在時間到達04: 50時,任務2和任務3運行完畢,獲得任務2和任 務3的運行結果。
本實施例中,為了便于說明,假設任務2和任務3在同一時間點運行完畢。 步驟640:在時間到達05: OO時,觸發任務4并開始運行。 本實施例中,由于任務2和任務3在任務4觸發之前已運行完畢,因此任務4 觸發后可直4妄運4亍。
步驟650:在時間到達06: 15時,任務4運行完畢,這表示任務流程l已結束。同理,在上述步驟600-步驟650中,各任務是依靠設定的時間點觸發的, 在實際應用中,同樣可以將各任務設置為依靠事件觸發,在此不再贅述。
在上述實施例中,每個任務塊內包含的各程序流程也需要按照設定的依賴 關系逐個運行,如,在執行某個包含若干程序流程的任務塊時,按照設定的觸 發方式依次觸發相應的程序流程,并且按照設定順序執行已被觸發的程序流 程,其中,在確定至少一個程序流程已執行完畢時,根據預設的各程序流程之 間的依賴關系,開始執行依賴所述至少一個程序流程并且已被觸發的其他程序 流程;而彼此間不存在依賴關系的程序流程可以并行觸發,在此亦不再贅述。
進一步地,在執行某個包含若干程序塊的程序流程時,按照設定的觸發方 式依次觸發相應的程序塊,并且按照設定順序執行已被觸發的程序塊,其中, 在確定至少一個程序塊已執行完畢時,根據預設的各程序塊之間的依賴關系, 開始執行依賴所述至少 一個程序塊并且已被觸發的其他程序塊,而彼此間不存 在依賴關系的程序塊可以并行觸發,所述程序塊為原子級進程,在此亦不再贅 述。下面仍以任務1為例進行說明。如圖1所示,假設任務1內包含有四個程 序塊,分別為程序11、程序12、程序13和程序14,其依賴關系為程序2 和程序3的觸發均依賴于程序1的運行結杲,程序2和程序3為并行關系,程 序4的觸發依賴于程序2和程序3的運行結果;那么,參閱圖1所示,在任務 1開始運行后,首先觸發程序1,程序1運行結束后,程序2和程序3若已#皮 觸發,則根據程序1的運行結果同步啟動運行,而程序4在程序2和程序3運 行完畢后,若已被觸發,則根據程序2和程序3的運行結果開始運行直至運行 完畢,程序4的結束運行也表示任務1的結束。
基于上述技術方案,本申請實施例中,通過ETL調度服務器對外提供用戶 接口 ,維護人員可以遠程訪問ETL調度服務器,并通過ETL調度服務器提供的 基于WEB頁面的操作界面對ETL調度流程進行定義和日志管理。參閱圖7所示, 圖7中記栽了ETL調度流程運行狀態日志管理,維護人員可以通過可視的操作 界面對運行的程序塊、任務塊或整個任務流程進行重試、跳過、掛起等操作。也可以根據程序執;f亍的開始/結束/間隔時間判斷程序執行性能,利用流程設計
器對程序流程進行不斷優化調整。進一步地,可以在ETL調度服務器上配置消 息通知模式,在維護人員不在場的情況下,可以通過將程序塊、任務塊和整個 任務流程的運^f亍狀況通過短信、郵件等形式通知相關的維護人員。
綜上所述,本申請實施例采用嵌套式的ETL調度流程實現方法式,使各任 務流程內的子任務流程之間、各任務塊之間、程序流程之間以及各程序塊之間 的業務邏輯清晰、業務功能明確,從而有效提升了ETL調度流程的執行效率; 并且,由于采用了基于Web頁面的操作界面對ETL調度內各任務流程、各子任 務流,各程序流程和各程序塊進行單獨的重做、掛起等操作,減小了各任務流 程、各子任務流,各程序流程和各程序塊之間的耦合性,從而降低了后期維護 管理工作的學習難度,節省了學習和維護成本。
顯然,本領域的技術人員可以對本申請中的實施例進行各種改動和變型而 不脫離本申請的精神和范圍。這樣,倘若本申請實施例中的這些修改和變型屬 于本申請權利要求及其等同技術的范圍之內,則本申請中的實施例也意圖包含 這些改動和變型在內。
權利要求
1、一種ETL調度的實現方法,ETL調度包含若干任務流程,每一任務流程包含若干子任務流程,其特征在于,針對一個任務流程,包括根據預設的配置文件確定任務流程內包含的各子任務流程的觸發方式、執行順序和相互之間的依賴關系;按照設定的觸發方式依次觸發相應的子任務流程,并且按照設定順序執行已被觸發的子任務流程,其中,在確定至少一個子任務流程已執行完畢時,根據所述子任務流程之間的依賴關系,開始執行依賴所述至少一個子任務流程并且已被觸發的其他子任務流程。
2、 如權利要求1所述的方法,其特征在于, 一個子任務流程包含至少一個程序流程。
3、 如權利要求2所述的方法,其特征在于,若一個子任務流程包含至少兩個程序流程,則在執行該子任務流程時,按照設定的觸發方式依次觸發相應的程序流程,并且按照設定順序執行已被觸發的程序流程,其中,在確定至少一個程序流程已執行完畢時,根據預設的各程序流程之間的依賴關系,開始執行依賴所述至少 一個程序流程并且已被觸發的其他程序流程。
4、 如權利要求2或3所述的方法,其特征在于, 一個程序流程中包含至少一個程序塊,若一個程序流程中包含若干程序塊,則執行一個程序流程時,按照設定的觸發方式依次觸發相應的程序塊,并且按照設定順序執行已被觸發的程序塊,其中,在確定至少一個程序塊已執行完畢時,根據預設的各程序塊之間的依賴關系,開始執行依賴所述至少一個程序塊并且已被觸發的其他程序塊,所述程序塊為原子級進程。
5、 如權利要求4所述的方法,其特征在于,通過基于Web頁面的操作界面對各任務流程、各子任務流程、各程序流程和各程序塊進行管理操作。
6、 如權利要求4所述的方法,其特征在于,對各任務流程、各子任務流程、各程序流程和各程序塊的執行情況進行監測,并將監測結果以郵件或短信 方式通知有權用戶。
7、 一種用于執行ETL調度的裝置,其特征在于,包括存儲單元,用于保存配置文件,該配置文件至少包含歸屬于ETL調度的 若干任務流程內各子任務流程的觸發方式和相互之間的依賴關系;確定單元,用于根據所述配置文件,確定某一任務流程內包含的各子任務 流程的觸發方式、執行順序和相互之間的依賴關系;處理單元,用于按照設定的觸發方式依次觸發相應的子任務流程,并且按 照設定順序執行已被觸發的子任務流程,其中,在確定至少一個子任務流程已 執行完畢時,根據所述子任務流程之間的依賴關系,開始執行依賴所述至少一 個子任務流程并且已被觸發的其他子任務流程。
8、 如權利要求7所述的裝置,其特征在于,所述存儲單元還用于保存各 子任務流程包含的各程序流程的觸發方式、執行順序和相互之間的依賴關系、 以及所述存儲單元進一步用于保存各程序流程包含的各程序塊的觸發方式、執 行順序和相互之間的依賴關系,所述程序塊為原子級進程。
9、 如權利要求8所述的裝置,其特征在于,所述處理單元進一步包括 第一處理子單元,用于在執行某任務流程時,按照存儲單元中所保存的觸發方式及順序依次觸發相應的子任務流程,并且執行已被觸發的子任務流程, 其中,在確定至少一個子任務流程已執行完畢時,根據所述子任務流程之間的 依賴關系,開始執行依賴所述至少一個子任務流程并且已被觸發的其他子任務 流程;第二處理子單元,用于在執行某一子任務流程時,^接照存儲單元中所保存 的觸發方式及順序依次觸發相應的程序流程,并且執行已被觸發的程序流程, 其中,在確定至少一個程序流程已執行完畢時,根據預設的各程序流程之間的 依賴關系,開始執行依賴所述至少一個程序流程并且已被觸發的其他程序流 程;第三處理子單元,用于在執行某程序流程時,按照存儲單元中所保存的觸 發方式及順序依次觸發相應的程序塊,并且執行已被觸發的程序塊,其中,在 確定至少一個程序塊已執行完畢時,根據預設的各程序塊之間的依賴關系,開 始執行依賴所述至少 一個程序塊并且已被觸發的其他程序塊。
10、 如權利要求8所述的裝置,其特征在于,所述處理單元進一步包括處 理子單元,該處理子單元用于在執行某程序流程時,按照存儲單元中所保存的 觸發方式及順序依次觸發相應的程序塊,并且執行已被觸發的程序塊,其中, 在確定至少一個程序塊已執行完畢時,根據預設的各程序塊之間的依賴關系, 開始執行依賴所述至少 一個程序塊并且已被觸發的其他程序塊。
11、 如權利要求7-IO所述的裝置,其特征在于,所述裝置還包括 用戶接口單元,用于向用戶提供基于Web頁面的操作界面,并通過該操作界面接收用戶對各任務流程、各子任務流程、各程序流程和各程序塊的管理操 作。
12、 如權利要求IO所述的裝置,其特征在于,所述裝置進一步包括 監測單元,用于對各任務流程、各子任務流程、各程序流程和各程序塊的執行情況進行監測,并將監測結果以郵件或短信方式通知有權用戶。
全文摘要
本申請公開了一種ETL調度的實現方法,該方法為在執行ETL調度包含的若干任務流程時,針對任意一個任務流程,根據預設的配置文件確定任務流程內包含的各子任務流程的觸發方式、執行順序和相互之間的依賴關系;按照設定的觸發方式依次觸發相應的子任務流程,并且按照設定順序執行已被觸發的子任務流程,其中,在確定至少一個子任務流程已執行完畢時,根據所述子任務流程之間的依賴關系,開始執行依賴所述至少一個子任務流程并且已被觸發的其他子任務流程。這樣,便使各任務流程內的子任務流程之間的業務邏輯清晰、業務功能明確,從而有效提升了ETL調度流程的執行效率。本發明同時公開了一種用于執行ETL調度的裝置。
文檔編號G06F17/30GK101567013SQ20091020327
公開日2009年10月28日 申請日期2009年6月2日 優先權日2009年6月2日
發明者杰 蔣, 蔣萃林, 陳榮松 申請人:阿里巴巴集團控股有限公司