孟凡明
(北京社會管理職業(yè)學(xué)院 北京 102627)
ETLA技術(shù)主要解決高校數(shù)據(jù)共享第一步“數(shù)據(jù)集成”環(huán)節(jié)遇到的數(shù)據(jù)分散、格式不統(tǒng)一、標(biāo)準(zhǔn)不統(tǒng)一等問題。ETLA分別代表Extract、Transform、Load、Administer,即抽取、轉(zhuǎn)換、加載、管理。ETLA技術(shù)以“提高數(shù)據(jù)的使用效率、保障數(shù)據(jù)的高質(zhì)量”為目標(biāo),在常見ETL技術(shù)的基礎(chǔ)上增加了業(yè)務(wù)數(shù)據(jù)的規(guī)范化、清洗、質(zhì)量監(jiān)測等功能。4個模塊主要的功能為:
(1)數(shù)據(jù)抽?。簭臄?shù)據(jù)庫、文件系統(tǒng)等數(shù)據(jù)來源,抽取業(yè)務(wù)所需的數(shù)據(jù)。
(2)數(shù)據(jù)轉(zhuǎn)換:將多源異構(gòu)數(shù)據(jù)按照業(yè)務(wù)需求,轉(zhuǎn)換成規(guī)范的、高價值的目的數(shù)據(jù)的過程,基于定義的數(shù)據(jù)標(biāo)準(zhǔn),對多源異構(gòu)數(shù)據(jù)進(jìn)行規(guī)范化、臟數(shù)據(jù)清洗、關(guān)聯(lián)融合等數(shù)據(jù)的清洗加工操作。
(3)數(shù)據(jù)加載:將轉(zhuǎn)換后的符合數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù)記錄持久化至數(shù)據(jù)庫或文件系統(tǒng)中。
(4)調(diào)度與管理:對數(shù)據(jù)的抽取、轉(zhuǎn)化、加載過程以任務(wù)的形式進(jìn)行調(diào)度和監(jiān)控。對數(shù)據(jù)各處理環(huán)節(jié)的數(shù)據(jù)質(zhì)量、持久化數(shù)據(jù)資產(chǎn)的監(jiān)測管理。
高職院校的“智慧校園”建設(shè)已有多年,學(xué)校的教學(xué)部門和非教學(xué)部門對業(yè)務(wù)需求的種類越來越多,因此,隨著信息技術(shù)的迅猛發(fā)展,各職能部門建立的業(yè)務(wù)系統(tǒng)也越來越豐富。各部門不管是平行業(yè)務(wù)還是交叉業(yè)務(wù),各部門的業(yè)務(wù)系統(tǒng)均形成了大量的業(yè)務(wù)數(shù)據(jù),這些數(shù)據(jù)復(fù)雜、且標(biāo)準(zhǔn)不統(tǒng)一,往往都需要業(yè)務(wù)人員進(jìn)行后期再加工處理,才能為之所用。另外,為充分利用不同部門間數(shù)據(jù),深入融合挖掘數(shù)據(jù)的價值,各部門之間的數(shù)據(jù)共享也越來越頻繁。但由于數(shù)據(jù)由不同的業(yè)務(wù)系統(tǒng)產(chǎn)生,數(shù)據(jù)的來源多、數(shù)據(jù)類型多、格式不統(tǒng)一,且數(shù)據(jù)存儲分散,甚至存在部分?jǐn)?shù)據(jù)信息缺失的問題,導(dǎo)致數(shù)據(jù)在使用時的工作量較大,跟業(yè)務(wù)無關(guān)的數(shù)據(jù)抽取、規(guī)范化、臟數(shù)據(jù)清洗等工作耗費了大量的時間和精力。為提高各部門業(yè)務(wù)系統(tǒng)數(shù)據(jù)的共享使用效率、減少跟業(yè)務(wù)邏輯無關(guān)的數(shù)據(jù)處理操作、助力學(xué)院管理決策,本文提出了支持不同業(yè)務(wù)系統(tǒng)間數(shù)據(jù)抽取、轉(zhuǎn)化融合的ETLA技術(shù)。
根據(jù)高職院校在“智慧校園”建設(shè)過程中面臨的問題,本文研究了一種新的能提高數(shù)據(jù)共享效率的ETLA技術(shù)方法。本技術(shù)構(gòu)建了數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)加載和調(diào)度管理4大模塊,將分散在不同部門不同業(yè)務(wù)系統(tǒng)的多源異構(gòu)數(shù)據(jù)進(jìn)行整合,完成規(guī)范化、臟數(shù)據(jù)的過濾清洗、關(guān)鍵信息的補全校驗、數(shù)據(jù)的關(guān)聯(lián)融合等工作。具體架構(gòu)如下:
圖1
數(shù)據(jù)抽取是從數(shù)據(jù)源抽取數(shù)據(jù)的過程,支持對不同部門不同業(yè)務(wù)系統(tǒng)的不同格式數(shù)據(jù)的抽取。支持從業(yè)務(wù)系統(tǒng)的關(guān)系型數(shù)據(jù)庫、數(shù)據(jù)文件、郵件和網(wǎng)頁等數(shù)據(jù)源抽取數(shù)據(jù)。
對于結(jié)構(gòu)化數(shù)據(jù)來說,數(shù)據(jù)抽取實現(xiàn)從關(guān)系型數(shù)據(jù)庫或數(shù)據(jù)文件中抽取數(shù)據(jù)。對于非結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)來說,數(shù)據(jù)抽取實現(xiàn)通過協(xié)議采集郵件和網(wǎng)頁等非結(jié)構(gòu)化數(shù)據(jù)。具有以下能力:
(1)從數(shù)據(jù)文件中抽取數(shù)據(jù):支持本地、HDFS文件系統(tǒng),或通過FTP文件傳輸協(xié)議從遠(yuǎn)程服務(wù)器中的XML、EXCEL、CSV格式文件中抽取數(shù)據(jù)。
(2)從關(guān)系型數(shù)據(jù)庫全量抽取數(shù)據(jù):通過JDBC或ODBC接口從源數(shù)據(jù)庫中全量抽取數(shù)據(jù),并轉(zhuǎn)換成系統(tǒng)可以識別的格式。
(3)從關(guān)系型數(shù)據(jù)庫增量抽取數(shù)據(jù):通過數(shù)據(jù)庫日志分析方式,抽取自上次抽取以來數(shù)據(jù)庫中新增或修改的數(shù)據(jù),支持Mysql、Oracle 等數(shù)據(jù)庫。
(4)郵件采集:通過SMTP/POP3/IMAP協(xié)議采集郵件。
(5)網(wǎng)頁采集:通過HTTP協(xié)議爬取網(wǎng)頁數(shù)據(jù)。
數(shù)據(jù)轉(zhuǎn)換環(huán)節(jié)基于定義的數(shù)據(jù)標(biāo)準(zhǔn),將數(shù)據(jù)記錄轉(zhuǎn)換為規(guī)范的、符合標(biāo)準(zhǔn)的數(shù)據(jù)記錄。數(shù)據(jù)轉(zhuǎn)換操作以組件化、算子化的方式預(yù)先定義,并通過調(diào)度管理模塊串聯(lián)形成一個數(shù)據(jù)轉(zhuǎn)化處理流程。完成數(shù)據(jù)的格式轉(zhuǎn)化、臟數(shù)據(jù)清洗過濾、數(shù)據(jù)取值的校驗、信息的補全等功能。并從業(yè)務(wù)應(yīng)用的角度設(shè)計了業(yè)務(wù)數(shù)據(jù)關(guān)聯(lián)融合的功能,構(gòu)建高數(shù)據(jù)價值密度的業(yè)務(wù)數(shù)據(jù),方便業(yè)務(wù)人員在常見業(yè)務(wù)場景下的數(shù)據(jù)使用。具體能力支持:
(1)格式轉(zhuǎn)換:按照數(shù)據(jù)標(biāo)準(zhǔn),對同類數(shù)據(jù)進(jìn)行統(tǒng)一標(biāo)準(zhǔn)化,避免相同業(yè)務(wù)含義的數(shù)據(jù)存在不同數(shù)據(jù)存儲類型的問題,從而降低業(yè)務(wù)人員使用數(shù)據(jù)的復(fù)雜度。如:Excel文件中學(xué)生性別以“男/女”文本格式表示,教務(wù)系統(tǒng)中的學(xué)生性別以“0/1”表示,將統(tǒng)一轉(zhuǎn)成“0/1”格式存儲,并定義數(shù)據(jù)字典標(biāo)準(zhǔn),以便業(yè)務(wù)人員使用。
(2)臟數(shù)據(jù)清洗:數(shù)據(jù)在抽取后進(jìn)行實時檢查,對不符合業(yè)務(wù)規(guī)則的臟數(shù)據(jù)進(jìn)行攔截清洗,減少后續(xù)的存儲、計算資源消耗。如:對成績?nèi)≈捣欠?、學(xué)號姓名等關(guān)鍵字段缺失、取值全為空等的數(shù)據(jù)記錄進(jìn)行攔截清洗。
(3)關(guān)聯(lián)融合:將不同來源的數(shù)據(jù)基于關(guān)鍵字段,按照關(guān)聯(lián)融合規(guī)則進(jìn)行關(guān)聯(lián)融合,形成面向不同業(yè)務(wù)應(yīng)用場景的信息完整的高價值業(yè)務(wù)數(shù)據(jù),方便業(yè)務(wù)人員的業(yè)務(wù)應(yīng)用。
(4)關(guān)鍵信息補全:不同數(shù)據(jù)源的數(shù)據(jù),學(xué)生、教師等實體的關(guān)鍵信息通常存在不同程度的缺失,導(dǎo)致業(yè)務(wù)人員在獲取實體基礎(chǔ)信息時,需進(jìn)一步查詢對應(yīng)實體的基礎(chǔ)信息庫。本功能在數(shù)據(jù)轉(zhuǎn)化過程中,對記錄中實體缺失的或常用但未存在的信息,通過實時關(guān)聯(lián)實體基礎(chǔ)信息庫的方式,實時補填或新增實體信息。保證記錄的關(guān)鍵信息的完善。
數(shù)據(jù)加載是對數(shù)據(jù)轉(zhuǎn)換后的標(biāo)準(zhǔn)化數(shù)據(jù)進(jìn)行持久化的過程。為滿足業(yè)務(wù)人員的不同業(yè)務(wù)場景需求,本系統(tǒng)支持將數(shù)據(jù)自動加載到結(jié)構(gòu)化數(shù)據(jù)存儲庫、對象數(shù)據(jù)存儲庫和數(shù)據(jù)文件中,同份數(shù)據(jù)可支持自動加載到多個數(shù)據(jù)庫中。支持?jǐn)?shù)據(jù)自動分區(qū),分區(qū)類型支持等值、Hash、區(qū)間等。具有以下能力:
(1)數(shù)據(jù)庫持久化:通過JDBC或ODBC接口,把處理后的標(biāo)準(zhǔn)化數(shù)據(jù)存入到OLAP、OLTP、鍵值、對象、全文等數(shù)據(jù)庫中,支持外部 oracle、mysql、Hive、ElasticSearc、HBase、Click-House等數(shù)據(jù)庫。
(2)數(shù)據(jù)文件持久化:把處理完成的數(shù)據(jù)以XML、EXCEL、CSV格式存入到本地文件系統(tǒng),或通過FTP文件傳輸協(xié)議落地到遠(yuǎn)程服務(wù)器上。
(3)插入/更新數(shù)據(jù):通過JDBC或ODBC接口,把處理完成的數(shù)據(jù)對數(shù)據(jù)庫表進(jìn)行插入更新,如果數(shù)據(jù)庫中不存在相關(guān)記錄則插入,否則為更新。
調(diào)度與管理模塊完成數(shù)據(jù)抽取、轉(zhuǎn)換、加載工作流的任務(wù)啟停、調(diào)度和狀態(tài)監(jiān)控管理。同時,在數(shù)據(jù)處理的各個環(huán)節(jié)進(jìn)行數(shù)據(jù)條目監(jiān)控和比對。對數(shù)據(jù)持久化后的數(shù)據(jù)質(zhì)量進(jìn)行綜合監(jiān)測,當(dāng)數(shù)據(jù)質(zhì)量發(fā)生異常時,進(jìn)行數(shù)據(jù)質(zhì)量異常進(jìn)行告警,解決數(shù)據(jù)質(zhì)量問題發(fā)現(xiàn)滯后的問題。對重要數(shù)據(jù)支持可視化查看和管理,方便業(yè)務(wù)人員對核心數(shù)據(jù)資產(chǎn)的使用與管理。
(1)任務(wù)調(diào)度引擎:完成數(shù)據(jù)抽取、轉(zhuǎn)化、持久化任務(wù)的啟動、調(diào)度和狀態(tài)監(jiān)控,可以按周期、定時和觸發(fā)條件的方式自動執(zhí)行對目標(biāo)數(shù)據(jù)的處理,并對任務(wù)執(zhí)行過程和結(jié)果進(jìn)行監(jiān)控。支持任務(wù)的優(yōu)先級調(diào)度,在有資源約束的情況下,按任務(wù)優(yōu)先級調(diào)度任務(wù)。在任務(wù)的執(zhí)行過程中進(jìn)行任務(wù)進(jìn)度監(jiān)測,監(jiān)測已運行時間、預(yù)計剩余時間、資源消耗等信息,對任務(wù)的異常進(jìn)行實時告警。
(2)質(zhì)量監(jiān)測:在數(shù)據(jù)抽取、轉(zhuǎn)換、加載的各個環(huán)節(jié)實時監(jiān)控數(shù)據(jù)流,及時發(fā)現(xiàn)數(shù)據(jù)丟失、數(shù)據(jù)斷流等數(shù)據(jù)質(zhì)量問題。實時統(tǒng)計數(shù)據(jù)條目,對各流程環(huán)節(jié)前后的數(shù)據(jù)條目、開始與結(jié)束的條目進(jìn)行核對。定時對已持久化的數(shù)據(jù)進(jìn)行綜合檢查,統(tǒng)計數(shù)據(jù)的空值率、重復(fù)率、多字段間的邏輯正確性等數(shù)據(jù)質(zhì)量指標(biāo)。對數(shù)據(jù)條目的突增突降等重要數(shù)據(jù)質(zhì)量問題實時告警,定期形成數(shù)據(jù)質(zhì)量報告,指導(dǎo)業(yè)務(wù)人員的數(shù)據(jù)應(yīng)用。
(3)資產(chǎn)管理:提供可視化的資產(chǎn)總覽、管理功能。資產(chǎn)總覽從數(shù)據(jù)規(guī)模、類目分布、熱門訪問等多個角度,對數(shù)據(jù)資源平臺上的數(shù)據(jù)資產(chǎn)狀況進(jìn)行全景式展現(xiàn)。并從數(shù)據(jù)的使用熱度、廣度、深度等維度展示熱點數(shù)據(jù)、熱點字段、熱點用戶、熱點使用方式等信息。提供對數(shù)據(jù)資產(chǎn)的數(shù)據(jù)標(biāo)準(zhǔn)管理、數(shù)據(jù)質(zhì)量查看、數(shù)據(jù)資產(chǎn)信息編輯、數(shù)據(jù)資產(chǎn)級別管理等功能,便于管理者對數(shù)據(jù)資產(chǎn)進(jìn)行維護(hù)管理。
本文介紹了面向高校多源異構(gòu)數(shù)據(jù)集成的 ETLA技術(shù),詳細(xì)介紹了ETLA技術(shù)的抽取、轉(zhuǎn)化、加載、調(diào)度管理4大功能。本技術(shù)在常見的ETL技術(shù)的基礎(chǔ)上增加了面向業(yè)務(wù)使用人員的數(shù)據(jù)規(guī)范化、臟數(shù)據(jù)清洗、數(shù)據(jù)關(guān)聯(lián)融合、數(shù)據(jù)質(zhì)量監(jiān)控、資產(chǎn)管理等功能。使數(shù)據(jù)使用者能夠更加方便的使用業(yè)務(wù)數(shù)據(jù),減少了跟業(yè)務(wù)邏輯無關(guān)的數(shù)據(jù)清洗、關(guān)聯(lián)等無效且耗時的數(shù)據(jù)處理操作,降低了數(shù)據(jù)質(zhì)量問題的發(fā)現(xiàn)延遲,提高了業(yè)務(wù)數(shù)據(jù)的高質(zhì)量和使用便利度。