孟凡明
(北京社會管理職業學院 北京 102627)
ETLA技術主要解決高校數據共享第一步“數據集成”環節遇到的數據分散、格式不統一、標準不統一等問題。ETLA分別代表Extract、Transform、Load、Administer,即抽取、轉換、加載、管理。ETLA技術以“提高數據的使用效率、保障數據的高質量”為目標,在常見ETL技術的基礎上增加了業務數據的規范化、清洗、質量監測等功能。4個模塊主要的功能為:
(1)數據抽取:從數據庫、文件系統等數據來源,抽取業務所需的數據。
(2)數據轉換:將多源異構數據按照業務需求,轉換成規范的、高價值的目的數據的過程,基于定義的數據標準,對多源異構數據進行規范化、臟數據清洗、關聯融合等數據的清洗加工操作。
(3)數據加載:將轉換后的符合數據標準的數據記錄持久化至數據庫或文件系統中。
(4)調度與管理:對數據的抽取、轉化、加載過程以任務的形式進行調度和監控。對數據各處理環節的數據質量、持久化數據資產的監測管理。
高職院校的“智慧校園”建設已有多年,學校的教學部門和非教學部門對業務需求的種類越來越多,因此,隨著信息技術的迅猛發展,各職能部門建立的業務系統也越來越豐富。各部門不管是平行業務還是交叉業務,各部門的業務系統均形成了大量的業務數據,這些數據復雜、且標準不統一,往往都需要業務人員進行后期再加工處理,才能為之所用。另外,為充分利用不同部門間數據,深入融合挖掘數據的價值,各部門之間的數據共享也越來越頻繁。但由于數據由不同的業務系統產生,數據的來源多、數據類型多、格式不統一,且數據存儲分散,甚至存在部分數據信息缺失的問題,導致數據在使用時的工作量較大,跟業務無關的數據抽取、規范化、臟數據清洗等工作耗費了大量的時間和精力。為提高各部門業務系統數據的共享使用效率、減少跟業務邏輯無關的數據處理操作、助力學院管理決策,本文提出了支持不同業務系統間數據抽取、轉化融合的ETLA技術。
根據高職院校在“智慧校園”建設過程中面臨的問題,本文研究了一種新的能提高數據共享效率的ETLA技術方法。本技術構建了數據抽取、數據轉換、數據加載和調度管理4大模塊,將分散在不同部門不同業務系統的多源異構數據進行整合,完成規范化、臟數據的過濾清洗、關鍵信息的補全校驗、數據的關聯融合等工作。具體架構如下:

