陶 冶,郭帥童,王曉東,侯瑞春,初佃輝
(1.青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,青島 266071;2.中國海洋大學(xué) 信息科學(xué)與工程學(xué)院,青島 266000;3.哈爾濱工業(yè)大學(xué),威海 264209)
在大規(guī)模定制的過程中,通常需要整合跨平臺(tái)、跨企業(yè)、跨領(lǐng)域的異質(zhì)異構(gòu)數(shù)據(jù)[1,2],為業(yè)務(wù)融合、交互共享與服務(wù)集成提供基礎(chǔ)支持。研究跨域異構(gòu)數(shù)據(jù)與資源的融合技術(shù),有助于發(fā)現(xiàn)各類實(shí)體之間的隱藏關(guān)聯(lián)關(guān)系,為業(yè)務(wù)協(xié)同、流程優(yōu)化與資源調(diào)度提供客觀依據(jù)[3]。
通常,各類業(yè)務(wù)系統(tǒng)建設(shè)持續(xù)時(shí)間長(zhǎng),在初始設(shè)計(jì)階段往往對(duì)數(shù)據(jù)標(biāo)準(zhǔn)、信息開放等方面需求考慮不足,信息孤島現(xiàn)象普遍存在,另外,伴隨系統(tǒng)功能的拓展與更改,原有關(guān)聯(lián)關(guān)系也發(fā)生改變,導(dǎo)致全局?jǐn)?shù)據(jù)空間構(gòu)建的過程中,實(shí)體之間的關(guān)聯(lián)關(guān)系難以發(fā)現(xiàn),無法形成有效知識(shí)圖譜。
關(guān)系型數(shù)據(jù)是大規(guī)模定制生產(chǎn)過程中產(chǎn)生主要數(shù)據(jù)類型[4],一般采用實(shí)體-關(guān)系模型(Entity-Relationship Diagram,ERD)表達(dá)實(shí)體之間的關(guān)聯(lián)。盡管直觀易懂,但也存在一些局限:一是ERD只表達(dá)實(shí)體之間固有的、靜態(tài)的關(guān)聯(lián)關(guān)系;二是難以發(fā)現(xiàn)實(shí)體之間的隱藏關(guān)聯(lián)關(guān)系,在概念模式設(shè)計(jì)不完備的情況下,除通過外鍵顯式描述外,實(shí)體之間存在大量隱藏關(guān)聯(lián)無法充分體現(xiàn)。
挖掘關(guān)系型數(shù)據(jù)庫各實(shí)體之間的關(guān)聯(lián)關(guān)系是基于語義的數(shù)據(jù)融合的關(guān)鍵步驟,相關(guān)研究工作主要集中在以下兩個(gè)方面:一是建立輔助手段與現(xiàn)有的數(shù)據(jù)庫相互結(jié)合或者優(yōu)化訪問方式,實(shí)現(xiàn)對(duì)圖結(jié)構(gòu)數(shù)據(jù)的快速高效的操作,M.Paradies等[5]通過對(duì)關(guān)系數(shù)據(jù)庫增加圖框架來改善在關(guān)系型數(shù)據(jù)庫中查詢涉及到的圖操作,對(duì)內(nèi)部高度關(guān)聯(lián)的數(shù)據(jù)查詢時(shí)涉及到的多表聯(lián)合查詢,J.F.Sinnott Jr在[6]中提出查詢中設(shè)置多表之間的最佳連接順序和最小成本的路徑規(guī)劃的方案,J.Chhugani等[7]展示了改善圖遍歷算法可以加快對(duì)圖結(jié)構(gòu)數(shù)據(jù)的訪問;二是通過將結(jié)構(gòu)化數(shù)據(jù)遷移到非結(jié)構(gòu)化系統(tǒng)中[8]實(shí)現(xiàn),例如,可將關(guān)系型數(shù)據(jù)庫的元組映射為圖數(shù)據(jù)[9]中的節(jié)點(diǎn),將外鍵映射為邊,S.Bordoloi和B.Kalita[10]通過從源數(shù)據(jù)庫的模式圖或進(jìn)行逆向工程得到數(shù)學(xué)模型,根據(jù)數(shù)學(xué)模型建立圖模型,R.De Virgilio等[11]通過在源關(guān)系型數(shù)據(jù)庫上定義的完整性約束來構(gòu)建圖數(shù)據(jù)庫,同時(shí)將源數(shù)據(jù)庫上的查詢命令高效的轉(zhuǎn)換成圖數(shù)據(jù)庫上的查詢命令。若能在數(shù)據(jù)遷移同時(shí)發(fā)掘?qū)嶓w間的跨域深層關(guān)聯(lián),并通過可視化手段呈現(xiàn),則有助于建立基于異構(gòu)關(guān)系型數(shù)據(jù)庫之上的邏輯數(shù)據(jù)空間。
在大多數(shù)制造業(yè)信息化系統(tǒng)中,日志文件包含豐富信息[12],通常詳細(xì)記錄了用戶、動(dòng)態(tài)事件、數(shù)據(jù)庫查詢操作等。除了性能優(yōu)化[13]、故障檢測(cè)[14]、安全審計(jì)[15]外,隨著數(shù)據(jù)規(guī)模的增加和處理能力的提高,對(duì)日志功能擴(kuò)展的研究越來越多,例如;應(yīng)毅等[16]提出根據(jù)分析結(jié)果對(duì)現(xiàn)有業(yè)務(wù)進(jìn)行改善并提供定制化服務(wù)。若能在一般意義上的系統(tǒng)日志的基礎(chǔ)上,通過對(duì)日志信息中涉及的數(shù)據(jù)庫訪問條目進(jìn)行深度挖掘,可發(fā)現(xiàn)多維異構(gòu)數(shù)據(jù)庫中數(shù)據(jù)之間的動(dòng)態(tài)聯(lián)系,實(shí)現(xiàn)對(duì)ERD表達(dá)方式的有益補(bǔ)充。
本文提出一種基于日志信息挖掘的跨域數(shù)據(jù)融合與可視化方法,針對(duì)目前大規(guī)模定制業(yè)務(wù)系統(tǒng)中廣泛應(yīng)用的關(guān)系型數(shù)據(jù),通過分析不同系統(tǒng)的訪問日志,動(dòng)態(tài)發(fā)現(xiàn)跨域?qū)嶓w間的關(guān)聯(lián)關(guān)系,并給出其隨時(shí)間推移的演化模型,利用圖數(shù)據(jù)庫與知識(shí)圖譜工具驗(yàn)證其可行性,主要?jiǎng)?chuàng)新包括:1)相較于傳統(tǒng)ERD,由日志驅(qū)動(dòng)的關(guān)聯(lián)挖掘方法生成的關(guān)聯(lián)模型可體現(xiàn)各實(shí)體間的內(nèi)在隱藏關(guān)系;2)針對(duì)跨域?qū)嶓w聚類與關(guān)聯(lián),給出了關(guān)聯(lián)量化特征及可視化表示方法;3)能夠體現(xiàn)實(shí)體關(guān)聯(lián)關(guān)系隨時(shí)間推移的動(dòng)態(tài)演化過程;4)針對(duì)不同業(yè)務(wù)角色,呈現(xiàn)動(dòng)態(tài)實(shí)體關(guān)聯(lián)熱點(diǎn),輔助資源動(dòng)態(tài)分配和業(yè)務(wù)協(xié)同。
本節(jié)提出基于日志的數(shù)據(jù)融合模型,通過分析關(guān)系型數(shù)據(jù)庫的SQL查詢?nèi)罩?,建立關(guān)系模型到圖模型的實(shí)體與數(shù)據(jù)的關(guān)聯(lián)映射。
假設(shè)l是日志L中的一個(gè)條目,r代表關(guān)系數(shù)據(jù)庫概念模型R中的一個(gè)關(guān)系,a表示r中的某一屬性,v和?v分別表示圖模型G中與r和a對(duì)應(yīng)的實(shí)體節(jié)點(diǎn)與屬性節(jié)點(diǎn),e代表節(jié)點(diǎn)之間的邊,φ與ω分別代表節(jié)點(diǎn)與邊的權(quán)重,建立圖模型的過程就是通過遍歷L,找到從R到G的一組映射并確定相應(yīng)的參數(shù),即:
圖1為一模型映射實(shí)例,將r1,r2,r3,r4代表的4個(gè)關(guān)系分別映射為圖模型中的v1,v2,v3,v4代表的4個(gè)節(jié)點(diǎn),將各屬性aij分別映射為所代表的頂點(diǎn)。
圖1 關(guān)系模型-圖模型映射示意
與傳統(tǒng)的ERD不同,該模型通過分析一定時(shí)間內(nèi)的數(shù)據(jù)庫日志,依據(jù)不同實(shí)體和屬性的訪問頻次和連接關(guān)系,計(jì)算頂點(diǎn)權(quán)重φ與邊權(quán)重ω,在圖模型的可視化過程中,φi體現(xiàn)為vi所代表的節(jié)點(diǎn)圓半徑,ωi體現(xiàn)為ei所代表的邊的線寬。
在ERD描述的基礎(chǔ)上,通過分析日志中的SQL查詢語句建立映射函數(shù),主要處理以下兩種情況。
1)顯式連接關(guān)系的映射
如果SQL查詢?nèi)罩局械倪B接關(guān)系是顯式表達(dá)的(也包括存在表別名或列別名的情況),只需要查找對(duì)應(yīng)關(guān)系的關(guān)聯(lián)方式便可生成圖模型中的相應(yīng)參數(shù),如圖2所示。
圖2 顯式連接關(guān)系映射
2)隱式連接關(guān)系的映射
如果SQL查詢?nèi)罩局卸鄬忧短椎倪B接關(guān)系,需要將等價(jià)關(guān)系中的信息經(jīng)過多次映射才能發(fā)現(xiàn)實(shí)際關(guān)聯(lián),如圖3所示。由于臨時(shí)表r3在實(shí)際模型中并不存在,因此,在映射過程中需要將其轉(zhuǎn)換為r1和r2,才能反映實(shí)際映射關(guān)系信息。
圖3 隱式連接關(guān)系映射
可視化模型中,頂點(diǎn)權(quán)重φ與邊權(quán)重ω主要與日志條目中對(duì)相關(guān)實(shí)體與屬性的訪問頻次相關(guān),且隨選取日志的時(shí)間變化而動(dòng)態(tài)變化,參數(shù)確定的方法由算法1描述。
算法1:參數(shù)計(jì)算方法
首先根據(jù)關(guān)系數(shù)據(jù)庫概念模式R生成初始ERD,在此基礎(chǔ)上,逐條讀取日志記錄l,提取關(guān)聯(lián)實(shí)體間的連接操作及相關(guān)屬性。若該連接操作所涉及的實(shí)體已在圖模型中生成相應(yīng)節(jié)點(diǎn),則增加該節(jié)點(diǎn)與邊的權(quán)重,否則在圖模型中創(chuàng)建相應(yīng)的節(jié)點(diǎn)與邊。
本節(jié)通過對(duì)比傳統(tǒng)ERD與日志驅(qū)動(dòng)生成的圖模型,給出實(shí)體聯(lián)系模型的增強(qiáng)可視化方法。ERD通常在數(shù)據(jù)庫的概念設(shè)計(jì)階段完成,是從現(xiàn)實(shí)中數(shù)據(jù)之間的顯式關(guān)系入手創(chuàng)建的數(shù)據(jù)關(guān)聯(lián),而通過上一節(jié)提出的日志驅(qū)動(dòng)的模型生成算法也可刻畫數(shù)據(jù)庫中數(shù)據(jù)之間的關(guān)系,以下對(duì)兩種生成方式的特點(diǎn)進(jìn)行對(duì)比。
針對(duì)同一關(guān)系模型,圖4(a)是根據(jù)具體的由數(shù)據(jù)定義語言(Data Definition Language,DDL)描述的概念模型中的主外鍵關(guān)聯(lián)關(guān)系直接生成的ERD模型;圖4(b)是根據(jù)前述算法生成的圖模型;圖4(c)則是融合了ERD與日志驅(qū)動(dòng)生成的圖模型,對(duì)實(shí)體與關(guān)聯(lián)關(guān)系的權(quán)重?cái)?shù)據(jù)進(jìn)行了可視化,體現(xiàn)的信息更為豐富。
ERD通過主外鍵描述顯式表達(dá)實(shí)體間關(guān)聯(lián),但實(shí)際應(yīng)用中,這種關(guān)聯(lián)關(guān)系的表達(dá)通常都不完備。例如,根據(jù)DDL描述,圖4(a)中藍(lán)色節(jié)點(diǎn)①所代表的role實(shí)體中,id是主鍵,其他實(shí)體通過外碼roleid與之建立關(guān)聯(lián)。
在實(shí)際操作中,還有一些關(guān)聯(lián)是DDL中沒有定義的,例如:圖4(b)中的深藍(lán)色節(jié)點(diǎn)①所代表的role_capabilities實(shí)體與橙色節(jié)點(diǎn)②所代表的role_allow_switch實(shí)體之間則是通過roleid與allowswitch兩個(gè)屬性關(guān)聯(lián)的。但由于這個(gè)關(guān)聯(lián)并未在DDL中定義,因此,也就無法體現(xiàn)在傳統(tǒng)的ERD中,而日志驅(qū)動(dòng)的模型構(gòu)建方法不受DDL約束,可以挖掘類似的隱式關(guān)聯(lián)關(guān)系。
數(shù)據(jù)庫設(shè)計(jì)階段主要考慮實(shí)體和關(guān)聯(lián)的靜態(tài)屬性,但給定時(shí)間內(nèi),實(shí)體和屬性的查詢頻率、訪問次數(shù)等隨時(shí)間變化的動(dòng)態(tài)因素則無法通過傳統(tǒng)ERD進(jìn)行刻畫。圖4(a)中節(jié)點(diǎn)之間的大小以及節(jié)點(diǎn)之間的邊都是統(tǒng)一大小的,無法表達(dá)不同實(shí)體和屬性的訪問頻率。但是在實(shí)際應(yīng)用中不同數(shù)據(jù)的訪問量經(jīng)常是不同的,難以對(duì)“熱點(diǎn)”部分進(jìn)行聚焦。
圖4 實(shí)體聯(lián)系模型的增強(qiáng)可視化
但在圖4(b)中,節(jié)點(diǎn)半徑(對(duì)應(yīng)模型參數(shù)φ)、節(jié)點(diǎn)之間邊的線寬(對(duì)應(yīng)模型參數(shù)ω)可直觀表達(dá)權(quán)重信息,例如:深綠色④對(duì)應(yīng)的role_allow_view節(jié)點(diǎn)比深藍(lán)色①對(duì)應(yīng)的role_capabilities節(jié)點(diǎn)半徑小,表明在給定的時(shí)間內(nèi),對(duì)關(guān)系role_capabilities的訪問比對(duì)關(guān)系role_allow_view的訪問更為頻繁。另外,連接深藍(lán)色節(jié)點(diǎn)①roleid與淺藍(lán)色節(jié)點(diǎn)③id之間的邊的線寬明顯偏大,表明關(guān)系role_capabilities與關(guān)系role之間的連接操作更為頻繁。
由日志驅(qū)動(dòng)生成的圖模型還可展示關(guān)聯(lián)關(guān)系隨時(shí)間的演變過程。如圖5所示,以某家電制造企業(yè)的內(nèi)部培訓(xùn)系統(tǒng)日志為例,呈現(xiàn)30天內(nèi)日志條目數(shù)量的增長(zhǎng)變化情況。顯然,日志條目數(shù)量與時(shí)間正相關(guān),可采用日志條目數(shù)量代表時(shí)間推移,從而體現(xiàn)對(duì)時(shí)間維度敏感的數(shù)據(jù)融合操作。
圖5 日志條目數(shù)量隨時(shí)間推移而變化
圖6分別是由500條、3000條和10000條日志生成的圖模型。通過分析模型隨時(shí)間的演變過程,可以發(fā)現(xiàn):
1)熱點(diǎn)實(shí)體的動(dòng)態(tài)變化
圖6 (a)中的“熱點(diǎn)”實(shí)體(φ值較大)主要集中在深藍(lán)色節(jié)點(diǎn)①所對(duì)應(yīng)的context節(jié)點(diǎn)。隨著時(shí)間推移,“熱點(diǎn)”實(shí)體由圖6(a)中的①遷移到圖6(b)中的②所示的course_modules節(jié)點(diǎn)。
2)隱藏關(guān)聯(lián)的動(dòng)態(tài)變化
隨著時(shí)間推移,圖6(b)中淺綠色節(jié)點(diǎn)③所代表的user實(shí)體與紅色節(jié)點(diǎn)③所代表forum_discussions實(shí)體產(chǎn)生了關(guān)聯(lián),而這是此前生成的圖6(a)所未能展現(xiàn)出的。
3)全景數(shù)據(jù)視圖的整體呈現(xiàn)
通過對(duì)30天日志的全面分析,圖6(c)體現(xiàn)了更加全面和豐富的整體信息??梢?,數(shù)據(jù)訪問主要是以淺綠色節(jié)點(diǎn)①所對(duì)應(yīng)的user實(shí)體為中心,向外延伸。此外淺藍(lán)色節(jié)點(diǎn)②所對(duì)應(yīng)的course實(shí)體使圖6(b)中的孤立節(jié)點(diǎn)群①,②產(chǎn)生了關(guān)聯(lián)。與全景視圖相比,前兩個(gè)階段生成的圖模型僅反映了局部實(shí)體和關(guān)聯(lián)信息,而隨著時(shí)間推移,日志數(shù)量不斷增長(zhǎng),全景視圖才逐漸完整地呈現(xiàn)出來。
綜上,三幅子圖中節(jié)點(diǎn)群間的連接隨日志條目的增加而改變,展示了基于日志的跨域數(shù)據(jù)融合隨時(shí)間的演變的圖模型對(duì)數(shù)據(jù)分析方面的具體應(yīng)用。
圖6 由日志驅(qū)動(dòng)生成的圖模型隨時(shí)間演化示意圖
通過對(duì)不同用戶的操作對(duì)應(yīng)的日志記錄建立圖模型,可實(shí)現(xiàn)對(duì)不同角色或特定用戶的畫像分析,并通過可視化方式呈現(xiàn)用戶行為習(xí)慣,有針對(duì)性對(duì)跨域資源和業(yè)務(wù)流程進(jìn)行優(yōu)化。通過過濾選取不同時(shí)段、不同用戶、不同角色的訪問日志(L),采用算法1對(duì)各類用戶(群)的行為軌跡進(jìn)行挖掘,通過關(guān)聯(lián)多個(gè)實(shí)體,提高用戶畫像的查詢性能,降低構(gòu)建難度。
圖7是在一系列日志條目之上的目標(biāo)用戶圖模型,圖7(a)中的目標(biāo)用戶是普通用戶,而圖7(b)則是管理員用戶,可以發(fā)現(xiàn):
1)實(shí)體差異
例如:普通用戶主要是以圖7(a)中節(jié)點(diǎn)群①、②和③所對(duì)應(yīng)的實(shí)體user、course_modules和context為中心,向外擴(kuò)展;而管理員用戶則是以圖7(b)中的節(jié)點(diǎn)群①所對(duì)應(yīng)的實(shí)體role為起點(diǎn),形成一個(gè)回路。
2)關(guān)聯(lián)差異
例如:圖7(a)中熱點(diǎn)之間的連接更加復(fù)雜,多是通過不同實(shí)體節(jié)點(diǎn)(如橙色節(jié)點(diǎn)群④所對(duì)應(yīng)的實(shí)體assign_submissing)產(chǎn)生間接關(guān)聯(lián);而圖7(b)中與其對(duì)應(yīng)的實(shí)體之間則是直接關(guān)聯(lián),關(guān)系更加直接密切。
圖7 由不同用戶(角色)的日志生成的圖模型
上述分析表明,基于日志的跨域數(shù)據(jù)融合能夠依據(jù)不同用戶群體的操作之間的差異性,直接建立圖模型對(duì)用戶進(jìn)行具體分類,此外,通過對(duì)用戶操作深入分析,實(shí)現(xiàn)根據(jù)同類中已有的情況推測(cè)某用戶的演變趨勢(shì)。因此,在角色切換時(shí),可通過圖模型預(yù)加載或緩存相應(yīng)資源,提高訪問效率。
本文提出了一種基于日志分析的跨域多源異構(gòu)數(shù)據(jù)融合方法,通過分析日志中的數(shù)據(jù)庫訪問條目,豐富和拓展了傳統(tǒng)ERD,形成了增強(qiáng)的“實(shí)體-關(guān)系”圖模型,支持隱藏關(guān)聯(lián)信息的可視化和對(duì)不同用戶/角色的動(dòng)態(tài)時(shí)變分析,并以大規(guī)模定制領(lǐng)域的業(yè)務(wù)系統(tǒng)日志為例,呈現(xiàn)了圖模型的可視化結(jié)果。
后續(xù)研究將通過對(duì)數(shù)據(jù)庫中數(shù)據(jù)之間的相似性分析與當(dāng)前已實(shí)現(xiàn)的跨域數(shù)據(jù)分析相結(jié)合,對(duì)數(shù)據(jù)之間建立關(guān)聯(lián),形成更為全面的關(guān)系數(shù)據(jù)知識(shí)圖譜,實(shí)現(xiàn)對(duì)多源異構(gòu)數(shù)據(jù)更精細(xì)、更準(zhǔn)確的融合。