摘要:為了對日志統一管理, 引入了數據倉庫技術,聚合了來自不同數據源的日志數據, 并對工作流日志進行一系列更新處理后使之變成有規律的信息,工作流挖掘便利用更新后的日志信息進行分析建模,極大地提高了工作效率。
關鍵詞:工作流挖掘; 工作流日志; 數據倉庫; 數據更新
中圖分類號:TP311.13文獻標志碼:A
文章編號:1001-3695(2007)10-0041-03
0引言
工作流管理系統是一項快速發展的技術,當今的信息系統是由確定的過程模型所驅動的。工作流管理系統,還有企業資源計劃系統(ERP)、客戶關系管理系統(CRM)、供應鏈管理系統(SCM)、B2B、配置基礎均是工作流模型,它詳細列出了需要執行的任務順序。建立一個工作流設計是一項復雜的耗費時間的過程,通常情況下,實際的工作流過程還與管理系統感知的過程存在著不一致。為了支持工作流設計,本文提出了工作流挖掘[1]。工作流挖掘的目的就是從企業流程實際運行時保存下來的日志文件中收集提取信息,用于支持流程設計和分析[2]。工作流日志作為工作流挖掘引擎的輸入,通過各種工作流挖掘技術或者工具的處理,挖掘出實際運行的工作流模型,然后將其與期望的過程模型或者預先設計好的過程模型進行一致性測試,并且將測試的結果用于改進流程設計,使過程模型適應不斷變化的企業需求。
在實際的業務過程執行中工作流日志并不是僅僅列出對業務過程的描述,還包含著許多很有價值的信息。工作流日志有利于業務過程的改進,重新組織和業務過程再造,它還能夠提供業務控制和業務監視的信息。
對于大型企業的工作流系統,大多數是分布式運作的, 因而工作流日志存儲也是分散的。為了對日志統一管理,引入數據倉庫技術對日志進行清洗、集成、聚合等更新處理,再使用OLAP (online analytical processing) 工具,將輸出的多維日志信息進行快速分析,以對整個企業業務流程質量作整體評估和優化。使用數據倉庫存儲工作流日志具有如下優點:
a)工作流日志是由非常龐大而無序的信息組成的集合,數據倉庫技術的使用可以將這些海量的數據集整合成一個便于分析的信息集,通過統計分析或數據挖掘等處理,可提取有利于商業管理者進行決策的知識。
b)數據倉庫的使用使工作流系統的運作與決策分析工作相分離,這樣大大提高了工作流系統的性能和效率。
c)工作流日志會經常動態地更新,而數據倉庫的一個主要角色就是為決策提供數據并使信息能夠及時更新[3]。數據倉庫能夠跟蹤用戶的需求和檢測數據源的變化,使日志信息能夠準確、安全、可靠地從數據庫中取出,經過加工轉換成有規律的信息后再對數據進行分析,為工作流挖掘打下了良好基礎。
目前用數據倉庫存儲工作流日志的信息系統并不多見,本文提出了在數據倉庫中實現對工作流日志的數據更新。
1數據倉庫概念及結構
根據數據倉庫奠基人W.H.Inmon的定義,數據倉庫是一個面向主題的、集成的、時變的、非易失的數據集合,支撐管理部門的決策過程[4]。
圖1顯示了一種典型的數據倉庫結構的邏輯視圖。它的具體實現,不同廠家有自己不同的數據倉庫產品解決方案。元數據作為數據中的數據,對數據倉庫中的各種數據進行了詳細的描述與說明,說明每個數據的上下文關系。由于數據倉庫是由多個處理層次構成的綜合系統,元數據也涉及到多個處理層次和領域。數據抽取和數據清洗的實現與每個數據源有關,對于不同的數據源提供有統一的或定制的工具。數據的一致性(多數據源清洗)有時與數據集成(多數據源操作)分開操作,也有時合并到數據集成中進行。高級別的數據聚合工作比較復雜,可以看成一個計算技術的集合,這個集合的范圍包涵了從簡單的統計函數到高級的數據挖掘算法。企業級數據倉庫(CDW)包含高度聚合的數據,并且被組織成多維表的形式。從每個數據源中抽取的數據可以存儲在中間數據容器中。這種分層存儲方式只是一種邏輯上的表示方式,它體現了從數據源到數據集市的數據流動過程。數據倉庫并非一個僅僅存儲數據的簡單信息庫,它是以大型數據管理信息系統為基礎,存儲從企業所有業務數據庫中獲取的綜合數據,進而利用這些綜合數據為用戶提供經過處理的有用信息的應用系統,而工作流日志正需要這樣的倉庫來存儲并分析信息。
2日志更新過程
工作流管理系統的日志信息根據具體的應用采用了不同的存儲格式,有的將日志信息存儲在日志文件中,有的存儲在關系表格中等。針對不同的存儲格式,本文采用星型模型來建立數據倉庫,對日志信息進行加工、整合。通常數據倉庫的日志信息也要按照具體的需要采用不同的存儲格式,如文本文件存儲、關系數據庫表格存儲、基于Web services的工作流產品的XML格式存儲,跨組織的工作流管理系統的日志還可能采用異構的存儲格式。在加載之前,需要將日志信息按照必要的規則轉換成統一規則的數據。為了能夠從不同格式的日志信息中加載數據,使用ETL工具加載數據倉庫信息,將轉換好的日志信息執行一系列的檢查、清洗操作,但過程數據的結構不作改變。 某個城市的電信單據日志為例,其中一天的日志信息如表1所示。
首先對日志信息進行抽取,再針對日志的不斷變化用數據倉庫對數據進行集成、聚合等,然后就可以從更新后的日志數據中抽取信息,建立清晰的過程模型,使用數據倉庫更新數據可保證構建的過程模型與實際的流程執行過程保持一致。
2.1捕獲數據源變化
使用數據倉庫更新工作流日志首先要反映數據源的變化,然后將這些變化導入到數據倉庫中。按照用戶對數據更新過程的語義以及它對所獲取的數據的要求,這些活動可以不同的方式進行組織。
就數據流來說,數據更新只是捕獲數據源所發生的改變并將這些改變轉換到數據倉庫的各個存儲層次中。在準備階段,從每個數據源中抽取數據,這些數據是自上次抽取以來,數據源所發生變化的數據。針對不同的應用領域,可以有多種捕獲數據源變化的策略。目前幾種常見的檢測數據源變化的技術有時間戳法、Delta文件法、前后映像文件法等。如果對于工作流日志中的數據更新操作較少而插入操作較多的業務系統,就可以采用前后映像文件法。對于日志數據更新操作比較多情況,可以相應地采用時間戳法或者Delta文件法。對于后臺數據倉庫的計算能力很強的情況,可以考慮采用直接映像文件的方式進行比較[5]。這些不同的更新策略將保存在元數據倉庫的數據庫中,用戶可以針對具體的情況靈活選擇。
2.2數據清洗
數據清洗階段,即進行數據項名稱的統一、位數的統一、編碼的統一和形式的統一。
對于一些重復和不規范的工作流日志信息,通常需要通過計算機檢測與人工檢查相結合的方式,先分析各個數據源中數據的不一致,然后用ETL工具定義數據清理的方法,如設計拼寫檢查、分類,與標準指標對照檢查;為名字和地址建立輔助表格或聯機字典以進行檢查修正;建立數據轉換函數以及子程序庫等。
數據清洗流程通常包括如下內容:
a)預處理。對于大的數據加載日志文件(特別是新的日志文件和數據集團)要進行預先診斷和檢測。
b)標準化處理。應用建于數據倉庫內部的標準字典,可以通過格式化、合并、分割、選擇、過濾、關聯修正和聚集等方法完成對不同數據源數據格式的標準化處理。
c)查重。應用各種數據庫查詢技術和手段,避免引入重復數據。
d)出錯處理和修正。將出錯的記錄和數據寫入到日志文件,留待進一步處理。
清洗完后對歷史數據進行歸檔,一方面在具有不同刷新頻率的數據源之間進行同步;另一方面用于一些特定的臨時查詢。
2.3數據集成
數據集成階段主要是完成對來自多數據源的改變數據進行一致性處理,并將其導入到ODS(operational data store)中,為不同的數據源提供統一的查詢視圖。數據集成是一個邏輯的分解過程,其具體實現對不同的數據倉庫產品來說是不同的。在集成過程中,通常需要考慮以下問題:
a)模式匹配。對于和時間相關的數據,自動采集數據的時間戳較密;而人工錄入數據的時間戳較稀;事務處理的數據時間是非等間隔的;而數據恢復的時間戳是歷史的。這些不同模式的匹配有元數據加以說明就避免數據集成帶來的模式匹配錯誤。
b)數據冗余。在一次更新中,可能會有一個日志文件中的多個屬性同時對結果產生影響,而對同一個結果有影響的屬性之間比較容易產生關聯,那些可以由其他屬性推導得出的屬性,即可認為是冗余屬性。
對于比較明顯的冗余現象,在理解屬性含義的基礎上稍加觀察就可以發現并消除這種冗余。
c)數據值沖突。在多個數據源中,表示同一實體的屬性值可能不同,如數據類型、數量單位或編碼等方面,這就需要進行規范化的統一。
2.4數據聚合和定制
聚合階段主要是利用數據變化重新對各層次聚合視圖進行增量計算。它強調把分散在不同地方關于同一對象的不同說法合并起來,得到此對象更為完整的信息。數據聚合通常是以業務報表的形式出現的,它能改變信息中的粒度級別,如以每天為基礎存儲原始日志數據;數據集市卻只包括每周的值。因此數據聚合能減少記錄的數量。
數據定制指的是根據用戶的需求形成不同的立方體,并向用戶展示不同的側面。定制階段主要是將這些經過概括的日志數據裝載到數據集市中。對于不同的數據集市來說,數據定制技術是不同的,關鍵在于決策者想要看到的更新后的日志信息的詳盡程度。
在數據倉庫中更新工作流日志的過程是一個動態和演變的復雜過程,它由一系列異步和并發活動構成,并且這些活動必須是可監控的。在數據倉庫中更新日志信息后,就可以進行各種復雜的聯機分析處理了。通過分析可以抽取日志信息建立過程模型,以進行工作流挖掘,也可以根據分析的結果可以用來評估工作流管理系統的性能和效率,監測控制工作流運行,作為工作流狀態轉移的條件。
3日志更新邏輯案例
在數據更新過程期間,對數據變化的傳播是通過一系列獨立的活動來完成的。這些活動包含對存儲在ODS和CDW中視圖的維護。視圖維護階段是指由于給定的數據源的改變而引起存儲在ODS和CDW中的一系列視圖的改變,這些改變導致視圖的更新。在數據庫界,對數據視圖維護的問題已經進行了大量的研究,本文不再詳述。
為了闡明工作流日志的更新策略,舉一個例子,它邏輯展現了數據倉庫更新過程。將三個城市的電信單據日志存入數據倉庫中,每個城市的電信單據分別用S1,S2,S3三個關系表示。每個關系均有相同的模式定義(#PC,date,duration,cost)。聚合視圖V的模式為(avgduration,avgcost,city)。視圖V提取最近六個月和上述三個關系相關的三個城市中每一個電話的平均通話時間和花費。在數據準備期間,包含在每個數據源中的最近六個月的數據被清洗;然后在數據集成階段,通過聯合每個數據源的數據和產生附加的屬性(city)來建造基本關系R,R的模式為(date,duration,cost,city);最后,通過聚合計算產生視圖,如圖2所示。
當更新活動是一個長期活動或數據倉庫管理員想要在活動間加入校驗過程時,臨時事件或活動終止可以被用來對整個更新過程進行同步控制。通常,質量要求也可施加一定的同步策略。如果用戶想要最新的日志數據,這意味著數據源的每一次更新均應當盡可能地反映到視圖中。因此,這就決定了同步的策略:數據源的每一次改變均觸發抽取,當語義相關時觸發集成,在每個數據源提交后,轉換活動立即在集成活動后將相應變化導入到視圖中,并且在數據集市中定制用戶視圖。
4結束語
本文引入了數據倉庫技術和OLAP (online analytical processing) 工具,通過一系列的操作對工作流日志數據進行了更新處理,通過一個簡單的例子分析了工作流日志在數據倉庫中的更新過程。在數據倉庫中的信息更新,使日志信息得到有效的整理,為以后的工作流挖掘技術應用,節省了大量的人力物力。如果工作流日志長期存放在數據倉庫中,還有利于對其發展趨勢作長線分析。
參考文獻:
[1]AALSTW M P van der,DONGEN B F van,HERBST J, et al.Workflow mining: a survey of issues and approaches[J].Data and Knowledge Engineering,2003,47(2):237-267.
[2]AALSTW M P van der,WEIJTERS A J M M. Process mining: a research agenda[J]. Computers in Industry,2004,53:231-244.
[3]DANESHPOUR N,BARFOROUSH A A.The new approach toward refreshing data warehouse[C]//International Conference on Computational Intelligence.2004.
[4]INMON W H. 數據倉庫(Building the Data Warehouse)[M].王志海,譯.北京:機械工業出版社,2003:21-23.
[5]劉中蔚, 陳紅.用基于元數據庫的工作流調度數據倉庫的更新[J]. 計算機應用研究, 2006,23(3):178180.
[6]BONIFATI A N,CASATI F,DAYAL U.Warehousing workflow data:challenges and opportunities[J].VLDB Journal,2001(1): 649-652.
[7]VAVOURAS A, DITTRICH K R, SCHOLL M. A metadatadriven approach for data warehouse refreshment[D].Zürich:University of Zürich, 2002.
[8]EDER J, OLIVOTTO G E, GRUBER W. A data warehouse for workflow logs[C]//Proc of the 1st International Conference on Engineering and Deployment of Cooperative Information Systems.2002.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”