聯(lián)機(jī)分析處理
聯(lián)機(jī)分析處理OLAP是一種軟件技術(shù),它使分析人員能夠迅速、一致、交互地從各個(gè)方面觀(guān)察信息,以達(dá)到深入理解數(shù)據(jù)的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維信息的快速分析的特征。其中F是快速性(Fast),指系統(tǒng)能在數(shù)秒內(nèi)對(duì)用戶(hù)的多數(shù)分析要求做出反應(yīng);A是可分析性(Analysis),指用戶(hù)無(wú)需編程就可以定義新的專(zhuān)門(mén)計(jì)算,將其作為分析的一部 分,并以用戶(hù)所希望的方式給出報(bào)告;M是多維性(Multi—dimensional),指提供對(duì)數(shù)據(jù)分析的多維視圖和分析;I是信息性(Information),指能及時(shí)獲得信息,并且管理大容量信息。
數(shù)據(jù)倉(cāng)庫(kù)和聯(lián)機(jī)分析處理(OLAP)是決策支持基本要素,已經(jīng)日益成為數(shù)據(jù)庫(kù)行業(yè)的重點(diǎn)。許多商業(yè)產(chǎn)品和服務(wù)現(xiàn)已推出,并且所有主要的數(shù)據(jù)庫(kù)管理系統(tǒng)供應(yīng)商現(xiàn)在已經(jīng)在這些領(lǐng)域提供產(chǎn)品。決策支持,相比于傳統(tǒng)的聯(lián)機(jī)事務(wù)處理應(yīng)用程序,會(huì)有些不同的要求數(shù)據(jù)庫(kù)技術(shù)。本文提供的數(shù)據(jù)概述數(shù)據(jù)倉(cāng)庫(kù)和OLAP技術(shù),著眼于他們的新的要求。我們描述后端工具來(lái)提取,清潔和數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù);典型OLAP的多維數(shù)據(jù)模型;前端客戶(hù)端工具用于查詢(xún)和數(shù)據(jù)分析;服務(wù)器擴(kuò)展來(lái)高效的查詢(xún)處理;用來(lái)管理元數(shù)據(jù)和倉(cāng)庫(kù)工具。此外,勘測(cè)技術(shù)現(xiàn)狀,本文還指出了一些有前景的研究問(wèn)題,其中一些涉及數(shù)據(jù)庫(kù)研究界合作多年的研究的問(wèn)題,但其他一些問(wèn)題只是剛剛開(kāi)始被解決。本概述是基于一個(gè)教程,有作者們?cè)跁?huì)議VLDB 1996年提出。
1. 介紹
數(shù)據(jù)倉(cāng)庫(kù)是決策支持技術(shù)的集合,旨在使知識(shí)工作者(總裁,經(jīng)理,分析師)做出更快更好的決策。過(guò)去三年已經(jīng)看到的爆炸性的增長(zhǎng),無(wú)論是在所提供的產(chǎn)品和服務(wù)的數(shù)量,還是在采用這些技術(shù)的工業(yè)領(lǐng)域。按照META集團(tuán)說(shuō)法,數(shù)據(jù)倉(cāng)庫(kù)市場(chǎng),包括硬件,數(shù)據(jù)庫(kù)軟件和工具,預(yù)計(jì)是由1995年的20億美金增長(zhǎng)到1998年分80億美金。數(shù)據(jù)倉(cāng)庫(kù)技術(shù)已經(jīng)成功部署在許多行業(yè):制造業(yè)(訂單運(yùn)輸和客戶(hù)支持),零售(用于用戶(hù)分析和庫(kù)存管理),金融服務(wù)(理賠分析,風(fēng)險(xiǎn)分析,信用卡分析和欺詐檢測(cè)),交通(車(chē)隊(duì)管理),電信(呼叫分析和欺詐檢測(cè)),公用事業(yè)(電力使用分析)和醫(yī)療保健(對(duì)于結(jié)果的分析)。本文介紹了數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的路線(xiàn)圖,著重于有特殊需求的數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。
數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)“面向主題的,集成的,隨時(shí)間變化的,非易失性的,主要用于組織決策的數(shù)據(jù)集合。 ”通常情況下,數(shù)據(jù)倉(cāng)庫(kù)用來(lái)分別維護(hù)組織的不同業(yè)務(wù)的數(shù)據(jù)庫(kù)。有很多原因來(lái)這么做。數(shù)據(jù)倉(cāng)庫(kù)支持在線(xiàn)分析處理(OLAP ),它的功能和性能要求完全不同于由業(yè)務(wù)數(shù)據(jù)庫(kù)所支持的聯(lián)機(jī)事務(wù)處理( OLTP)應(yīng)用程序。
OLTP應(yīng)用程序通常使得文書(shū)數(shù)據(jù)處理任務(wù)自動(dòng)化,如訂單錄入和銀行交易等一些組織的日常運(yùn)作。這些任務(wù)是結(jié)構(gòu)化和重復(fù)性,以及由短的,原子,孤立的交易。該交易需要詳細(xì),最新的數(shù)據(jù),通常通常訪(fǎng)問(wèn)他們的主鍵來(lái)讀取或更新少數(shù)(幾十)記錄。操作數(shù)據(jù)庫(kù)往往是百兆到千兆字節(jié)。數(shù)據(jù)庫(kù)的一致性和可恢復(fù)性是至關(guān)重要的,最大化事務(wù)吞吐量是關(guān)鍵性能指標(biāo)。因此,數(shù)據(jù)庫(kù)被設(shè)計(jì)為反映已知的應(yīng)用,特別是的操作語(yǔ)義,以盡量減少并發(fā)沖突。
數(shù)據(jù)倉(cāng)庫(kù),相反的,是有針對(duì)性的決策支持。歷史,總結(jié)和整合的數(shù)據(jù)比詳細(xì)的,個(gè)人記錄更重要。由于數(shù)據(jù)倉(cāng)庫(kù)包含合并數(shù)據(jù),或許可以從幾個(gè)業(yè)務(wù)數(shù)據(jù)庫(kù),在一段時(shí)間可能很長(zhǎng)的時(shí)期,他們往往要比業(yè)務(wù)數(shù)據(jù)庫(kù)較大的訂單;企業(yè)數(shù)據(jù)倉(cāng)庫(kù)預(yù)計(jì)為數(shù)百GB到TB級(jí)大小。工作負(fù)載大多是查詢(xún)密集型與臨時(shí)性的,復(fù)雜查詢(xún)可以訪(fǎng)問(wèn)數(shù)以百萬(wàn)計(jì)的記錄,并進(jìn)行了大量的掃描,聯(lián)接和聚合。查詢(xún)吞吐量和響應(yīng)時(shí)間比事務(wù)吞吐量更重要。
促進(jìn)復(fù)雜的分析和可視化、數(shù)據(jù)倉(cāng)庫(kù)通常多維建模。例如,在一個(gè)銷(xiāo)售數(shù)據(jù)倉(cāng)庫(kù),銷(xiāo)售,銷(xiāo)售區(qū)域、銷(xiāo)售人員和產(chǎn)品可能是一些感興趣的維度。通常,這些維度是分層次的;銷(xiāo)售時(shí)間可能是組織為day-month-quarter-year的層次結(jié)構(gòu),產(chǎn)品作為product-category-industry的層次結(jié)構(gòu)。典型的OLAP操作包括上鉆(增加聚合的水平)和下鉆(減少聚合的水平或增加細(xì)節(jié))以及一個(gè)或多個(gè)維度層次結(jié)構(gòu)切割(選擇和投影),軸轉(zhuǎn)(調(diào)整的多維視圖的數(shù)據(jù))。
由于已有的業(yè)務(wù)數(shù)據(jù)庫(kù)已經(jīng)很好的支持已知的OLTP工作負(fù)載,所以試圖對(duì)業(yè)務(wù)數(shù)據(jù)庫(kù)執(zhí)行復(fù)雜的OLAP查詢(xún),將導(dǎo)致不可接受的性能。此外,決策支持需求的數(shù)據(jù)可能從業(yè)務(wù)數(shù)據(jù)庫(kù)中丟失;例如,了解趨勢(shì)或進(jìn)行預(yù)測(cè)所需要?dú)v史數(shù)據(jù),而業(yè)務(wù)數(shù)據(jù)庫(kù)只存儲(chǔ)當(dāng)前的數(shù)據(jù)。決策支持一般需要從多個(gè)不同來(lái)源的數(shù)據(jù)進(jìn)行整合:這可能包括外部資源,如股票的市場(chǎng)反饋需要額外的幾個(gè)業(yè)務(wù)數(shù)據(jù)庫(kù)。不同的來(lái)源可能含有不同質(zhì)量的數(shù)據(jù),或使用不一致的陳述,代碼和格式,需要協(xié)調(diào)。最后,支持多維數(shù)據(jù)模型和操作的典型OLAP需要特殊的數(shù)據(jù)組織,訪(fǎng)問(wèn)方式和實(shí)現(xiàn)方法,不是如一般的商業(yè)數(shù)據(jù)庫(kù)管理系統(tǒng)用來(lái)針對(duì)OLTP。由于這些原因,數(shù)據(jù)倉(cāng)庫(kù)的實(shí)現(xiàn)有別于業(yè)務(wù)數(shù)據(jù)庫(kù)。
數(shù)據(jù)倉(cāng)庫(kù)可能會(huì)實(shí)施在標(biāo)準(zhǔn)的或擴(kuò)展的關(guān)系DBMS 上,就是所謂關(guān)系型OLAP(ROLAP )服務(wù)器。這些服務(wù)器假設(shè)數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù),并且支持?jǐn)U展SQL和特殊訪(fǎng)問(wèn)及實(shí)施方法來(lái)有效實(shí)現(xiàn)多維數(shù)據(jù)模型和操作。相比之下,多維OLAP ( MOLAP)服務(wù)器直接把多維數(shù)據(jù)存儲(chǔ)在特定的數(shù)據(jù)結(jié)構(gòu)(例如,數(shù)組),并實(shí)現(xiàn)了OLAP在這些特點(diǎn)的數(shù)據(jù)結(jié)構(gòu)的操作。
這不僅僅是建設(shè)和維護(hù)一個(gè)數(shù)據(jù)倉(cāng)庫(kù),還需要選擇一個(gè)OLAP服務(wù)器并為倉(cāng)庫(kù)明確模式和一些復(fù)雜的查詢(xún)。存在著不同結(jié)構(gòu)的替代品。許多組織希望實(shí)施綜合性企業(yè)的倉(cāng)庫(kù),收集跨越整個(gè)組織的所有科目(例如,客戶(hù),產(chǎn)品信息,銷(xiāo)售,資產(chǎn),人員)。然而,構(gòu)建企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)漫長(zhǎng)而復(fù)雜的過(guò)程,需要廣泛的業(yè)務(wù)建模,可能需要多年才能成功。相反的,一些組織滿(mǎn)足于數(shù)據(jù)集市,它是針對(duì)選定的科目的子集(例如,營(yíng)銷(xiāo)數(shù)據(jù)可能包括客戶(hù),產(chǎn)品和銷(xiāo)售信息) 。這些數(shù)據(jù)集市實(shí)現(xiàn)更快的推算,因?yàn)樗鼈儾恍枰髽I(yè)廣泛的共識(shí),但如果一個(gè)完整的商業(yè)模式并不發(fā)達(dá)的話(huà),從長(zhǎng)遠(yuǎn)來(lái)看,它們可能會(huì)導(dǎo)致復(fù)雜的集成問(wèn)題。
在第2節(jié),我們描述了一個(gè)典型的數(shù)據(jù)倉(cāng)庫(kù)體系結(jié)構(gòu),和設(shè)計(jì)和操作數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程。在3-7節(jié),我們回顧了在數(shù)據(jù)加載相關(guān)技術(shù)和刷新數(shù)據(jù)倉(cāng)庫(kù),倉(cāng)庫(kù)服務(wù)器,前端工具和倉(cāng)庫(kù)管理工具。在每一種情況下,我們指出什么是傳統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)不同的,我們會(huì)提到有代表性的產(chǎn)品。在本文中,我們不打算提供每個(gè)類(lèi)別的所有產(chǎn)品的綜合描述。我們鼓勵(lì)有興趣的讀者看看在最近的商業(yè)雜志,如Databased Advisor, Database Programming,Design, Datamation,DBMS Magazine, vendors’ Web sites來(lái)獲取商業(yè)產(chǎn)品,白皮書(shū)和案例研究的更多細(xì)節(jié)。OLAP Council是在整個(gè)行業(yè)的標(biāo)準(zhǔn)化工作上一個(gè)很好的信息源。還有科德等人的論文定義了OLAP產(chǎn)品的12條規(guī)則。還有,Data Warehousing Information Center是數(shù)據(jù)倉(cāng)庫(kù)和OLAP良好的資源。
數(shù)據(jù)倉(cāng)庫(kù)的研究是相當(dāng)新的,并一直專(zhuān)注的主要是查詢(xún)處理和視圖維護(hù)問(wèn)題。還有很多開(kāi)放性的研究問(wèn)題,在第8節(jié),我們會(huì)簡(jiǎn)要提及的這些問(wèn)題并得出結(jié)論。
2. 架構(gòu)與端到端流程
圖1是一個(gè)典型的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)。
它包括一些工具。這些工具可以用來(lái)從多種操作數(shù)據(jù)庫(kù)和外部源中提取數(shù)據(jù),并清洗、轉(zhuǎn)換和整合這些數(shù)據(jù),然后把數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù);定期刷新倉(cāng)庫(kù)來(lái)更新的源和清除倉(cāng)庫(kù)的數(shù)據(jù),或者是慢歸檔存儲(chǔ)。除了主倉(cāng)庫(kù),可能會(huì)有好幾個(gè)部門(mén)數(shù)據(jù)集市。存儲(chǔ)在數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)集市的數(shù)據(jù),由一個(gè)或多個(gè)倉(cāng)庫(kù)服務(wù)器管理,并呈現(xiàn)數(shù)據(jù)的多維視圖給不同的前端工具,如:查詢(xún)工具、報(bào)告作者、分析工具和數(shù)據(jù)挖掘工具。最后,還有一個(gè)存儲(chǔ)庫(kù),用于存儲(chǔ)和管理元數(shù)據(jù),并為監(jiān)測(cè)和管理倉(cāng)儲(chǔ)系統(tǒng)。
倉(cāng)庫(kù)可能被設(shè)計(jì)成分布式,以來(lái)得到負(fù)載均衡,可伸縮性和高可用性。在這樣一個(gè)分布式體系結(jié)構(gòu),元數(shù)據(jù)存儲(chǔ)庫(kù)通常是在每個(gè)節(jié)點(diǎn)的倉(cāng)庫(kù)都進(jìn)行備份的,整個(gè)倉(cāng)庫(kù)集中管理的。另一個(gè)體系結(jié)構(gòu),是倉(cāng)庫(kù)或數(shù)據(jù)集市的聯(lián)合,每個(gè)倉(cāng)庫(kù)或者數(shù)據(jù)集市都有自己的貯存和分級(jí)管理。該設(shè)計(jì)實(shí)現(xiàn)力求使用方便,所以可能花費(fèi)過(guò)于昂貴的代價(jià)來(lái)構(gòu)造一個(gè)邏輯集成的企業(yè)倉(cāng)庫(kù)。
設(shè)計(jì)和推出一個(gè)數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)復(fù)雜的過(guò)程,包括以下活動(dòng):
定義體系結(jié)構(gòu),容量規(guī)劃,并選擇存儲(chǔ)服務(wù)器、數(shù)據(jù)庫(kù)和OLAP服務(wù)器和工具。
整合服務(wù)器、存儲(chǔ)和客戶(hù)端工具。
設(shè)計(jì)倉(cāng)庫(kù)表和視圖。
定義物理倉(cāng)庫(kù)組織,數(shù)據(jù)布局、分區(qū)和訪(fǎng)問(wèn)方法。
使用網(wǎng)關(guān)、ODBC驅(qū)動(dòng)程序,或其他的包裝器連接數(shù)據(jù)源,。
設(shè)計(jì)和實(shí)現(xiàn)數(shù)據(jù)提取、清洗、轉(zhuǎn)換、加載和刷新的腳本。
貯存表和視圖的定義、腳本和其他元數(shù)據(jù)。
設(shè)計(jì)和實(shí)現(xiàn)終端用戶(hù)應(yīng)用程序。
推出倉(cāng)庫(kù)和應(yīng)用程序。
3. 后端工具和實(shí)用程序
數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)使用各種數(shù)據(jù)提取和清洗工具,錄入倉(cāng)庫(kù)的加載和更新的實(shí)用程序。通常外來(lái)源的數(shù)據(jù)提取的實(shí)現(xiàn)需要通過(guò)網(wǎng)關(guān)和標(biāo)準(zhǔn)接口(如Information Builders EDA/SQL, ODBC, Oracle Open Connect, Sybase Enterprise Connect, Informix Enterprise Gateway)。
數(shù)據(jù)清洗
由于數(shù)據(jù)倉(cāng)庫(kù)是用于決策,數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)正確性的非常重要的。然而,因?yàn)榇罅康臄?shù)據(jù)來(lái)自多個(gè)參與的數(shù)據(jù)源,數(shù)據(jù)中出現(xiàn)錯(cuò)誤和異常的概率很高。因此,幫助檢測(cè)數(shù)據(jù)的異常和對(duì)其改正的工具,可以帶來(lái)很高高效益。在一些情況下,數(shù)據(jù)清洗顯得非常有必要:字段長(zhǎng)度不一致,不一致的描述,不一致的價(jià)值分配,缺失的條目和違背完整性約束。可想而知,數(shù)據(jù)錄入表中的可選字段是不一致數(shù)據(jù)的重要來(lái)源。
有三個(gè)相關(guān),但不同的類(lèi)數(shù)據(jù)清理工具。數(shù)據(jù)遷移工具可以制定簡(jiǎn)單轉(zhuǎn)換規(guī)則,例如,用性別種類(lèi)來(lái)替換性別字符串。Prism的Warehouse Manager是這種類(lèi)型的工具中比較流行的一個(gè)。數(shù)據(jù)清理工具使用特定領(lǐng)域的知識(shí)(如郵政地址)來(lái)對(duì)數(shù)據(jù)進(jìn)行清理。他們經(jīng)常利用解析和模糊匹配技術(shù)來(lái)完成來(lái)著多個(gè)源的清洗。一些工具可以指定源的“相對(duì)清洗”。 Integrity和Trillum等工具屬于此類(lèi)。數(shù)據(jù)審計(jì)工具可以通過(guò)掃描數(shù)據(jù)從而發(fā)現(xiàn)規(guī)則和關(guān)系(或提醒違背了規(guī)定的規(guī)則)。因此,這樣的工具可以認(rèn)為是數(shù)據(jù)挖掘工具的變體。這樣的工具可能會(huì)發(fā)現(xiàn)一個(gè)可疑的樣本(基于統(tǒng)計(jì)分析),例如,某汽車(chē)經(jīng)銷(xiāo)商從未收到任何投訴。
加載
提取、清洗和轉(zhuǎn)換后,數(shù)據(jù)必須被加載到倉(cāng)庫(kù)。額外的預(yù)處理可能仍然被需要:檢查完整性約束;排序;通過(guò)總結(jié)、聚合和其他計(jì)算來(lái)建立存儲(chǔ)在倉(cāng)庫(kù)中的派生表;創(chuàng)建目錄和其他訪(fǎng)問(wèn)路徑;分區(qū)實(shí)現(xiàn)多個(gè)目標(biāo)存儲(chǔ)區(qū)域。通常情況下,批量裝載工具可以用來(lái)做這件事。除了填充倉(cāng)庫(kù),一個(gè)負(fù)載工具必須允許系統(tǒng)管理員監(jiān)控狀態(tài),取消、掛起和恢復(fù)一個(gè)負(fù)載,失敗后重啟而沒(méi)有損失數(shù)據(jù)的完整性。
數(shù)據(jù)倉(cāng)庫(kù)的加載工具必須處理比操作數(shù)據(jù)庫(kù)更大規(guī)模的數(shù)據(jù)量。只有一個(gè)小時(shí)間窗口中(通常在晚上),倉(cāng)庫(kù)可以離線(xiàn)刷新它。連續(xù)加載會(huì)花費(fèi)很長(zhǎng)的時(shí)間,例如。,可以加載TB級(jí)的數(shù)據(jù)會(huì)花幾周和幾個(gè)月時(shí)間!因此,通常需要利用管線(xiàn)式和分區(qū)式的并行性。進(jìn)行一個(gè)滿(mǎn)載的優(yōu)勢(shì)在于它可以被視為一個(gè)長(zhǎng)的批處理事務(wù),來(lái)建立一個(gè)新的數(shù)據(jù)庫(kù)。雖然在運(yùn)行中,但是當(dāng)前數(shù)據(jù)庫(kù)仍然可以支持查詢(xún);當(dāng)負(fù)載事務(wù)提交時(shí),當(dāng)前數(shù)據(jù)庫(kù)被新的數(shù)據(jù)庫(kù)所取代。使用周期檢查點(diǎn)保證,如果加載過(guò)程中發(fā)生了失敗,這個(gè)進(jìn)程可以從上個(gè)檢查點(diǎn)重啟。
然而,即使使用并行性,一個(gè)滿(mǎn)載可能仍然需要太長(zhǎng)的時(shí)間。大多數(shù)商業(yè)工具(如,RedBrick Table Management Utility)在刷新過(guò)程中使用增量加載,來(lái)降低必須被納入倉(cāng)庫(kù)的數(shù)據(jù)規(guī)模。只插入更新的元組。然而,這樣的加載過(guò)程更加難以管理了。增量加載會(huì)與正在進(jìn)行的查詢(xún)起沖突,所以它被作為一個(gè)短事務(wù)(定期提交,如,每隔1000個(gè)記錄或每隔幾秒),但這樣一來(lái)這個(gè)事務(wù)的序列必須被設(shè)計(jì),來(lái)確保導(dǎo)出數(shù)據(jù)與基礎(chǔ)數(shù)據(jù)的索引的一致性。
評(píng)論
查看更多