孫 歆,卓榮慶
(浙江傳媒學(xué)院 網(wǎng)絡(luò)數(shù)據(jù)中心,浙江 杭州 310018)
隨著5G、人工智能及物聯(lián)網(wǎng)等技術(shù)的興起,2018 年4 月,教育部印發(fā)《教育信息化2.0 行動計(jì)劃》[1]指出,依托各類智能設(shè)備及網(wǎng)絡(luò),利用信息技術(shù)擴(kuò)大優(yōu)質(zhì)教育資源覆蓋面,提高教育質(zhì)量。如何高效地利用數(shù)據(jù)信息資源建立符合高校實(shí)際情況的數(shù)據(jù)共享中心,實(shí)現(xiàn)系統(tǒng)之間的互通共享,成為提升高校業(yè)務(wù)水平、促進(jìn)教學(xué)質(zhì)量的重要研究內(nèi)容。但是,在實(shí)際建設(shè)高校數(shù)據(jù)共享中心的過程中,常常會遇到以下4 種問題[2]。
(1)業(yè)務(wù)系統(tǒng)各自為政,形成“信息孤島”。隨著信息化意識的不斷深化,各個業(yè)務(wù)部門已經(jīng)開始使用業(yè)務(wù)系統(tǒng)來提升部門的管理水平。但是,由于各個業(yè)務(wù)系統(tǒng)采購的時間及廠家所使用的數(shù)據(jù)庫類型版本不盡相同,系統(tǒng)之間數(shù)據(jù)孤立且未進(jìn)行數(shù)據(jù)共享同步,導(dǎo)致部門之間業(yè)務(wù)協(xié)作較少,逐漸形成了“信息孤島”。
(2)缺乏統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),業(yè)務(wù)數(shù)據(jù)難以共享。在建設(shè)校內(nèi)業(yè)務(wù)系統(tǒng)之前,未對數(shù)據(jù)共享標(biāo)準(zhǔn)進(jìn)行統(tǒng)一規(guī)劃,導(dǎo)致各個業(yè)務(wù)系統(tǒng)因數(shù)據(jù)結(jié)構(gòu)、字段屬性含義不同而無法快速進(jìn)行數(shù)據(jù)的共享同步,如學(xué)號、工號、部門代碼、專業(yè)代碼及班級代碼等。
(3)數(shù)據(jù)權(quán)威源模糊,數(shù)據(jù)冗余不一致。在進(jìn)行數(shù)據(jù)共享的過程中,由于未對標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行權(quán)威源界定,因此某個標(biāo)準(zhǔn)數(shù)據(jù)字段常常來源于多個業(yè)務(wù)系統(tǒng),造成數(shù)據(jù)重復(fù)和冗余。
(4)數(shù)據(jù)片面單一化,無法進(jìn)行綜合查詢。業(yè)務(wù)系統(tǒng)在建設(shè)時僅僅滿足了該部門自身的信息化建設(shè)需求,無法實(shí)現(xiàn)多業(yè)務(wù)系統(tǒng)的綜合查詢業(yè)務(wù)。例如,需查詢某個教師的人事、科研及教務(wù)等信息時,只能對其進(jìn)行單個業(yè)務(wù)系統(tǒng)查詢,無法進(jìn)行一次性綜合查詢分析。
為了解決以上問題,高校各個業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)必須要統(tǒng)一標(biāo)準(zhǔn),進(jìn)行數(shù)據(jù)融合,建立符合高校數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù)共享中心。具體地,需對業(yè)務(wù)系統(tǒng)數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗和數(shù)據(jù)標(biāo)準(zhǔn)化操作,進(jìn)入數(shù)據(jù)共享中心,之后下發(fā)給各個應(yīng)用系統(tǒng)。下游系統(tǒng)只通過數(shù)據(jù)共享中心進(jìn)行數(shù)據(jù)讀取,可以保證數(shù)據(jù)的唯一性,因此便于后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)挖掘工作[3]。
ETL 是數(shù)據(jù)抽?。‥xtract)、數(shù)據(jù)轉(zhuǎn)換(Transform)及數(shù)據(jù)加載(Load)3 種操作的總稱[4],也是目前數(shù)據(jù)中心進(jìn)行數(shù)據(jù)融合時經(jīng)常采用的數(shù)據(jù)交換技術(shù)。在進(jìn)行數(shù)據(jù)融合時,使用ETL 工具從異構(gòu)的數(shù)據(jù)源中提取需要的數(shù)據(jù),并根據(jù)需要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換、清洗、去重等操作,將不同數(shù)據(jù)類型但含義一致的數(shù)據(jù)進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化,然后把加工處理后的數(shù)據(jù)加載到新的數(shù)據(jù)中心庫中進(jìn)行存儲。本文根據(jù)實(shí)際數(shù)據(jù)存儲情況,設(shè)計(jì)了符合高校實(shí)際使用情況的數(shù)據(jù)共享中心數(shù)據(jù)融合處理模型,如圖1 所示。
從模型可以看出,校內(nèi)系統(tǒng)數(shù)據(jù)一般分散在各個業(yè)務(wù)系統(tǒng)和平面文件中。從類型上來說,它可以分為業(yè)務(wù)類系統(tǒng)數(shù)據(jù)、流程類系統(tǒng)數(shù)據(jù)及手工表格數(shù)據(jù)。其中,業(yè)務(wù)系統(tǒng)數(shù)據(jù)包含業(yè)務(wù)部門使用的業(yè)務(wù)數(shù)據(jù),流程類系統(tǒng)數(shù)據(jù)包含部門內(nèi)或者部門間的流程申請數(shù)據(jù),手工表格數(shù)據(jù)包含一些線下操作的未在業(yè)務(wù)系統(tǒng)錄入的數(shù)據(jù)。業(yè)務(wù)類數(shù)據(jù)與流程類數(shù)據(jù)一般采用Oracle、MSSQLServer 以及MySQL等關(guān)系型數(shù)據(jù)庫存儲,而手工表格數(shù)據(jù)一般采用XLS、CSV 以及TXT 等平面文件格式存放。在進(jìn)行數(shù)據(jù)融合共享操作前,需要定義異構(gòu)數(shù)據(jù)源系統(tǒng)、數(shù)據(jù)源平面文件與全量數(shù)據(jù)庫之間的接口,形成數(shù)據(jù)模型文檔。
對數(shù)據(jù)源系統(tǒng)進(jìn)行數(shù)據(jù)分析是進(jìn)行數(shù)據(jù)融合工作前最重要的一步。該步驟需要技術(shù)實(shí)施人員與業(yè)務(wù)系統(tǒng)使用人員共同對源系統(tǒng)內(nèi)的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)內(nèi)容及數(shù)據(jù)含義進(jìn)行概念界定,確認(rèn)是否存在理解上的偏差。除此之外,需要對源系統(tǒng)的數(shù)據(jù)質(zhì)量進(jìn)行分析,將數(shù)據(jù)質(zhì)量不合格的數(shù)據(jù)源反饋給業(yè)務(wù)系統(tǒng)使用部門進(jìn)行整改。完成數(shù)據(jù)源分析后,才可以對數(shù)據(jù)抽取進(jìn)行方案設(shè)計(jì)。方案設(shè)計(jì)完成后,把分散數(shù)據(jù)抽取到全量數(shù)據(jù)庫。全量數(shù)據(jù)庫直接存放關(guān)系型數(shù)據(jù)庫和平面文件數(shù)據(jù)源的所有數(shù)據(jù)。這些數(shù)據(jù)的結(jié)構(gòu)與原業(yè)務(wù)系統(tǒng)保持一致,可以降低數(shù)據(jù)轉(zhuǎn)換的復(fù)雜性。因?yàn)槿繑?shù)據(jù)庫包含了不同數(shù)據(jù)源的數(shù)據(jù)明細(xì),所以可以為其他應(yīng)用提供跨庫的數(shù)據(jù)明細(xì)查詢功能。
數(shù)據(jù)中心庫是一個面向主題的包含所有數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù)集合和決策系統(tǒng)的支撐數(shù)據(jù)庫。在進(jìn)行數(shù)據(jù)轉(zhuǎn)換前,應(yīng)先按照《教育管理信息教育管理基礎(chǔ)代碼》標(biāo)準(zhǔn)[5],根據(jù)具體的業(yè)務(wù)需求,形成符合高校實(shí)際數(shù)據(jù)情況的數(shù)據(jù)標(biāo)準(zhǔn)文件。數(shù)據(jù)標(biāo)準(zhǔn)文件分為標(biāo)準(zhǔn)代碼子集(國家標(biāo)準(zhǔn)子集、教育部標(biāo)準(zhǔn)子集、行業(yè)標(biāo)準(zhǔn)子集、學(xué)校標(biāo)準(zhǔn)子集)和標(biāo)準(zhǔn)數(shù)據(jù)子集(學(xué)生、教學(xué)、教工、資產(chǎn)、科研數(shù)據(jù)子集等)[6]。形成數(shù)據(jù)標(biāo)準(zhǔn)文件后進(jìn)行數(shù)據(jù)轉(zhuǎn)換,可以采用字段映射、數(shù)值轉(zhuǎn)換、數(shù)值補(bǔ)齊及數(shù)值標(biāo)準(zhǔn)化4 種方式。
3.2.1 字段映射
字段映射是指將源系統(tǒng)的字段與目標(biāo)系統(tǒng)的字段直接進(jìn)行一一對應(yīng),對應(yīng)完成后即可將源系統(tǒng)字段的數(shù)值內(nèi)容復(fù)制到目標(biāo)系統(tǒng)的字段中。
3.2.2 數(shù)值轉(zhuǎn)換
數(shù)值轉(zhuǎn)換屬于數(shù)據(jù)清洗的一種方式,即將源系統(tǒng)內(nèi)某個字段的值轉(zhuǎn)換為目標(biāo)系統(tǒng)的值,而不是簡單的復(fù)制。例如,源系統(tǒng)中性別“男”“女”的代碼分別為1和0,不符合國標(biāo)要求,需要進(jìn)行數(shù)值轉(zhuǎn)換。此時,可將“男”“女”的代碼值轉(zhuǎn)換為代碼1 和2,再同步到數(shù)據(jù)中心。
3.2.3 數(shù)值補(bǔ)齊
數(shù)值補(bǔ)齊是指在源系統(tǒng)數(shù)據(jù)缺失的情況下,通過其他字段,根據(jù)業(yè)務(wù)計(jì)算規(guī)則或者數(shù)據(jù)質(zhì)量公式來推斷缺失的數(shù)值從而補(bǔ)齊數(shù)據(jù)。例如,已知身份證件號信息,可根據(jù)7~14 位的數(shù)值來推斷出生日期,并補(bǔ)齊到出生日期字段中。
3.2.4 數(shù)值標(biāo)準(zhǔn)化
數(shù)據(jù)中心庫從多個業(yè)務(wù)系統(tǒng)進(jìn)行數(shù)據(jù)抽取時,不同的業(yè)務(wù)系統(tǒng)對數(shù)據(jù)會有不同的定義,因此需要根據(jù)確定的標(biāo)準(zhǔn)文件對數(shù)據(jù)進(jìn)行統(tǒng)一的規(guī)范對照處理,并整合到標(biāo)準(zhǔn)數(shù)據(jù)表中。比如,學(xué)生處在建立學(xué)生工作系統(tǒng)時,樓棟的建筑物代碼未遵循資產(chǎn)系統(tǒng)的標(biāo)準(zhǔn)代碼,在數(shù)據(jù)中心進(jìn)行抽取時,需要將學(xué)工系統(tǒng)的住宿數(shù)據(jù)參照國資系統(tǒng)的樓棟代碼進(jìn)行標(biāo)準(zhǔn)化對照,再將樓棟數(shù)據(jù)抽取到數(shù)據(jù)中心標(biāo)準(zhǔn)庫中。
如果把數(shù)據(jù)中心庫比作數(shù)據(jù)倉庫,那么數(shù)據(jù)集市就是以某個業(yè)務(wù)應(yīng)用為出發(fā)點(diǎn)建設(shè)的局部數(shù)據(jù)主題庫。在數(shù)據(jù)加載過程中,應(yīng)對數(shù)據(jù)集市與數(shù)據(jù)中心中的數(shù)據(jù)按照數(shù)據(jù)質(zhì)量校驗(yàn)規(guī)則進(jìn)行比對,以確保數(shù)據(jù)的準(zhǔn)確完整性。對于不符合規(guī)則的數(shù)據(jù)應(yīng)該給出提示,在源系統(tǒng)進(jìn)行更新修改后再次進(jìn)行加載。
從數(shù)據(jù)中心庫加載到數(shù)據(jù)集市的過程,分為全量加載和增量加載兩種。全量加載是指把源表的全部數(shù)據(jù)進(jìn)行一次性加載的方式,而增量加載是指目標(biāo)數(shù)據(jù)表僅僅更新發(fā)生變動的數(shù)據(jù)。全量加載從技術(shù)實(shí)現(xiàn)的角度來說比增量加載簡單,一般的處理方法是清空刪除目標(biāo)表,然后將源數(shù)據(jù)一次性全量導(dǎo)入即可。但在實(shí)際的業(yè)務(wù)使用中,常常需要使用增量加載的方式。增量加載的難度在于需要捕捉源數(shù)據(jù)中發(fā)生變化的數(shù)據(jù),再將這些有變化的數(shù)據(jù)單獨(dú)更新轉(zhuǎn)換到目標(biāo)表中,同時不能影響業(yè)務(wù)系統(tǒng)的正常運(yùn)行。在進(jìn)行增量抽取時,常用基于日志分析方式、觸發(fā)器方式、時間戳方式以及全表比對方式4 種方式。
3.3.1 基于日志分析方式
關(guān)系型數(shù)據(jù)庫所有的數(shù)據(jù)庫操作都會以日志的形式保存在日志文件中,因此增量抽取時可以通過分析操作日志來判斷自上次操作以來發(fā)生變化的數(shù)據(jù)。Oracle GoldenGate 就是典型的亞秒級基于日志的結(jié)構(gòu)化數(shù)據(jù)同步程序。GoldenGate 能夠進(jìn)行大量數(shù)據(jù)操作日志的實(shí)施捕捉,實(shí)現(xiàn)源數(shù)據(jù)庫中的數(shù)據(jù)表與目標(biāo)數(shù)據(jù)庫中數(shù)據(jù)表之間的數(shù)據(jù)同步,可以實(shí)現(xiàn)單向、雙向、點(diǎn)對點(diǎn)、廣播、集中及多級等多種數(shù)據(jù)的同步。
3.3.2 觸發(fā)器方式
采用觸發(fā)器方式進(jìn)行增量同步時,需要新建一張臨時日志表,根據(jù)新增、更新、刪除操作新建3 種類型的觸發(fā)器。當(dāng)源數(shù)據(jù)表有數(shù)據(jù)發(fā)生改變時,利用觸發(fā)器將發(fā)生變化的數(shù)據(jù)填入該日志表中。日志表一般不存儲增量數(shù)據(jù)的所有信息,只存儲源表名稱、更新的關(guān)鍵字及具體的數(shù)據(jù)操作類型(Insert、Update、Delete)。加載進(jìn)程根據(jù)源表數(shù)據(jù)、日志中的變化記錄和具體的操作類型對目標(biāo)表中的數(shù)據(jù)進(jìn)行增量操作。
3.3.3 時間戳方式
該方式的原理是進(jìn)行增量加載時,通過比較系統(tǒng)時間與最近一次更新的時間戳來決定加載更新哪些字段。采用這種方式進(jìn)行更新時,需要在源表中增加一個時間戳字段。業(yè)務(wù)系統(tǒng)進(jìn)行數(shù)據(jù)更新時,不僅需要修改更新表數(shù)據(jù),也要修改時間戳字段。
3.3.4 全表比對方式
全表比對方式是在進(jìn)行增量加載時,將目標(biāo)表數(shù)據(jù)與源表數(shù)據(jù)進(jìn)行比對,找出兩表之間的不同之處,并根據(jù)實(shí)際情況進(jìn)行插入、更新、刪除操作。使用該方式需要事先建立一個與源表結(jié)構(gòu)類似的臨時表,用以存放源表主鍵以及根據(jù)源表各字段加密的校驗(yàn)碼。進(jìn)行數(shù)據(jù)加載時,首先對比源表與目標(biāo)表主鍵,如果目標(biāo)表不存在該主鍵,則為新增數(shù)據(jù),進(jìn)行插入操作。如果源表主鍵與目標(biāo)表同時存在,則根據(jù)加密的校驗(yàn)碼判斷是否需要更新,如校驗(yàn)碼不同,則進(jìn)行更新操作。如果目標(biāo)表存在某主鍵字段而源表未找到,則對目標(biāo)表主鍵進(jìn)行刪除操作。
傳統(tǒng)的數(shù)據(jù)集市結(jié)構(gòu)清晰、針對性強(qiáng),一般是將某種單獨(dú)領(lǐng)域的數(shù)據(jù)建立數(shù)據(jù)域。將數(shù)據(jù)加載到數(shù)據(jù)集市之后,需要根據(jù)目標(biāo)需求進(jìn)行數(shù)據(jù)整合,將不同數(shù)據(jù)集市中的數(shù)據(jù)進(jìn)行關(guān)聯(lián),提供統(tǒng)一的數(shù)據(jù)服務(wù)。在實(shí)際操作中,數(shù)據(jù)整合可以提供數(shù)據(jù)報表查詢服務(wù),也可以為不同的應(yīng)用提供多維分析和數(shù)據(jù)挖掘等服務(wù)。
數(shù)據(jù)共享中心建設(shè)是一個長期積累并優(yōu)化的過程。經(jīng)過多年的不斷優(yōu)化,浙江傳媒學(xué)院數(shù)據(jù)中心已初具規(guī)模。在現(xiàn)有的平臺建設(shè)與管理基礎(chǔ)上,網(wǎng)絡(luò)數(shù)據(jù)中心還將不斷完善數(shù)據(jù)共享制度,擴(kuò)充數(shù)據(jù)共享中心資源,為學(xué)校辦學(xué)發(fā)展提供更加優(yōu)質(zhì)的信息化服務(wù)。