圖1
數據抽取是從數據源抽取數據的過程,支持對不同部門不同業務系統的不同格式數據的抽取。支持從業務系統的關系型數據庫、數據文件、郵件和網頁等數據源抽取數據。
對于結構化數據來說,數據抽取實現從關系型數據庫或數據文件中抽取數據。對于非結構化或半結構化數據來說,數據抽取實現通過協議采集郵件和網頁等非結構化數據。具有以下能力:
(1)從數據文件中抽取數據:支持本地、HDFS文件系統,或通過FTP文件傳輸協議從遠程服務器中的XML、EXCEL、CSV格式文件中抽取數據。
(2)從關系型數據庫全量抽取數據:通過JDBC或ODBC接口從源數據庫中全量抽取數據,并轉換成系統可以識別的格式。
(3)從關系型數據庫增量抽取數據:通過數據庫日志分析方式,抽取自上次抽取以來數據庫中新增或修改的數據,支持Mysql、Oracle 等數據庫。
(4)郵件采集:通過SMTP/POP3/IMAP協議采集郵件。
(5)網頁采集:通過HTTP協議爬取網頁數據。
數據轉換環節基于定義的數據標準,將數據記錄轉換為規范的、符合標準的數據記錄。數據轉換操作以組件化、算子化的方式預先定義,并通過調度管理模塊串聯形成一個數據轉化處理流程。完成數據的格式轉化、臟數據清洗過濾、數據取值的校驗、信息的補全等功能。并從業務應用的角度設計了業務數據關聯融合的功能,構建高數據價值密度的業務數據,方便業務人員在常見業務場景下的數據使用。具體能力支持:
(1)格式轉換:按照數據標準,對同類數據進行統一標準化,避免相同業務含義的數據存在不同數據存儲類型的問題,從而降低業務人員使用數據的復雜度。如:Excel文件中學生性別以“男/女”文本格式表示,教務系統中的學生性別以“0/1”表示,將統一轉成“0/1”格式存儲,并定義數據字典標準,以便業務人員使用。
(2)臟數據清洗:數據在抽取后進行實時檢查,對不符合業務規則的臟數據進行攔截清洗,減少后續的存儲、計算資源消耗。如:對成績取值非法、學號姓名等關鍵字段缺失、取值全為空等的數據記錄進行攔截清洗。
(3)關聯融合:將不同來源的數據基于關鍵字段,按照關聯融合規則進行關聯融合,形成面向不同業務應用場景的信息完整的高價值業務數據,方便業務人員的業務應用。
(4)關鍵信息補全:不同數據源的數據,學生、教師等實體的關鍵信息通常存在不同程度的缺失,導致業務人員在獲取實體基礎信息時,需進一步查詢對應實體的基礎信息庫。本功能在數據轉化過程中,對記錄中實體缺失的或常用但未存在的信息,通過實時關聯實體基礎信息庫的方式,實時補填或新增實體信息。保證記錄的關鍵信息的完善。
數據加載是對數據轉換后的標準化數據進行持久化的過程。為滿足業務人員的不同業務場景需求,本系統支持將數據自動加載到結構化數據存儲庫、對象數據存儲庫和數據文件中,同份數據可支持自動加載到多個數據庫中。支持數據自動分區,分區類型支持等值、Hash、區間等。具有以下能力:
(1)數據庫持久化:通過JDBC或ODBC接口,把處理后的標準化數據存入到OLAP、OLTP、鍵值、對象、全文等數據庫中,支持外部 oracle、mysql、Hive、ElasticSearc、HBase、Click-House等數據庫。
(2)數據文件持久化:把處理完成的數據以XML、EXCEL、CSV格式存入到本地文件系統,或通過FTP文件傳輸協議落地到遠程服務器上。
(3)插入/更新數據:通過JDBC或ODBC接口,把處理完成的數據對數據庫表進行插入更新,如果數據庫中不存在相關記錄則插入,否則為更新。
調度與管理模塊完成數據抽取、轉換、加載工作流的任務啟停、調度和狀態監控管理。同時,在數據處理的各個環節進行數據條目監控和比對。對數據持久化后的數據質量進行綜合監測,當數據質量發生異常時,進行數據質量異常進行告警,解決數據質量問題發現滯后的問題。對重要數據支持可視化查看和管理,方便業務人員對核心數據資產的使用與管理。
(1)任務調度引擎:完成數據抽取、轉化、持久化任務的啟動、調度和狀態監控,可以按周期、定時和觸發條件的方式自動執行對目標數據的處理,并對任務執行過程和結果進行監控。支持任務的優先級調度,在有資源約束的情況下,按任務優先級調度任務。在任務的執行過程中進行任務進度監測,監測已運行時間、預計剩余時間、資源消耗等信息,對任務的異常進行實時告警。
(2)質量監測:在數據抽取、轉換、加載的各個環節實時監控數據流,及時發現數據丟失、數據斷流等數據質量問題。實時統計數據條目,對各流程環節前后的數據條目、開始與結束的條目進行核對。定時對已持久化的數據進行綜合檢查,統計數據的空值率、重復率、多字段間的邏輯正確性等數據質量指標。對數據條目的突增突降等重要數據質量問題實時告警,定期形成數據質量報告,指導業務人員的數據應用。
(3)資產管理:提供可視化的資產總覽、管理功能。資產總覽從數據規模、類目分布、熱門訪問等多個角度,對數據資源平臺上的數據資產狀況進行全景式展現。并從數據的使用熱度、廣度、深度等維度展示熱點數據、熱點字段、熱點用戶、熱點使用方式等信息。提供對數據資產的數據標準管理、數據質量查看、數據資產信息編輯、數據資產級別管理等功能,便于管理者對數據資產進行維護管理。
本文介紹了面向高校多源異構數據集成的 ETLA技術,詳細介紹了ETLA技術的抽取、轉化、加載、調度管理4大功能。本技術在常見的ETL技術的基礎上增加了面向業務使用人員的數據規范化、臟數據清洗、數據關聯融合、數據質量監控、資產管理等功能。使數據使用者能夠更加方便的使用業務數據,減少了跟業務邏輯無關的數據清洗、關聯等無效且耗時的數據處理操作,降低了數據質量問題的發現延遲,提高了業務數據的高質量和使用便利度。