為何需要資料倉儲?
以往企業所使用的電腦系統,大多是以操作者為導向所設計的,很少考慮到主管的決策需要,例如系統中可能會有訂單維護程式、訂單列印程式、訂單彙總表...等等,但是如果業務主管需要知道「這三年來台北市最暢銷的五種產品為何?又各分店銷售的佔比是多少?」,系統可能無法立即提供這樣的資訊,而需要找個程式設計師,花個3、5天才能產出這份報表。等下個需求出來時又要重新來一次,這種現象對MIS人員的資源非常浪費,對企業營運的決策又可能喪失先機。比爾蓋茲在「數位神經系統」中提到企業在八十年代所著重的是品質,九十年代是企業再造,而在二千年之後則是速度,所以,電腦系統對於企業的決策支援,速度已經是個基本的要求。
有些企業的電腦化已經行之有年,在不同的時間、不同的地點,依照不同的需求開發出不同的系統,這些系統之間的整合也是MIS人員的夢魘,您可能為了一個臨時的需求需要從Mainframe、Informix、Oracle、Dbase、COBAL Files這些不同的地方將資料找出來,然後整合在一張報表上,這種情況下做苦功不說,所取得資料的準確度也值得懷疑。所以企業極需要一個解決方案,能夠解決資料整合與過濾的問題,並且能在最節省成本的情況下,以最快的方式取得所需的資訊,如果您也有這樣的需求,資料倉儲是目前唯一的選擇。
資料倉儲是什麼?
先看看資料庫之父Bill Inmon對於資料倉儲的定義:「資料倉儲是一個整合的、特定對象導向的資料庫,專門設計來做決策支援系統(DSS),其資料與時間的關係特別地重要」﹔而資料倉儲大師Ralph Kimball的定義是:「資料倉儲是複製一些特定的資料,經過特別的設計後提供查詢及分析使用」。所以,我們可以簡單的說,資料倉儲是將不同的資料來源經由複製、整理、轉換、過濾後整合在一起,以利查詢與分析統計。而建置資料倉儲的目標是為了讓用戶能更快且更方便的取得他們所要的資訊,所以資料倉儲只不過是為了達成目標的一個過程罷了。
資料倉儲的應用
資料倉儲的應用領域很廣,除了可以用在各行各業的決策支援分析外,它也是顧客關係管理(CRM)中非常重要的一環;對於「關係行銷」、「資料庫行銷」、「一對一行銷」等行銷分析也有很大的幫助;另外,在電子商務的領域上資料倉儲對於個性化網頁,個人行銷也可發揮很大的功能。
(圖一)是資料倉儲架構的簡圖,企業內部的資料來自不同的平台,這些資料需要複製、整理、轉換、過濾後整合在一起,這個動作可以透過ETL工具來完成,整合後的資料將儲存在資料倉儲之中,該資料倉儲則必須能快速地處理大量的資料,並能允許大量的使用者查詢,最後可以透過線上分析工具來即時地分析資料倉儲中的資料。
跨異質平臺轉換利器
市場的快速變遷,經常迫使決策者必須即時作出關鍵性的決策,而這些決策仰賴於企業內許多相關的重要資料。但往往需要的資料被操作系統及外部資料庫鎖住,不易取得;或是需要太長的時間來擷取及分析。當務之急便是尋找一個單一資料倉儲解決方案,從擷取到轉換,自動簡化困難和費時的程序,同時確保結果正確無誤。
企業層級的資料倉儲牽涉到資料的來源不同、容量龐大、複雜度高,而在整個資料擷取、轉換、下載的過程中,常因為跨平台異質資料庫而產生許多問題,因此在選擇適當的工具和解決方案是非常重要的,基本上有幾個程序及步驟。
1.擷取(Extraction)
需要從作業資料庫、檔案和外部資料來源(只要是適當的格式)獲得資料倉儲所需的資料,快速在短時間內擷取資料,可以是經由直接查詢作業系統或鏡射資料、報表、檔案下載、交易記錄、檔案磁帶、客戶程式,以及諸如此類減少線上資料庫可用度降低的方式。
2.轉換(Transformation)
將來源資料,如作業系統和檔案資料轉換成一種適合分析和支援決策的型式。舉例來說,等級性(levels)的作業資訊(如庫存數)能被轉換成事件(event)資訊(如收到數量及傳送數量),該流程需要密碼、解碼、附加說明、並使粗細度(granularity)在相同等級(日/月/年 和 區域號碼/鄉鎮/縣市)等。當作業系統移到目標倉儲,它能被聚合,創造儲存價值給經常使用者使用的資訊。接著,使用者會經常要求附加的資料,您能輕易加上新儲存的聚合,讓使用者詢問的結果快而有效率的呈現。
3.清除(Cleansing)
作業資料時常會出現垃圾或不正確的資料,例如:負面價值、會計平衡、拼字錯誤、舊的歷史資料等。必需清除資料並重新整理以利分析,並先過濾無效的資料,修正錯誤,建立一貫性。即使中間資料已被檢查,在必要情況下,該資料亦可被轉換成以圖形顯示在倉儲資料表上,或將欄位轉換成相同資料型式。
4.整合(Integration)
當來源資料被清除或定義好之後,協助將資料對應到倉儲目標資料庫概要(schema)中,從數個資料庫中整合重要資訊。例如:一個資料庫建有客戶的名稱和地址,另一個資料庫建該客戶的存貨數量,協助將這些欄位整合並連結到您的資料庫中。這是整合階段的成功及特殊之處。
5.載入(Load)
本項步驟必須將擷取、轉換、清理及整合過之資料正確的、快速的載入資料倉儲中,但需注意載入及更新目的端資料庫方式,如先清除資料表(Table)再輸入資料、只輸入資料不清除、完全取代目前的資料或只更新目前的資料。
一般企業用戶在建制資料倉儲時均會選購此類產品或工具,來減少在建制或開發資料倉儲時所花費的人力與時間的成本,根據Data Warehouse Institute 所作的統計調查,在資料倉儲化的過程中約百分之八十的工作在 datastaging(註)這個步驟,定義轉換規則、開發轉換程式、定期的排程、每日的維護工作。可是企業用戶常常忽略這個步驟而導制資料倉儲專案花費太多人力及開發時間過長,促使最終使用者反而得不到資料倉儲的好處,最後導致資料倉儲專案的失敗。Datastaging最主要的工作就是把最正確、最完整的資料用最迅速的方式餵到資料倉儲中心,以利使用者容易且方便的取得資訊,協助做重要的商業決策。因此,ETL Tool在資料倉儲中扮演後勤補給的角色,必須隨時補充正確且足夠的物資(data)至補給中心或糧草大本營(Enterprise Data Warehouse),前線的戰士(end-user)才能利用物資(Information)作戰(Business Decision)。兵書云「大軍未動,糧草先行」,故要作資料倉儲,先準備ETL Tool(圖二)吧!
《圖二 ETL Tool在資料倉儲中扮演後勤補給角色》 |
|
強而有力的資料倉儲引擎
傳統資料庫注重交易的完整性,每一筆明細資料都很重要,以寫入資料的觀點來看,傳統資料庫必須有完整的交易控制能力(Transaction)、容錯能力,而為了能在最短的時間內完成寫入動作,在設計檔案時會以ER-Model的方法,將檔案的重複性減到最小,即所謂的Normalize,如此一來,資料庫無論是在新增,修改或刪除都能得到較好的效率。若從讀取的觀點來看,傳統資料庫必須能在最短的時間內(數秒內),找到使用者所需的資料,而且查詢都比較單純。傳統的資料庫為了能快速的新增、修改、刪除及查詢資料,它不會保存所有的歷史資料,而是只儲存有一定時限的資料。
資料倉儲由於是用來做決策分析,它會有不同於傳統資料庫的特性,因為決策支援所需的查詢往往較為複雜,而且必須從大量的資料中去歸納分析,所以一般會捨棄ER-Model的設計方式,而改用Star-Schema的方式來減少檔案的Join數量;而由於常常需要提供決策者趨勢的分析,資料倉儲中必定儲存大量的資料,所以,它必須有處理大量資料的能力。
結論
近年來,許多資料倉儲廠商推出套裝的「資料倉儲(data warehouse)解決方案」、「資料超市(data mart)解決方案」,這是一個結合多種工具和技術的全功能端對端解決方案。雖然這些解決方案通常提供快速的配置和迅速的投資報酬(ROI)能力,但它們都欠缺了一項極為重要的特質,即彈性。造成此種缺憾的原因在於資料倉儲乃是一個持續不斷進展的流程,而非一個靜態的專案計畫。在企業分析師和決策者存取資料倉儲以收集更多資訊的同時,整體企業的需求亦持續演變並發展得更為複雜。而這終究需要一個能以內建的彈性來迅速適應變動之需求的決策支援環境,這是企業選擇資料倉儲方案時必須考量的要點。