王洪彬, 王純
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室, 北京 100876;2 東信北郵信息技術(shù)有限公司, 北京 100191)
異構(gòu)調(diào)度環(huán)境下ETL工作流監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)*
王洪彬1,2, 王純1,2
(1 北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室, 北京 100876;2 東信北郵信息技術(shù)有限公司, 北京 100191)
本文提出一種分布式ETL在異構(gòu)調(diào)度環(huán)境下的工作流統(tǒng)一監(jiān)控方法。通過對異構(gòu)調(diào)度系統(tǒng)元數(shù)據(jù)的提取和抽象,采用增量抽取和跟蹤監(jiān)控對象的方式,通過網(wǎng)絡(luò)消息傳送將監(jiān)控對象加載到監(jiān)控?cái)?shù)據(jù)中心并統(tǒng)一管理,實(shí)現(xiàn)了分布式ETL工作流在異構(gòu)調(diào)度環(huán)境下的的全局監(jiān)控,提高了數(shù)據(jù)恢復(fù)能力和倉庫的數(shù)據(jù)質(zhì)量。
數(shù)據(jù)倉庫;分布式ETL;Oozie;調(diào)度監(jiān)控
隨著計(jì)算能力和網(wǎng)絡(luò)存儲能力的不斷提高,傳統(tǒng)的數(shù)據(jù)存儲和數(shù)據(jù)處理能力已經(jīng)無法滿足大數(shù)據(jù)的服務(wù)需求。數(shù)據(jù)倉庫作為一種大數(shù)據(jù)平臺基礎(chǔ)和關(guān)鍵組成部分,被廣泛應(yīng)用在數(shù)據(jù)挖掘和分析領(lǐng)域。數(shù)據(jù)倉庫在整個(gè)大數(shù)據(jù)生態(tài)系統(tǒng)中通常承擔(dān)數(shù)據(jù)源的角色,所以數(shù)據(jù)倉庫的質(zhì)量直接影響著整個(gè)決策支持系統(tǒng)的服務(wù)質(zhì)量。
ETL(Extraction Transformation Loading)作為數(shù)據(jù)倉庫構(gòu)建的核心組件,貫穿于數(shù)據(jù)從產(chǎn)生到消亡的整個(gè)生命周期,從數(shù)據(jù)源的抽取、轉(zhuǎn)換,再到數(shù)據(jù)加載入庫,直到數(shù)據(jù)被消費(fèi)的整個(gè)過程都需要通過ETL來完成的。目前多數(shù)系統(tǒng)根據(jù)各自業(yè)務(wù)的需要將ETL能力分布在不同的節(jié)點(diǎn)上,各個(gè)節(jié)點(diǎn)的ETL工作流在各自不同的調(diào)度環(huán)境下完成不同的功能,所有節(jié)點(diǎn)相互協(xié)作共同完成數(shù)據(jù)倉庫的構(gòu)建。在ETL工作流監(jiān)控方面,多數(shù)系統(tǒng)出于建立效率最優(yōu)模型的目的,通常注重系統(tǒng)資源層面的監(jiān)控和單一調(diào)度環(huán)境下ETL任務(wù)的監(jiān)控,普遍缺乏對全局ETL工作流在異構(gòu)調(diào)度環(huán)境中的實(shí)時(shí)監(jiān)控和統(tǒng)一監(jiān)管。
數(shù)據(jù)倉庫是一個(gè)面向主題的、集成的、非易失,隨時(shí)間變化的用來支持管理人員決策的數(shù)據(jù)集合。數(shù)據(jù)倉庫的構(gòu)建不僅僅指倉庫內(nèi)部數(shù)據(jù)的抽取、清洗、轉(zhuǎn)化、加載過程,也包括外部數(shù)據(jù)源的存儲與處理,例如對原始數(shù)據(jù)源的抽取、轉(zhuǎn)換、加載過程以及從倉庫向數(shù)據(jù)集市或OLAP系統(tǒng)的數(shù)據(jù)導(dǎo)出與同步過程等(如圖1所示),都涵蓋在數(shù)據(jù)倉庫的構(gòu)建過程中。
Oozie是Hadoop生態(tài)圈的一種工作流調(diào)度引擎,它運(yùn)行在Java Servlet容器,底層把復(fù)雜的任務(wù)分解成map-reduce任務(wù)提交給Hadoop計(jì)算框架完成任務(wù)的執(zhí)行;在工程上Oozie的工作流定義和工作流實(shí)例狀態(tài)通常存儲在Mysql數(shù)據(jù)庫。所有基于Hadoop平臺的ETL任務(wù)都可以通過Oozie進(jìn)行調(diào)度執(zhí)行,包括HDFS數(shù)據(jù)的抽取與加載,Hive表聯(lián)查,數(shù)據(jù)清洗與計(jì)算,數(shù)據(jù)匯總統(tǒng)計(jì)等。Oozie調(diào)度引擎主要面向運(yùn)行于Hadoop平臺上的ETL工作流調(diào)度。
圖1 數(shù)據(jù)倉庫結(jié)構(gòu)
對于外部數(shù)據(jù)的ETL工作流調(diào)度,包括對原始數(shù)據(jù)源的抽取、轉(zhuǎn)換、加載、同步等流程同樣需要調(diào)度系統(tǒng)的支持。由于原始數(shù)據(jù)源的多樣性以及數(shù)據(jù)源平臺的異構(gòu)性導(dǎo)致Oozie不適合作為處理外部數(shù)據(jù)源工作流的調(diào)度工具,一方面是由于Oozie需要依賴Hadoop和Mysql等系統(tǒng)模塊的支持,與Hadoop和Mysql高度耦合,運(yùn)行體系龐大,系統(tǒng)部署維護(hù)難度大;另一方面是由于Oozie調(diào)度系統(tǒng)占用系統(tǒng)資源較多,不適合在數(shù)據(jù)源平臺運(yùn)行。所以對于外部數(shù)據(jù)源的抽取、轉(zhuǎn)換與同步作業(yè)的調(diào)度通常采用自研調(diào)度系統(tǒng)。
自研調(diào)度系統(tǒng)是一種輕量級、具有高可擴(kuò)展和可移植性的調(diào)度系統(tǒng)。自研調(diào)度系統(tǒng)對ETL任務(wù)組件提供統(tǒng)一的接口規(guī)范,并且與各功能組件低耦合,凡是符合自研調(diào)度系統(tǒng)接口規(guī)范的組件,都可以被調(diào)度系統(tǒng)調(diào)度執(zhí)行。自研調(diào)度系統(tǒng)的工作流定義和工作流實(shí)例狀態(tài)通常存儲在ETL能力節(jié)點(diǎn)的本地文件系統(tǒng)。目前自研調(diào)度系統(tǒng)已經(jīng)具備FTP上傳/下載、表提取、文件合并、備份刪除等能力。
由于Oozie調(diào)度系統(tǒng)與自研調(diào)度系統(tǒng)在實(shí)現(xiàn)機(jī)制與管理機(jī)制方面差異較大,缺乏統(tǒng)一的工作流運(yùn)行狀態(tài)反饋和執(zhí)行結(jié)果反饋,造成了用戶對全局?jǐn)?shù)據(jù)流向和ETL工作流調(diào)度進(jìn)度難以掌控,對于數(shù)據(jù)的異常處理難以準(zhǔn)確定位和二次調(diào)度。基于異構(gòu)調(diào)度系統(tǒng)存在的問題,本文設(shè)計(jì)了一種對分布式ETL工作流在異構(gòu)調(diào)度環(huán)境下的統(tǒng)一監(jiān)控方法,采用對工作流對象增量抽取和跟蹤的方式,對異構(gòu)調(diào)度環(huán)境下的全局ETL工作流進(jìn)行統(tǒng)一監(jiān)管,實(shí)現(xiàn)了對數(shù)據(jù)流向的實(shí)時(shí)掌控和調(diào)度進(jìn)度的全面管理。
監(jiān)控對象是指在調(diào)度系統(tǒng)中全部被用戶納入監(jiān)控目標(biāo)的實(shí)體,ETL任務(wù)的依賴關(guān)系、執(zhí)行規(guī)則、執(zhí)行狀態(tài)與運(yùn)行結(jié)果等都屬于監(jiān)控對象的范疇。獲取監(jiān)控對象較直接和較可靠的辦法是對每個(gè)ETL任務(wù)的元數(shù)據(jù)進(jìn)行提取和轉(zhuǎn)化。但是由于調(diào)度環(huán)境的異構(gòu)性,自研調(diào)度環(huán)境的ETL任務(wù)主要面向外部數(shù)據(jù)的存儲和處理,包括數(shù)據(jù)源的提取、轉(zhuǎn)碼、清洗和加載等,其元數(shù)據(jù)集中存儲在各能力節(jié)點(diǎn)的文件系統(tǒng)中,Oozie調(diào)度環(huán)境主要面向倉庫內(nèi)部數(shù)據(jù)的存儲和計(jì)算,支持對Java、Mapreduce、Hive、Sqoop等任務(wù)的調(diào)度,其元數(shù)據(jù)存儲在Mysql關(guān)系型數(shù)據(jù)庫中(如圖2所示)。
圖2 Oozie調(diào)度環(huán)境與自研調(diào)度環(huán)境
為了將兩種不同調(diào)度環(huán)境下的監(jiān)控對象進(jìn)行統(tǒng)一管理,解決元數(shù)據(jù)存儲結(jié)構(gòu)的差異性,本文從ETL工作流元數(shù)據(jù)底層存儲結(jié)構(gòu)著手,將異構(gòu)存儲的元數(shù)據(jù)進(jìn)行過濾提取和抽象建模,并轉(zhuǎn)換成統(tǒng)一的目標(biāo)監(jiān)控對象,從而屏蔽了底層元數(shù)據(jù)的差異。
該方法的核心思想是將分布在每個(gè)節(jié)點(diǎn)上ETL工作流監(jiān)控分成兩個(gè)過程,第一個(gè)過程按照既定的抽取規(guī)則生成監(jiān)控對象并進(jìn)行增量提取,完成后將抽取的對象交付給另一過程,同時(shí)繼續(xù)監(jiān)控和抽取新增對象;另一過程負(fù)責(zé)對已抽取的監(jiān)控對象進(jìn)行增量跟蹤,同時(shí)記錄監(jiān)控對象的運(yùn)行狀態(tài)信息,當(dāng)發(fā)現(xiàn)被監(jiān)控對象的狀態(tài)有更新時(shí)就通過網(wǎng)絡(luò)消息通知管理節(jié)點(diǎn)更新監(jiān)控?cái)?shù)據(jù)中心的狀態(tài),一旦監(jiān)測到監(jiān)控對象處于完成態(tài)就終結(jié)對該監(jiān)控對象的跟蹤。為此對監(jiān)控系統(tǒng)進(jìn)行角色分配,將負(fù)責(zé)元數(shù)據(jù)抽取的能力節(jié)點(diǎn)定義為Worker,把負(fù)責(zé)將Worker進(jìn)行收斂并加載到監(jiān)控?cái)?shù)據(jù)中心的能力節(jié)點(diǎn)定義為Manager。Worker與Manager共同實(shí)現(xiàn)了在不同調(diào)度環(huán)境下對全局ETL工作流的統(tǒng)一跟蹤和監(jiān)控。
2.1 Worker設(shè)計(jì)
Worker負(fù)責(zé)ETL任務(wù)元數(shù)據(jù)的抽取和跟蹤。Worker在邏輯結(jié)構(gòu)上可以劃分為4層,分別是元數(shù)據(jù)層、抽象層、跟蹤層和收發(fā)層(如圖3所示)。
元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),元數(shù)據(jù)層存儲了所有ETL工作流的元數(shù)據(jù),其中涵蓋了工作流的依賴關(guān)系、執(zhí)行規(guī)則、運(yùn)行狀態(tài)和執(zhí)行結(jié)果,除此之外還包含許多噪聲信息。對于不同的存儲方式,元數(shù)據(jù)的描述方式也不同。在文本文件中,元數(shù)據(jù)以文本的形式描述,在Mysql數(shù)據(jù)庫中元數(shù)據(jù)以表字段形式描述,在XML文件中以節(jié)點(diǎn)字段描述。在監(jiān)控對象抽取過程中,必須先對監(jiān)控對象進(jìn)行建模,再從繁雜的元數(shù)據(jù)中過濾掉冗余信息,篩選出需要的數(shù)據(jù)組合。
抽象層將異構(gòu)元數(shù)據(jù)進(jìn)行抽象、過濾和統(tǒng)一,并根據(jù)既定的監(jiān)控規(guī)則對監(jiān)控對象建模和提取。首先由抽象過濾器從繁雜的元數(shù)據(jù)集中提取和過濾出有效元數(shù)據(jù),然后根據(jù)規(guī)則引擎定義的監(jiān)控規(guī)則對監(jiān)控對象進(jìn)行建模,并利用過濾提取的元數(shù)據(jù)將監(jiān)控對象實(shí)例化。規(guī)則引擎定義了監(jiān)控對象的模型,可通過修改規(guī)則引擎,實(shí)現(xiàn)不同監(jiān)控對象的靈活構(gòu)建。實(shí)例化后的監(jiān)控對象包含了ETL工作流的初始狀態(tài)信息,通過增量監(jiān)控器的提取和判決,將抽取的監(jiān)控對象提交到跟蹤層,由跟蹤層負(fù)責(zé)對該監(jiān)控對象后續(xù)狀態(tài)的跟蹤。
圖3 Worker邏輯結(jié)構(gòu)
跟蹤層負(fù)責(zé)對監(jiān)控對象進(jìn)行狀態(tài)跟蹤和更新。跟蹤器中含有監(jiān)控對象的初始狀態(tài)信息和特征標(biāo)識信息,為了提高監(jiān)控對象的監(jiān)控效率和準(zhǔn)確性,跟蹤層繞過抽象層直接到元數(shù)據(jù)層定向獲取監(jiān)控對象的狀態(tài)信息。在獲取監(jiān)控狀態(tài)時(shí)可能獲取到監(jiān)控對象狀態(tài)未變的情況,此時(shí)對于監(jiān)控?cái)?shù)據(jù)中心來說是不必感知的。所以為了降低系統(tǒng)和網(wǎng)絡(luò)帶寬的負(fù)荷,在跟蹤層增加一個(gè)狀態(tài)機(jī)模塊,用于監(jiān)控對象的狀態(tài)維護(hù),當(dāng)跟蹤器獲取到監(jiān)控對象的狀態(tài)信息時(shí),就從狀態(tài)機(jī)中查詢該監(jiān)控對象狀態(tài)是否有更新,對于未更新的狀態(tài),跟蹤器將獲取的狀態(tài)信息刪除,對于有更新的狀態(tài),跟蹤器首先更新狀態(tài)機(jī)中的信息,然后將更新提交到消息收發(fā)層,將更新通知監(jiān)控?cái)?shù)據(jù)中心,實(shí)現(xiàn)了對監(jiān)控對象狀態(tài)的增量提取。狀態(tài)機(jī)保存所有未完成狀態(tài)的監(jiān)控對象的狀態(tài)信息,當(dāng)監(jiān)控對象到達(dá)完成態(tài)時(shí),就將該監(jiān)控對象從狀態(tài)機(jī)刪除,采用增量提取監(jiān)控對象的方法,大大節(jié)省了系統(tǒng)內(nèi)存和網(wǎng)絡(luò)帶寬資源。
收發(fā)層處于Worker邏輯層的最上層,負(fù)責(zé)與Manager直接進(jìn)行網(wǎng)絡(luò)消息交互。格式化消息不適合在網(wǎng)絡(luò)上傳輸,收發(fā)層負(fù)責(zé)將底層提交的格式化消息按照協(xié)議進(jìn)行格式編碼,編碼后將消息發(fā)送到Manager。Worker與Manager之間的通信鏈路維護(hù)機(jī)制參考了Hadoop計(jì)算框架Tasktracker與Jobtracker之間的心跳機(jī)制,通過收發(fā)心跳消息來監(jiān)測和保持鏈路。每個(gè)Worker在向Manager發(fā)送消息前,必須進(jìn)行登錄和認(rèn)證,只有認(rèn)證成功后才可以向Manager發(fā)送消息。
2.2 Manager設(shè)計(jì)
Manager負(fù)責(zé)對分布式的Worker節(jié)點(diǎn)進(jìn)行信息收斂,并將監(jiān)控對象加載到監(jiān)控?cái)?shù)據(jù)中心,同時(shí)提供分析呈現(xiàn)接口,負(fù)責(zé)對全局ETL工作流狀態(tài)的訪問。Manager在邏輯上可以分成3層,分別為收發(fā)層,加載層和呈現(xiàn)分析層(如圖4所示)。
收發(fā)層處于Manager的最底層,直接與Worker進(jìn)行網(wǎng)絡(luò)消息交互,其中包括控制類消息和業(yè)務(wù)類消息,控制類消息包括登錄認(rèn)證消息和心跳消息,業(yè)務(wù)類消息包括承載各種監(jiān)控對象的監(jiān)控消息。Manager在接收到消息后,首先對消息進(jìn)行解碼,將流式消息解析成格式化消息。對于控制類消息,由收發(fā)層直接處理,并進(jìn)行相應(yīng)的消息回復(fù);對于業(yè)務(wù)類消息,則提交到加載層,由加載層將監(jiān)控信息加載到監(jiān)控?cái)?shù)據(jù)中心供上層訪問。
圖4 Manager邏輯結(jié)構(gòu)
消息到達(dá)加載層后,需要對結(jié)構(gòu)化消息進(jìn)行二次處理,抽取出內(nèi)層結(jié)構(gòu)數(shù)據(jù),同時(shí)根據(jù)監(jiān)控?cái)?shù)據(jù)中心預(yù)先定義的關(guān)系模型將抽取的監(jiān)控?cái)?shù)據(jù)進(jìn)行格式化處理。由于元數(shù)據(jù)的差異已經(jīng)在Worker側(cè)屏蔽,加載層無需對元數(shù)據(jù)的結(jié)構(gòu)進(jìn)行抽取和過濾,只需要把數(shù)據(jù)轉(zhuǎn)換成符合監(jiān)控?cái)?shù)據(jù)中心定義的格式,由加載層按關(guān)系模型將數(shù)據(jù)逐條加載到監(jiān)控?cái)?shù)據(jù)中心。
監(jiān)控?cái)?shù)據(jù)中心集中了全局ETL工作流的所有信息,包括任務(wù)間的依賴關(guān)系,子任務(wù)間的依賴關(guān)系,任務(wù)的執(zhí)行規(guī)則、運(yùn)行狀態(tài)、執(zhí)行結(jié)果等。分布式ETL任務(wù)的信息由監(jiān)控?cái)?shù)據(jù)中心集中匯總,實(shí)現(xiàn)了全局ETL工作流的統(tǒng)一監(jiān)管。
用戶通過訪問監(jiān)控?cái)?shù)據(jù)中心,可以掌控全局ETL工作流的數(shù)據(jù)流向和運(yùn)行狀態(tài),為異常數(shù)據(jù)監(jiān)控分析和數(shù)據(jù)修復(fù)提供了有效工具。用戶也可以分析出調(diào)度監(jiān)控系統(tǒng)每天監(jiān)控的ETL任務(wù)總數(shù)、任務(wù)更新次數(shù)、成功任務(wù)總數(shù)、消息傳輸最大時(shí)延等信息,從而也實(shí)現(xiàn)了對全局ETL工作流監(jiān)控系統(tǒng)本身的監(jiān)控。
物理結(jié)構(gòu)實(shí)現(xiàn)方面,在每個(gè)ETL能力節(jié)點(diǎn)上配備一個(gè)Worker,負(fù)責(zé)對該ETL能力節(jié)點(diǎn)的監(jiān)控。全局配備唯一的Manager,匯聚各個(gè)分散的Worker監(jiān)控信息并統(tǒng)一加載到監(jiān)控?cái)?shù)據(jù)中心進(jìn)行監(jiān)控和分析。
基于調(diào)度監(jiān)控系統(tǒng)運(yùn)作平臺的多樣性,Worker與Manager的消息交互使用通用的網(wǎng)絡(luò)進(jìn)程間通信技術(shù),采用傳統(tǒng)的C/S體系架構(gòu),降低了系統(tǒng)平臺對調(diào)度監(jiān)控系統(tǒng)運(yùn)行環(huán)境的限制。元數(shù)據(jù)存儲在異構(gòu)介質(zhì)中,Worker在抽取監(jiān)控對象時(shí)存在差異,現(xiàn)存系統(tǒng)將元數(shù)據(jù)存儲在Mysql和文件系統(tǒng)中,未來調(diào)度系統(tǒng)元數(shù)據(jù)可能存儲在HDFS或Redis中,為了增強(qiáng)系統(tǒng)的擴(kuò)展性,Worker預(yù)留了擴(kuò)展接口,實(shí)際應(yīng)用中可根據(jù)存儲介質(zhì)的不同特性去實(shí)現(xiàn)。調(diào)度監(jiān)控系統(tǒng)使用了時(shí)間觸發(fā)和消息觸發(fā)機(jī)制。時(shí)間觸發(fā)定時(shí)操作,依賴關(guān)系、執(zhí)行規(guī)則等監(jiān)控對象凡是需要周期操作的工作都由時(shí)間觸發(fā)機(jī)制實(shí)現(xiàn)。Manager匯聚各Worker節(jié)點(diǎn)的過程由消息觸發(fā)機(jī)制實(shí)現(xiàn),Worker發(fā)送的鑒權(quán)消息、心跳消息、業(yè)務(wù)消息等都會通過觸發(fā)Manager特定消息處理流程來完成鏈路的創(chuàng)建、維持和消息加載。
目前調(diào)度監(jiān)控系統(tǒng)已經(jīng)具備應(yīng)用能力,能夠?qū)崿F(xiàn)對分布式ETL能力節(jié)點(diǎn)在異構(gòu)調(diào)度環(huán)境下的統(tǒng)一監(jiān)控。通過訪問監(jiān)控?cái)?shù)據(jù)中心的集中數(shù)據(jù)庫,能夠掌控?cái)?shù)據(jù)倉庫構(gòu)建過程中全局?jǐn)?shù)據(jù)的實(shí)時(shí)流向,為數(shù)據(jù)恢復(fù)和任務(wù)重跑提供可靠依據(jù)。同時(shí)可以通過查看各ETL能力節(jié)點(diǎn)下任務(wù)的依賴關(guān)系、執(zhí)行規(guī)則、運(yùn)行狀態(tài)和執(zhí)行結(jié)果等來了解各個(gè)ETL能力節(jié)點(diǎn)的運(yùn)行情況,為ETL系統(tǒng)資源分配和能力優(yōu)化提供重要參考。調(diào)度監(jiān)控系統(tǒng)在數(shù)據(jù)倉庫構(gòu)建過程中的應(yīng)用大大降低了ETL系統(tǒng)維護(hù)成本,減輕了維護(hù)人員的工作負(fù)擔(dān),增強(qiáng)了數(shù)據(jù)監(jiān)管能力和數(shù)據(jù)質(zhì)量保證,為大數(shù)據(jù)挖掘和分析提供了更加可靠的數(shù)據(jù)源。
數(shù)據(jù)的抽取、轉(zhuǎn)換、加載過程是構(gòu)建數(shù)據(jù)倉庫的核心環(huán)節(jié),對ETL過程的監(jiān)控也是保證數(shù)據(jù)質(zhì)量、提高系統(tǒng)可靠性的關(guān)鍵環(huán)節(jié),在分布式ETL在異構(gòu)調(diào)度環(huán)境下難以統(tǒng)一監(jiān)管的條件下,ETL執(zhí)行過程的優(yōu)劣直接影響著整個(gè)決策支持系統(tǒng)的服務(wù)質(zhì)量。
本文提出的調(diào)度監(jiān)控思想從過程層面實(shí)現(xiàn)對分布式ETL工作流的監(jiān)控,為數(shù)據(jù)倉庫的數(shù)據(jù)質(zhì)量提供了重要保證,但是過程層面的監(jiān)控還無法全面保證倉庫的數(shù)據(jù)質(zhì)量,數(shù)據(jù)層面的監(jiān)控對提高倉庫數(shù)據(jù)質(zhì)量同等重要,通過對數(shù)據(jù)源或中間數(shù)據(jù)在數(shù)量、時(shí)延、同環(huán)比方面的監(jiān)控,結(jié)合調(diào)度監(jiān)控的結(jié)果,可實(shí)現(xiàn)對ETL工作流在過程層面和數(shù)據(jù)層面的全面監(jiān)控,能夠更有效的保證數(shù)據(jù)倉庫的數(shù)據(jù)質(zhì)量,增強(qiáng)倉庫自愈能力。
Design and implementation of monitoring system for the ETL workflows in heterogeneous scheduling environment
WANG Hong-bin1,2, WANG Chun1,2
(1 State Key Lab of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China; 2 EBUPT Information Technology Co., Ltd., Beijing 100191, China)
This paper provided a unified monitoring method of the distributed ETL workflows in heterogeneous environment. By extracting and abstracting the metadata of each workfl ow and tracing the monitored objects incrementally, all the ETL jobs could be monitored and managed by the monitor data center, meanwhile improving the quality of the data warehouse.
data warehouse; distributed ETL; Oozie; scheduling monitor
TN915
A
1008-5599(2016)12-0061-05
2016-07-18
國家杰出青年科學(xué)基金(No.60525110);國家973計(jì)劃項(xiàng)目(No.2007CB307100,2007CB307103);國家自然科學(xué)基金(No.61072057,60902051);中央高校基本科研業(yè)務(wù)費(fèi)專項(xiàng)資金(BUPT2009RC0505);國家科技重大專項(xiàng)(No.2011ZX03002-001-01,2001ZX03002-002-01)。