資料倉儲能為你當前資料庫體系的不足做些什麼? (轉)

gugu99發表於2008-03-20
資料倉儲能為你當前資料庫體系的不足做些什麼? (轉)[@more@]  資料倉儲可以提供對企業資料的便利訪問和強大的分析工具,用於生成有意義的資訊。資料倉儲的目標,是從企業資料中獲得有價值的資訊,提供可以增加獲利的情報,提高運作,指導商業決策,和發掘企業的競爭優勢。這些目標的實現,一定會對業務產生積極的影響。現如今,資料倉儲是在客戶/領域的一個熱門的話題。對資料倉儲的瞭解,對於客戶/伺服器開發人員來說,一定極有價值。

  本文介紹了資料倉儲,並提供了許多關於如何實現其目標的技巧,包括關於資料收集、決策支援、聯機分析處理和資料倉儲等內容。我為每一概念下定義,並介紹了資料倉儲的處理機制,還討論了用於建立和維護資料倉儲的資料的定義。

  今天的客戶/伺服器

  早期的客戶-伺服器系統中的工作,主要是開發聯機事務處理(OLTP)應用。使業務操作自動化的應用,如定貨記錄、清單或預定系統,成為近期開發的重點。大部分的這一類應用是較簡單的兩層應用結構,其實質就是前端的GUI應用訪問後端的伺服器。事務邏輯經常由客戶工作站上的程式碼實現,也可以是伺服器上的過程。

  今天,大多數公司已完成了大大小小的客戶-伺服器工程的建立,或至少開始了最初步的系統建設。現在,將事務邏輯與GUI和資料來源分離的三層系統,將成為未來開發的重點。商業上經常需要三層系統,以滿足更大型且複雜的應用,涉及成千的客戶機和數十個伺服器。OLTP應用要求響應時間短、準確無誤及100%的可用性和實時性。這些應用實現的基本商業操作,是業務高效運轉所必須的。

  資料收集和訪問

  大多數機構和公司都積累了大量資料,並已很好地進行了資料收集的自動化工作,執行良好(在積累及方面)。資料儲存主要是在關係型資料庫中,在這些系統中,大量的資料和資料模型,都是反映公司以往的措施和業績。今天,是資料訪問的主流語言,它面向集合,並提供了應用與資料庫間良好的互動性。事務由資料庫伺服器或事務處理(TP)監視器管理。較大型的應用,一般使用TP監視器,實現資料一致和高。大多數資料操作針對單條記錄或相關的資料集合。定義合理的關聯式資料庫操作,產生的結果是可預見的。RMS查詢的結果,一般是動態的綜合或計算。

  決策支援系統

  機構一旦擁有了完整的資料採集和,新的需要就產生了:怎樣使用好資料庫中有價值的資訊。在競爭日益激烈的商業市場上,至關重要的是分析這些資訊並生成報表,它們可以輔助商業決策。不久,你對自己經營情況的瞭解,就會轉化為可以量化的經營優勢或執行改善。

  與OLTP系統相比,決策支援系統(DSS)主要是需要對資料庫作只讀訪問,用於建立報表和查詢結果,輔助制定重要的商業決策。這些系統不要求迅速響應,可以按自己的節奏運動,也許只是偶爾使用一次;並希望能將DSS的資訊匯出,供其它桌面工具使用。

  DSS在看待企業資料時,使用根本不同的方法,這一不同十分重要,資料被看作是歷史記錄,分析的最初步驟需要進行分組和綜合。經常需要對資料的子集(按月、年、地區、產品)進行數學運算,而後用圖表等顯示方式,可進一步解釋資料的含義。

  DSS一般直接使用DSS工具,並需要資料模型作嚮導。DSS通常在開始階段使用的資料庫與OLTP的一樣,但經常需要為新的功能或任務,建立總結表和檢視,提供所需資訊。

  在有些情況下,需要使用複製來將執行系統中的資料移到DSS資料庫中,在轉移期間需要凍結(定格)生產資料,避免併發操作時出現問題。這對於DSS使用者來說沒有什麼損失,因為他們並不需要的對資料的增刪插改之類的事務處理,而只關心長期的表現、趨勢、總結和摘要。這些工作要求具有分析功能,多數情況下還包括二次開發,用來訪問不同地點的資料,這些資料可能具有不同格式,或者不能按某種方法直接得到。但這通常不只是對方案的修修補補。對於資料還需要統一格式,使查詢更方便、靈活。

  針對這類分析系統,你需要經常考慮的是提高效能和提供集中的功能。報表將處理大量的記錄集合,只在極少情況下是個別記錄。訪問路徑的可預見性比OLTP系統稍差,但仍可以預先建立系統中的大部分已知或重複資料訪問的路徑。

  複製

  分散式系統的增多、對高效能的要求、DSS系統的特殊性質等等,都促使複製的迅速發展。複製快速成為解決大型資料系統的效能、併發性、可用性和容量限制的基本技術。其缺點是,它不是真實資料,只是資訊的複製品。因此,它也即將過時(但對於使用複製機制的雙路系統,可以滿意地完成雙向變化傳送)。

  聯機分析處理

  聯機分析處理(OLAP)將DSS帶入更高的層次。OLAP是一個分析處理技術,它從企業的資料集合中收集資訊,並運用了數學運算和資料處理技術。這些資訊,可以靈活、互動式地提供統計、趨勢分析和預測情況。OLAP使用者希望OLAP(如企業資料系統)在保持原有優勢,如快速訪問、併發性和一致性的同時,還能具有DSS分析的強大功能,目標是怎樣快速有效地獲得企業資料。雖然OLAP很可能與OLTP處理共享資料來源,但OLAP在本質上與OLTP和DSS系統都不相同。你努力建立一個資料倉儲,並按照需求,從中獲取和選擇(或挖掘)資料。也就是說,資料必須是可訪問的,按照靈活的組織,並且可以修改(替換)。這些方面不是偶然出現的,它要求全企業人員的大量努力和合作。

  對大型公司來講,正在進行的最複雜的工作,可能要算是對資料倉儲體系的設計和應用了。使用者們新的關注焦點是:他們想顯示系統中的資訊,而不僅僅是訪問資料。雖然有些人可能仍舊把資料倉儲看作與執行資料庫基本相同,但資料倉儲在設計過程中,一直貫穿著訪問、分析和報表的思想。因此,資料倉儲在使用者檢索時,比DSS系統更易於。這樣,將產品與倉庫中的資料分開。但這些只能到此為止,它必須保持靈活性。這一類資訊,可透過下述工具得到:Business s公司的Business Objects Brio Technology的BrioQuery和Cognos的PowerPlay,等等;此外,的S-Designer 6.0將具備資料倉儲設計的功能。

  多維資料庫

  OLAP系統必須是靈活的、能按非預定的方式訪問資料,還必須互動地建立報表。問題的關鍵是如何表達以下內容:複雜資料查詢、尋找(發掘)趨勢、總結、評價和關係。"假如"查詢,就象在使用電子表格軟體時常常見到的,是一項基本技術。其它如"為什麼"或"怎樣"等,也同等重要。這些查詢通常與另一些變數一同使用,用於限定資訊的上下文。查詢的例子,可以與產品型別、時間段或地點有關。

  由於使用了這些分析變數,就給資料帶來了多維性。在分析時,這些變數的不同取值,會產生出相關的不同對比資訊。預測也是處理的一部分。在分析生成之後,使用者可以向下挖掘,檢視更為詳細的資訊,它們是整體的子集,向上移動,則可以顯示分析的上一個層次。

  資料倉儲

  資料倉儲是由一個或多個應用,和一個用於分析和報表的資料庫組成的系統。此資料庫從其它資料來源中得到資料。通常先有一個對資料庫資料的載入工作,然後定期地進行資料快照或逐步。資料倉儲建立的資料,面向主題,完全一致,將為重要的商業決策提供所需資訊。

  資料倉儲伺服器提供了對其中資料的訪問。用於分析和生成報表的應用,可以定製編寫,也可以購買(我推薦使用CognImpromptu和PowerPlay)。資料收集和積累工具也有現成產品,且這一市場將不斷擴充套件。

  構築資料倉儲

  構築資料倉儲所需的開發小組成員,要求既有技術知識又有商業知識,這樣就可以同時具有自上而下和自下而上的全面瞭解。資料倉儲涉及到的方面有:資料集(包括歷史)、設計(資料模型)、文件和資料庫維護。資料倉儲還要求定義系統的後設資料(在下節中講述),以及考慮資料分佈(開發應用及購買工具。)

  如果有多個資料來源,那麼資料集合的維護工作將會極為困難。每個資料來源,都可能有不同的格式、平臺、標準、含義、歷史影響和標誌。在不同資料來源,甚至在一個源中,也可能出現同一的多個例項。資料經常是不完整的,或是經過修補的。你必須瞭解並記錄下所有細節。建立資料倉儲的努力,通常會是一個持續數月的大工程,甚至可能幾年。當你的目標還不十分清楚的時候,你最好先猜測一個方案,按照它建立模型資料倉儲,然後在這個模型上執行各種工具,以檢查最初的要求是否正確。對模型的測試,應既有一般情況,又有特殊情況,透過這一步驟,你就可以發現各個工作都是什麼,以及在企業中它們是如何起作用的。你要訪查使用者,特別是那些真正瞭解資料及資料來源的人。最終的系統,可能要求建立報表、某些特殊工具,甚至可能開發新的應用。但在任何情況下,你的職責都是為使用者提供資料和工具。

  從本質上講,對資料倉儲的訪問,應主要是隻讀操作,有時也可能將某些分析存放在資料倉儲中。它必須按時更新,以反應使用者的要求及資料來源資料的變化。因此,出現了新的維護問題:檢查、重新生成和刪除分析記錄。生產資料需要在資料倉儲中不斷更新,而倉庫中的資料,也需要向業務方面或部門複製。

  首先,你必須定義最初資料倉儲系統的範圍,從理解得最好的部分開始,一定要有一個分析人員作助手。許多分析人員在部門資料庫上發展資料倉儲。這些資料庫已被透徹理解,重新建立模型的時機也已成熟。

  效能是一個大問題。累積表、過去分析的結果集合等,都會增加維護工作。因此,你應測試各種極端的情況。

  從儘可能多的角度,重新審視你的計劃。對於資料倉儲的設計問題,不是一個人或一個小組就能回答的。

  後設資料:關於資料的資料

  構築資料倉儲過程中的最重要步驟之一,就是定義和建立後設資料(Metadata)。後設資料有三個級別:資料來源、資料倉儲和使用者(你還可以定義一個商業檢視)。後設資料能夠提供一個目錄,列出資料倉儲中有什麼,以及資料倉儲輸入資料的資料來源。我的觀點是:沒有在系統中記載文件的東西,它(實際上)就不存在。使用者後設資料可以包含、總結、和其它針對訪問的物件。你應該仔細記載資料來源、資料倉儲結構和使用者檢視,如報表的格式,並用這些文件,去核定資料,從中得到資訊的正確性。如果必要的話,還可以利用文件,實現跟蹤某一資料項並檢查其有效性的工作。

  後設資料在資料倉儲的建立和維護時,都可以發揮作用。在定義後設資料時,便先完成最瞭解的部分。最終,你將為資料倉儲裡的每一物件型別定義後設資料。後設資料細化了資料結構及資料間的關係(從資料庫檢視,或是事務規則和資料流描述的結果)。你還應該記載別名、程式碼表、預設值、完成途徑、數值單位(美元或英鎊)、演算法和及它相關資訊。

  在後設資料(用於說明倉庫中資料的)中,詳細表述你對商業規則的理解。例如,你可以分析並記載系統中物件和資料元素的性存取訪問。在此過程中,你必須確定最終物件(類)的表達,和資料倉儲中衍生例項的過程(最終資料型別、資料轉換、資料來源和傳輸的預期時效)。關於積累資料,需要定義的細節有:"哪些域是絕對需要的?"和"如不能獲得資料,嘗試另一個處理過程不同的資料來源。"

  所有進入資料庫的資料,必須在後設資料中有所表述;甚至後設資料也有針對自己的後設資料。這些文件應描述你的系統中後設資料如何表達。

  後設資料伺服器

  象所有複雜系統一樣,後設資料也會變化;但所幸的是,這一變化是漸進的。當業務或過程發生變化時,你必須將變化反應到後設資料中。需要經常進行版本控制,這樣,不同時刻生成的資料,就可以有不同的格式。我在許多大型系統的工作過程中,都曾開發過後設資料伺服器,用於提供對可能在結構、格式、或版本上發生改變的資料的訪問。有了後設資料伺服器,你可以將資料與其後設資料一道,作為一特定查詢的結果,提供給使用者。這樣,如果有了後設資料,就可以建立一個能顯示任何格式資料的顯示系統。同時,後設資料伺服器提供的資訊,還可以幫助使用者在系統中向下挖掘。

  更新資料

  你必須為資料倉儲制定裝載和重新整理的計劃。在這一過程中,後設資料起關鍵作用。隨著制定工作的進展,資料模型逐漸發展。新的模型,也必須用將要使用的內容進行測試。根據可更新的程度,可以討論統一規格或是不統一規格。為了給出資料附加的含義,重要的是在系統中發現、尋找關係。

  你必須考慮資料庫中每一資料項的時間和歷史問題。資料已存在了多長時間?你需要為哪些資料項保留其變化的歷史記錄?是需要版本控制系統嗎?你必須考慮變化,因為資料庫會改變。你必須允許修改資料來源、使用者需要和資料模型的變化。

  文件與培訓

  一套好的文件非常重要,前端工具的使用培訓也很重要。關鍵是要避免直接與使用者打交道。向他們提供了工具,他們就可以自己完成一些工作。工具在涉及資料時,應在一個可以理解的層次上。使用者可不需知道資料庫結構,但只需知道其表象,並應能透過這種方式訪問系統。這一觀點,應該且能夠在需求分析階段,得到廣泛的體現。

  可能的方案

  運用資料倉儲最可能的方案,是使用一個大型主機資料庫系統,提供功能、控制、安全、效能和一致性。分散式資料庫系統也很可行,Sybase 是一個非常強大的分散式系統,使用Sybase,資料來源和資料的實際位置是透明的,並可以按需要從一處移到另一處;Sybase IQ是專門為決策支援系統而最佳化的互動式查詢產品。

  如能形成一致意見,轉型為一個(或兩個)標準DBMS,並限定使用的平臺、和,就可有助於簡化問題。更好的方法,是選擇一個產品套件,能同時提供DBMS、資料倉儲、通訊和查詢工具。用這種緊密的方案,整合可能很困難,有時甚至是代價高昂的。如選擇這種方案,可以選用、Sybase、IBM、Information Builders和Hewlett-Packard。

  使用TP監視器的異構系統,是另一種較複雜的選擇。大型客戶/伺服器應用,可能需要TP監視器控制資料操作。TP監視器,如Tuxedo和Encina,都有和大量應用工具的介面。在將來,TP監視器有可能嵌入開發或作業系統。事物是TP監視器處理的工作單元。在大型的分佈系統中,必須有一些控制器,承擔對系統中可能相互影響的事件的同步和處理工作。

  還有可能出現更復雜的要求。你將看到:圖形、Inte和多媒體,正變得日益重要。這些會加大需求的複雜度,並大大增加資料傳輸量。

  OLAP資料庫幾乎總是非常龐大的,因此效能很成問題。解決方法有:分隔資料、分佈資料、過濾資料,也可能建立並維持以存放常用資訊。如果資料倉儲主要用於DSS,那麼你就可以在很大程度上,將複製工作交給一個客戶/伺服器系統完成。

  開發OLAP應用

  開發OLAP應用可能十分困難,其編寫方式應是物件導向的。OLAP中的許多處理非常相似,因而可以為它們開發物件類。例如,在大多數OLAP應用中,資料訪問、資料儲存、分析()、和報表生成的用法,都是基本一致的。使用物件導向技術,可以提高可重用性。OLAP應用還應是可擴充套件的,並且應設計為可擴充套件的系統。

  系統應使用並管理後設資料和資料字典。使用經解釋的語言方案,可以在改動後無需重新編譯。OLAP應用必須提供一套完整的函式,並要求使用自己的程式語言。

  總結

  在今天的大多數大型公司裡,電子資料集已經是現成的。因此,人們認識到,能夠(且應該)從資料集中獲得有價值的資訊,用於商業決策支援。資料倉儲是一種結構和系統,可以從資料中獲得資訊。對於資訊專家,資料倉儲的應用和維護,將會很快成為工作的重要部分。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1001221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章