趙運紅
數據挖掘技術的核心模塊已經歷了幾年的發展,包括機器學習、人工智能、數理統計。現在,廣泛的數據集成結合具有高性能的關系數據庫引擎,加上這些成熟的技術,使數據挖掘技術進入實用階段變得可能。如何建立數據倉庫,并將其應用到實踐是一個值得探討的問題。
數據倉庫的概念最早是由美國著名學者W.H.Inmon提出的。在作為標準參考書《Building the Data Warehouse》中,他給數據倉庫下的定義是:“Subject-oriented,integrated,time - variant,nonvolatile collection of data to support management decision - making process”。[1]主題可以理解為數據倉庫研究的對象,比如客戶、經銷商、商品和銷售部門等,數據模型和對數據的分析是所要關注的對象。集成是為了確保命名約定、編碼結構和屬性度量的一致性。主要的技術有數據清理和數據集成等。要建立數據倉庫,必須對數據進行加工和集成,這是在數據進入數據倉庫之前的關鍵步驟,包括將初始數據中互相抵觸的部分統一起來,將初始數據在結構上加以改變,以符合數據倉庫中對象面向主題的要求。區別于維護數據庫產生的日志數據,數據倉庫中數據的特征是反映歷史,對于進入數據倉庫中的數據很少甚至根本不得修改,這是數據倉庫穩定性的體現。數據倉庫是不同時間的數據集合,要滿足進行決策分析的需要,數據倉庫中的數據就要有保存時限,此外,還要標明該數據的歷史時期。
數據處理密集型的主要傳統行業如保險、金融、電信等首先應用數據倉庫。在一九九六至一九九七年國外許多大型的數據倉庫開始建立。這樣一來,哪些行業最需要建立數據倉庫?哪些行業最有可能建立數據倉庫?據研究統計,如果這個行業滿足了下面2個基本條件:數據倉庫存在的客觀條件和提供建立數據倉庫外在的動力。即該行業聯機事務處理系統較為成熟;該行業面臨市場競爭的壓力較大。
1.不同數據類型的組織方式。
(1)一般的積累文件:以一天為單位,加工和優化從數據庫中汲取的數據,不斷堆積,分類存儲最終形成的一類文件。
(2)快照文件:這一類文件與一般的積累文件非常相似,唯一的區別就是本類文件是相差一段周期的DB的快照,比如每相隔1周或者數月作一次。
(3)輪轉綜合文件:數據存儲單位按時間分為天、星期、月和年等四個級別。首先,每天的數據都一一記錄在日數據集中;以星期為單位7天以后,將數據進行分析歸類編輯記錄在稱為周數據的周數據集中;第2個7天,每一天的日數據集又可以遞歸再次調用,以便用來存儲接下來的數據。這樣一來,如果周數據集的數據量堆積到4.4個(亦即一個月)后,又一次編輯分析歸類記錄到稱為月數據的數據集中……。從以上形成過程看,輪轉綜合文件的組織結構是非常清晰的,數據量上面增加的并不太大。當然,在數據細節方面損失較大,時間越長,虧損越大。
(4)連續文件:兩個或多個連續的簡化直接文件可以生成一個新的文件,叫做連續文件。事實上,連續文件仍然還可以和新的簡化直接文件進行歸并再次生成新的連續文件。
2.數據的更新和追加。
數據倉庫中的數據如果不進行更新或者沒有新的數據追加,對數據挖掘來說是沒有意義的。追加數據涉及到很多技術,一是數據源的問題,二是新舊數據區分的問題。數據源與聯機事務處理的數據庫有很大關系。區分數據的冗余技術主要有四種:
(1)添加更新時間標志的方法:新加入的數據根據時間可分為兩類:含有時標的和沒有的,對于前者在更新到數據庫中的時候,分析存儲組織數據時,同時將數據的更新時標進行更新。但是,對于沒有時標的就不好辦了,所以這種方法并不是總湊效。
(2)Δ(Delta)文件的方法:在數據挖掘的應用中會產生一種文件,它的作用是將應用更改的全部數據記錄下來這個文件就是Δ(Delta)文件。使用Δ文件不用掃描整個數據庫中的所有數據,所以在時間開銷上要小很多,因而它的效率尤其高,不過,由于生成Δ文件的方法并不是非常普遍,所以相同的問題依然會出現。類似地,還有一種理論上可行的更改應用代碼的技術,它的策略是在新數據生成的過程同時將應用代碼自動記錄下來。然而相關的數量非常龐大,而且修改代碼又相當繁復,因此說這是一種理論可行現實不可操作的方法。
(3)快照文件比較的方法:這種方法的關鍵步驟是快照比較區分數據。具體來講,在數據抽取過程中進行快照操作,生成前后兩次快照,而后比較它們的差異和相同點,最后對數據進行確認。由于在資源和性能上的影響這種方法實際意義沒有多大。
(4)日志文件:這大概是最可取的技術了,原因在于它是數據庫的內在機制,對聯機事務處理系統的性能是不會有影響的。而且,它還兼具Δ文件的良好性質,提取數據同樣不用掃描整個數據庫而只需讀取局部日志文件即可。不過,原來日志文件包含的數據對于數據倉庫而言也許有較多冗余,因為它的格式是依據數據庫系統的要求來設定的。例如,如果一個記錄經過重復多次的更新,日志文件會詳細地記錄每次的更新內容,但事實上這些又都是重復冗余的;對于數據庫來說,這樣的操作是沒有必要的,也是對資源和性能的一種浪費。不過相比而言,日志文件還是最為可行的一種選擇策略。
3.數據的提取。
數據進入倉庫之前的工作是數據的抽取。數據倉庫的數據抽取主要的技術有復制(replication)、互連(interconnection)、轉換(conversion)、增量(incremental)、監控(monitoring)和調度(scheduling)等六個方面。數據倉庫中的數據來源主要有OLTP、數據倉庫以外的數據源和脫機數據介質存儲的數據等,從以上數據源中應用數據抽取技術使數據倉庫形成一個相對獨立的數據環境。由于聯機事務處理系統不需要與數據倉庫的數據保持實時同步,所以數據抽取或定時進行或適時進行都是可取的,時間要求并不嚴格。但多個抽取操作的時間有效性則至關重要,例如抽取操作之間的順序、抽取操作執行的時間長短和抽取操作成功與失敗等等對數據倉庫中的信息都會產生很大的影響。
數據抽取的技術日臻完善,基本都能夠滿足市場需求。對數據的抽取用戶唯一需要做的事情是確立數據源和數據目標之間的對應關系,剩下的抽取工作像代碼的生成系統會自動完成,極為方便。可是這些技術在整體集成度的融合上還是有缺陷的。各抽取技術之間的關系是松散的,有些技術之間還要通過有關程序進行協調。據調查統計,一些提供數據抽取工具和業務的供應商僅支持有限的數據類型,這部分與實際應用密切相關的工作有時候還不得不進行數據轉換,甚至要加入嵌入式用戶編程。正是這樣的原因,數據抽取工具在實際實施過程中應用的并不廣泛。而數據抽取過程能否因為具體工具的使用而投入有效的管理、調度和維護等則反而顯得更為重要。
4.數據的管理和存儲。
數據倉庫和其他的傳統數據庫在組織方式與管理方式這兩個特性上有很大區別。在一定程度上決定了它對外部數據表現形式。即建立數據倉庫核心決定采用什么產品和技術,就得分析相應的數據倉庫要具有什么樣的技術手段。這充分證明了數據倉庫中數據的管理和存儲才是真正的關鍵部分是實質所在。
首先應用數據分割技術實現數據倉庫對大量數據的存儲和管理。比起傳統數據庫對事務處理,數據倉庫中的數據量要大很多倍,而且具有很強的時間積累效應。對于數據處理能力的考慮,關系數據庫系統采用的技術,以及應用相關技術開發的產品一直處于領跑的位置。在數據管理和數據存儲技術上其它數據管理系統是望塵莫及的。目前數據分割技術已經在很多關系數據庫系統中應用,這種應用的思想是分散數據庫表,分別用不同的物理設備進行存儲強化系統對數據量的管理能力。
其次數據倉庫的并行處理能力提高了管理存儲數據的效率。比較數據的處理方式很容易發現,容量短小訪問密集,這是傳統數據庫用戶訪問數據的特征;數據倉庫對數據的處理是多任務多處理機的,為滿足大數據量的要求,必須均衡分割用戶的請求操作,使它們力求合理這是關鍵所在。這就是高效的并發操作。數據量龐大訪問頻次低,這種數據倉庫用戶的操作使得單個單次查詢變得紛繁。這樣以來工作方式就有了很大的不同。所以,在數據倉庫中并行處理技術比以往顯得更為重要。
現在對數據倉庫的TPC-D基準測試中,增加了一個稱為“系統功力”(QPPD)的單用戶環境的測試。通過觀察QPPD的值的影響來判斷系統的并行處理能力的強弱。目前,在并行處理方面像基于數據分割的并行、對查詢語句的分解并行關系數據庫系統都能做到,而對于支持多環境多處理機能力上也沒有什么影響。
最后要分析數據倉庫針對決策支持查詢的優化問題。數據庫系統的索引機制(indexing mechanism)、數據排序(data sorting)、連接策略(connection policy)、查詢優化器(the query optimizer)和采樣(sampling)等諸多技術部分是決策支持優化研究的重要內容。普通關系數據庫對于sex、age和areas等具有大量重復值的field差不多沒有效果,這是因為采用B-tree類的索引的結果。采用二進制位表示字段狀態,變查詢過程為篩選過程,引入位圖索引機制,使單個計算機的基本操作具有可篩選多條記錄的功能,這就是擴充的關系數據庫。數據倉庫中的數據量在數據表的分布是極不對稱的,這容易導致普通查詢優化器計算出的最佳查詢路徑往往不是最優的。所以,根據索引的使用特性,改進關系數據庫的面向決策支持查詢優化,增加多重索引掃描的能力非常必要。
1.堅持原則。
對原始數據,必須堅持的原則是不局限在業務系統的現狀。數據倉庫本身獨立于業務系統之外,要以管理層分析決策的需求為實施的主線和出發點,在設計中預留空間給不確定數據是可行的。采用各種途徑加載數據,為收集數據設計專門的輸入接口,比如客戶個人資料的獲取;在分析中標注單個數據的有效時間同時放寬數據的時效性;規范業務系統標識低質量的數據。這些都是處理數據的完整性和質量問題可以采取的有效方式。
2.抽取方式。
數據的抽取要堅持快捷、簡便、易維護的原則。不要浪費時間在討論單一抽取工具的選型上,因為為了適應原始數據的多樣性,數據倉庫系統常常同時存在很多種數據抽取方式。
3.數據展現。
數據倉庫的使用,使企業管理人員以豐富而動態的聯機分析和查詢了解企業和市場的動態,逐漸脫離了對固定報表等的依賴。這是數據倉庫在聯機事務處理方面的優勢,而在固定格式的報表重現上,數據倉庫的分析工具有時還真不如專門定制的程序。
4.實施范圍。
數據倉庫的價值在于使用,解決好與選擇具體產品相關的重要問題,如明確系統的使用范疇和客戶的應用模式等,制訂明確的計劃和時間表,分階段加入新的產品和技術,規避無休止的選型和測試等。這都是在定義實施計劃之前要統籌好的。
[1]W.H.Inmon.Building the Data Warehouse[M].New York:John Wiley&Sons,1996.
[2]吳澤雄.數據倉庫淺談[D].海南:海南省通信學會學術年會論文集,2005.
[3]徐銳.數據倉庫在商業銀行財務分析體系中的應用[D].財政部財政科學研究所,2010.
[4]王珊.數據倉庫技術與聯機分析處理[M].北京:科學出版社,1998.