提起數據倉庫,現在對很多人來說并不陌生,但大多數人并未系統地讀過數據倉庫的經典論著,更沒有經歷過成熟的數據倉庫項目,因此無論他們僅僅限于探討有關數據倉庫的話題,還是嘗試數據倉庫的項目,往往不解數據倉庫的真諦,嘗試的項目很可能是無疾而終,甚至連數據倉庫的基本概念都沒有真正理解。
數據倉庫是現在越來越熱的話題,但大多數人,無論是客戶還是開發商,往往在不明確、不成熟的數據倉庫需求與不清晰、不深刻的數據倉庫知識間徘徊。一方面,很多客戶積累了大量的業務數據,總想從中得到些什么,甚至有了一些具體的想法,另一方面,一些軟件開發商在潮流的推動下,找來一些有關數據倉庫的書,也學用一些有關數據倉庫的軟件工具,在數據倉庫項目上躍躍欲試。學費總是要花的,數據倉庫的項目也是這樣。但與一些IT技術項目不同的是,這次學費是花了,但怎么不見迅速長進?近些年, 我們在國內遇到不少這樣的事,客戶與開發商開始是熱情高漲,雙方不僅投入了不菲的金錢和人力,但結果與期望相差甚遠。因此,有些人甚至開始懷疑數據倉庫的技術的可行性及有效性了。確實,從樸素意義上講,做好哪一件也不容易,往往需要對真理的不斷追求與對實踐的不斷嘗試,做好數據倉庫是在啃一塊硬骨頭。我們的體會是,首先以源頭開始,扎扎實實地走每一步。急功近利的做法,跨越式地發展,尤其在數據倉庫方面是終究要跌跟頭的,因為這些想法與做法不符合客觀事物發展的規律!科學的數據倉庫技術發展的步驟是,首先學習數據倉庫的經典知識,然后盡可能地學習數據倉庫項目的成熟的技術和經驗,甚至不惜到其發源地和技術領先的國家去求經驗,然后不斷地自我實踐,不斷地總結與提高。
我們首先來看看大家在數據倉庫概念上有哪些誤區吧。
1. 數據倉庫是個非常大的數據庫。
很多人望文生義,數據既然到了倉庫的量級,那肯定是非常大的數據。不錯,數據倉庫往往是個海量的數據集,但它不是必要條件。在數據倉庫經典定義中,也沒有數據倉庫是大數據的概念。實際上,很多好的數據倉庫項目,從當今的社會信息規模來看,并不是數據量很大,但它們確實給業務分析帶來了很好的效益。因此評價一個數據倉庫,從來沒有用大小來衡量的。
2. 數據倉庫是將所有的業務數據存在一起的。
數據倉庫的一個目標是將分散的業務整合在一起的,但它往往是有目的地按分析需去實施的,并不是將全部的業務數據統統都集成在一起,更不是像有些人完全地將所有的業務數據集中地存儲在一起的,在這里既沒有有效地數據整合,也沒有按分析需要去集成數據,只是一個集中式的龐大數據堆。
3. 數據倉庫是一次性的工程
我們曾經見過這樣一個單位,他們驕傲地告訴我,他們做一個大的數據倉庫,這項工程已經完成了,他們會在需要的時候,到倉庫中分析一些數據。開始我們產生了一個疑問,這些需求不是日常的和周期性的嗎?后來我們才知道,他們只是將歷史的數據截止到每一個時間,弄到了一個專用的數據庫中了,而且數據流就到此結束了,不再有增量數據規律或不規律地流進數據倉庫中了。我們說這不是真正的數據倉庫。
其次我們再從數據倉庫項目上看看有哪些誤解。
1. 數據模型為什么這么簡單
由于許多經歷過IT項目的人,往往是技術不錯的人,對交互型的數據操作系統的概念太深,往往用OLTP的思維方式去看待數據倉庫。我們曾經為一個單位設計數據倉庫數據模型,他們的IT主管看了很吃驚,“我們這么復雜的業務,分析起來當然也很復雜,你們設計的數據模型怎么這么簡單?”我們不得不解釋原因,給他們講,數據倉庫的目的是什么,什么叫數據倉庫的Star schema(星型轉換),Snowflake schema(雪花模式)。他們還是似懂非懂。其實,相對于復雜的面向業務和流程的交互型系統來說,數據倉庫則主要面向分析,將復雜數據模型轉變簡單結構的多維數據模型。
2. 為什么占用這么多的資源存儲,太浪費存儲空間了。
我們遇到這樣一個故事,一位愛找錯的IT組長報告他的上司,發現了我們將看似相同的數據存儲在多個不同的表中,從而浪費了他們的很多寶貴的存儲空間,一時間他們的經理反問我們,為什么犯這樣低級的錯誤。我們只得解釋,數據倉庫是面向分析,通常是以存儲空間為代價來換取查詢上的性能,而是這些數據雖然存在不同的表中,但它們是不同的,它們是以不同的數據模型形式和不同的數據顆粒度存在的,這樣查詢不同量級的數據,節省了大量的計算時間,可以獲得很好的查詢性能。于是他們無語,面部露出驚奇的表情。
經典的數據倉庫
好了,現在我們開始追溯經典,看看經典的數據倉庫是什么樣子的。
按照經典定義,數據倉庫是一個基于歷史數據的,邏輯數據整合的,不斷增長的,滿足特定目標的數據集合。什么是成熟的數據倉庫和數據倉庫項目?成熟表現在哪些方面?我們說,首先數據倉庫項目開發商要成熟,其次數據倉庫項目的客戶要成熟,最后是開發數據倉庫項目的時機要成熟。
1. 數據倉庫項目開發商成熟
1.1數據倉庫項目開發商對數據倉庫的核心知識和理論認識要成熟。
這時開展數據倉庫項目最基本的要求了。如果開發商對數據倉庫的經典概念搞不透徹,那將是太可怕了。首先大家要從數據倉庫的論著開始讀起,如美國的Kimballl的數據倉庫,Innon的數據倉庫等等。讀了還不行,還要寫作業,有條件的到美國或加拿大來一趟,多看看成功的數據倉庫項目,找找資深人士取取經。同時也不斷博覽群書,看看不同的書的區別是什么,哪些人講的有道理。總而言之,要像唐僧那樣去追求真理。
1.2數據倉庫項目開發商運用的數據倉庫的技術手段要成熟
這是比較難了。初學者就是要從數據倉庫論著的第一節開始實踐了。這里談的主要是技術層面。開發數據倉庫項目有很多專用工具,但我們不能拘泥于某些工具。我們認為工具不是最重要的,人才才是最重要的。哪怕有再多的不同的專用工具,只要我們合理安排數據倉庫所需的軟硬件,只需精通某一個或少數的專用工具,都可以做好數據倉庫項目,因此大家不要過多的把精力投入到不同的工具和技術的學習中,而且將經典的理論與實際情況結合起來,將理論轉化到可行的實踐技術中。
1.3數據倉庫項目開發商需要有成熟的數據倉庫項目經驗
這里談得主要是如何成功地將數據倉庫技術應用于大量不同的實際項目中,這一方面需要開發商要對有關行業的業務和相關專業的概念有深刻的理解,還要運用適當的技術進行設計、開發。拿來主義是個不錯的方案,不妨到有成熟數據倉庫項目經驗的國內、外單位去學習,或將這些專家請來做顧問。
1.4數據倉庫項目開發商對客戶的培訓與教育要有成熟的方法
對于大多數客戶來說,數據倉庫項目是個新鮮事。對剛要吃螃蟹的人要做心理輔導和知識輔導。數據倉庫開發商要給客戶作必要的數據倉庫知識培訓,當然是講者自己首先要將數據倉庫知識搞通。我們曾經看過這樣一個項目,開發商與客戶對他們的項目還均較滿意,但我們發現那其實不是一個真正定義上的數據倉庫項目。
2. 數據倉庫項目的客戶要成熟
2.1數據倉庫項目的客戶對數據倉庫的認識與知識要成熟
首先客戶對數據倉庫的基本概念和知識要有一定了解,最好客戶派出精干的信息人員和專業人員搞一個數據倉庫短期學習,再到有成功案例的單位重點地參觀考察一下,然后將有關流程向領導講明白,因為領導認識的層次與水平將對今后的項目有很大的影響。
2.2數據倉庫項目的客戶對自己的需求要成熟
進一步講,客戶要下來好好分析,既然數據倉庫能做這些事,我們究竟需 要什么,我們最急需的是什么,我們的分期規劃是什么,我們哪些需求 是可操作性比較強的,哪些是有困難的,哪些是異想天開的。
2.3數據倉庫項目的客戶對項目投入、產出、風險的認識要成熟
數據倉庫項目往往是看起來容易做起來難。看似不太復雜的數據,整起來還真不容易。因此科學設計與規劃決定著項目的成敗。數據倉庫項目的初學客戶與初學開發商由于經驗不足,對數據倉庫理解不透,對困難準備不足,常常規劃了不合理的人力和開發應用周期,結果導致了種種問題,最終的結果就是表現各異地達不到預期結果與目標。需要的沒做到,因此對于初學們來說,首先將目標放低一些,多規劃一些分期投入,在以后的項目中再逐漸改進,良性循環。
3. 數據倉庫項目開發時機要成熟
3.1分析需求是否足夠的健全
正如之前的例子,如果是想分析時就要全部分析一下,這不算成熟的需求。我們說健全的需求應是指業務需求,通常是定期需要的,基本是業務依賴的。
3.2業務系統的數據能涵蓋分析需求嗎?
對于通常的數據倉庫項目進行需求分析,首先看看我們的業務系統的數據全不全,這事做起來不難,但我們需要細化和量化,確實做到量力(數據)而行,不要等到開發時,才看清現在的數據并不滿足需求。
3.3業務系統足夠健壯么?
數據倉庫所有的數據技術源于業務系統,而且數據是短暫地由業務系統流向數據倉庫。盡管,通常數據倉庫的ETL操作對業務系統影響較小,有的并不從生產庫中取數據,但還是對業務系統的穩定性和可靠性有一定要求的。
3.4軟硬件是否具備
中國有句俗語,叫既來之則安之。如果前面的條件都成熟了,那最后就需要有相應的軟硬件配套。這里說的軟件是指客戶的人力資源,即業務分析人員、IT支持人員,數據分析應用人員等,硬件是指數據倉庫項目所需的服務器,網絡設備,終端設備,以及系統軟件、數據庫軟件、應用軟件等。如果確保這些軟硬件都能滿足,那就可以開始實施了。
數據倉庫需要考慮的幾個方面
1. 首先整個項目的設計與目標要基本符合經典的數據倉庫概念和理論。不要做一個四不像的東西,數據倉庫是一個基于歷史數據的,邏輯數據整合的,不斷增長的,滿足特定目標的數據集合。
2. 項目的結果應該達到了預期的目標。
評價項目的建設目標是否達到了預期的目標,不是項目建成驗收的結果,而是交付使用一段時間以后,通常是半年以上,對應用結果的評價。
3. 項目具有可靠的穩定性。數據倉庫系統可靠地與業務系統相銜接,數據倉庫項目評價是考驗它對數據的駕馭能力,可以以駕馭數據流程的能力為標準。數據倉庫的實質是數據計算技術。數據源源不斷地從業務系統流向數據倉庫中,歷史數據能否始終健康成長?即保證它的完整、準確、不重復、不缺失,隨著數據量不斷地增長,系統的性能依然良好可用。
4. 項目是可維護的。
我們曾經見過這樣的數據倉庫項目,它的數據模型設計得很巧妙,但忽視了數據倉庫在增長到一定數據量時的的性能,結果系統運行第一年效果不錯,第二年就性能大大降低了,而且隨著數據不斷地增長,系統越來越慢,除了對數據模型推翻重組別外幾乎是沒有有效的辦法了。還有其他方面設計和開發不當的,數據越來越不準確,導致結果最后不可用。
數據倉庫與數據挖掘的關系
最后,我們再簡單提一下數據倉庫與數據挖掘的關系。什么是數據挖掘呢?數據挖掘就是采用一定技術和方法發現隱藏在數據中的規律和知識的工作。數據挖掘需要應用一定的數學和計算技術對較大數據集做深層次的分析,它通常需要與項目的業務流程和專業知識深入相結合,工作流程須基本符合數據挖掘業界標準- CRISP。
數據倉庫與數據挖掘的關系就像是一對戰略合作伙伴,彼此合作是共贏的,但雙方又是獨立自主的,并不以對方為前提條件。數據挖掘并不是依賴于數據倉庫, ,實際上的商業應用項目當中數據挖掘往往是相對獨立的,數據挖掘要的數據是有它特殊的需求,數據可以來源于數據倉庫,也可以直接從數據源里來取,并不是說是數據倉庫與數據挖掘有必然的關系,也不是先有數據倉庫后有數據挖掘,所有的數據挖掘一定基于數據倉庫,不是這個概念。
那么,沒有數據挖掘應用的數據倉庫的應用是什么?沒有數據倉庫的數據挖掘是怎樣工作的?數據倉庫與數據挖掘是怎樣結合的?好處是什么?我們以后再講。
作者:
Hong Song Lin(洪松林) 福安易數據技術(天津)有限公司(F&E DATA TECHNOLOGY CORP. )創始人,外國專家局引智技術專家,加拿大OCP認證專家,有20年智能計算(數據倉庫、商務智能及數據挖掘)方面的研究、設計、開發和培訓經驗。掌握北美先進的項目經驗,曾在加拿大安大略省衛生部(OMH)、蒙特利爾銀行(BMO)、加拿大研科電訊公司(TELUS )、安省高教委(OCAS)等大型機構參與多個大型智能計算項目。近年來在國內主持多個智能計算產品的總體設計和研發工作,將北美的智能計算技術及業務經驗與中國的專業需求和數據環境有效地結合起來,開發了以數據倉庫、數據挖掘和數據統計為技術核心的智能數據分析產品,國內首創,并在北京、天津等地得到成功應用。
當前題目:基礎理論:數據倉庫DW的辯識
網站路徑:http://vcdvsql.cn/article44/soidee.html
成都網站建設公司_創新互聯,為您提供定制開發、營銷型網站建設、網站導航、網站策劃、網站設計公司、全網營銷推廣
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