文 / 郝志偉 郝夢晨
隨著信息技術(shù)發(fā)展,“互聯(lián)網(wǎng)+”和物聯(lián)網(wǎng)不斷深度融合應(yīng)用,提升了企業(yè)管理水平、經(jīng)營質(zhì)量、生產(chǎn)效率。在企業(yè)信息化建設(shè)中,產(chǎn)生了大量的數(shù)據(jù),在數(shù)據(jù)交互頻繁的業(yè)務(wù)系統(tǒng)采用傳統(tǒng)關(guān)系型數(shù)據(jù)庫已經(jīng)被人們熟悉和認(rèn)知。當(dāng)數(shù)據(jù)的種類、數(shù)量大到一定規(guī)模時(shí),就形成了大數(shù)據(jù),這就需要建立數(shù)據(jù)倉庫,對數(shù)據(jù)進(jìn)行存取和分析,為企業(yè)提供決策支持。在大數(shù)據(jù)時(shí)代,數(shù)據(jù)就是資產(chǎn),如何讓大數(shù)據(jù)在企業(yè)轉(zhuǎn)型升級發(fā)展中發(fā)揮最大效能?本文從數(shù)據(jù)倉庫產(chǎn)生的背景和意義、種類和特點(diǎn)、不同的場景應(yīng)用維度進(jìn)行了探索與分析,希望對企業(yè)在大數(shù)據(jù)平臺建設(shè)時(shí)如何對數(shù)據(jù)庫進(jìn)行選型有所啟示。
隨著IT技術(shù)的成熟發(fā)展,信息系統(tǒng)充分應(yīng)用,大數(shù)據(jù)已經(jīng)成為時(shí)代發(fā)展的“新能源”。如果說數(shù)據(jù)是“血液”,那么數(shù)據(jù)庫就是完成造血的“心臟”,數(shù)據(jù)已越來越成為伴隨企業(yè)成長的、不可或缺的、能量高效轉(zhuǎn)換的自主、自有和自驅(qū)的“新能源”。
如何讓企業(yè)具備更強(qiáng)大的造血功能和更高效的“新能源”轉(zhuǎn)化效能?首要任務(wù)是理清業(yè)務(wù)需求脈絡(luò)和邏輯,把業(yè)務(wù)需求轉(zhuǎn)化成一個(gè)便于分析的數(shù)學(xué)問題,戰(zhàn)略性地建設(shè)企業(yè)數(shù)據(jù)庫和對數(shù)據(jù)庫進(jìn)行漸進(jìn)式布局?;谶@種思路,宏觀審視企業(yè)內(nèi)部數(shù)據(jù)架構(gòu),企業(yè)信息化建設(shè)只有選用了適合的數(shù)據(jù)庫,“新能源”效能才能得到充分釋放。
數(shù)據(jù)庫(Database)是在計(jì)算機(jī)存儲設(shè)備上按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理的相關(guān)數(shù)據(jù)集合,簡單地說就是電子化的文件柜。不同的信息系統(tǒng)需求和應(yīng)用場景需要不同的數(shù)據(jù)模型,不同數(shù)據(jù)庫產(chǎn)品功能各異,需要綜合考慮數(shù)據(jù)模型、產(chǎn)品特性和應(yīng)用情景,選擇最適合的架構(gòu)和數(shù)據(jù)庫模型以及產(chǎn)品。
從數(shù)據(jù)存儲的邏輯視角來看,可以分為關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫;從數(shù)據(jù)存儲的物理角度來看,則可以分為行式數(shù)據(jù)庫和列式數(shù)據(jù)庫。目前,企業(yè)的數(shù)據(jù)庫建設(shè)主要有OLTP和OLAP兩種應(yīng)用方式。
聯(lián)機(jī)事務(wù)處理OLTP(On-Line Transaction Processing),是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的主要應(yīng)用,基本特征是在業(yè)務(wù)交互場景中,前臺接收的用戶數(shù)據(jù)可以立即傳送到計(jì)算中心進(jìn)行處理,并在很短的時(shí)間內(nèi)對用戶操作快速響應(yīng)、給出處理結(jié)果,也稱為實(shí)時(shí)系統(tǒng)(Real time System)。OLTP是由前臺、應(yīng)用、數(shù)據(jù)庫共同完成的,處理快慢以及處理程度取決于數(shù)據(jù)庫引擎、服務(wù)器、應(yīng)用引擎;支持大量并發(fā)用戶增、刪、查、改數(shù)據(jù),實(shí)時(shí)反映企業(yè)指標(biāo)變化的狀態(tài)。
聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)是一種軟件數(shù)據(jù)處理技術(shù),它使分析人員能夠迅速、一致、交互地從各個(gè)方面觀察信息,以達(dá)到深入理解數(shù)據(jù)的目的,是數(shù)據(jù)倉庫系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重決策支持,并且提供直觀易懂的查詢結(jié)果。列式數(shù)據(jù)庫適合OLAP,有共享多維信息的快速分析特征,具有處理數(shù)據(jù)量大,實(shí)時(shí)性要求不高,支持動態(tài)查詢,通過多維度數(shù)據(jù)提供決策支持等特點(diǎn)。
企業(yè)數(shù)據(jù)的本質(zhì)是以數(shù)據(jù)形式呈現(xiàn)的知識,在時(shí)空上具有很強(qiáng)的通用性和連續(xù)性,企業(yè)數(shù)字化帶來的好處是獲得知識的成本低、范圍廣、質(zhì)量高,可以實(shí)現(xiàn)人機(jī)對話、信息共享,提升了數(shù)據(jù)價(jià)值,互聯(lián)網(wǎng)的推動讓數(shù)據(jù)的價(jià)值倍增。通常來說,在企業(yè)數(shù)據(jù)使用時(shí)效性的維度來看,企業(yè)的數(shù)據(jù)可以分為三類:熱數(shù)據(jù)、冷數(shù)據(jù)和溫?cái)?shù)據(jù)。熱數(shù)據(jù)(在線數(shù)據(jù))是指實(shí)時(shí)產(chǎn)生的、場景化明顯的數(shù)據(jù),它能夠進(jìn)行快速業(yè)務(wù)交易數(shù)據(jù)處理。冷數(shù)據(jù)(離線數(shù)據(jù))是存儲較長時(shí)間的、不需要實(shí)時(shí)訪問的狀態(tài)數(shù)據(jù),適合應(yīng)用在統(tǒng)計(jì)分析的維度或大數(shù)據(jù)的維度。溫?cái)?shù)據(jù)(針對某類業(yè)務(wù)維度的數(shù)據(jù)組合)是業(yè)務(wù)實(shí)時(shí)交互數(shù)據(jù)、交易數(shù)據(jù)和非即時(shí)的狀態(tài)行為數(shù)據(jù)的組合,它是以某種業(yè)務(wù)特征分類維度上的結(jié)構(gòu)化數(shù)據(jù)組合。
大數(shù)據(jù)需要將大的特征進(jìn)行分類,才能讓大數(shù)據(jù)體現(xiàn)更大的價(jià)值,不同規(guī)模的數(shù)據(jù)以及非結(jié)構(gòu)化數(shù)據(jù)的增多需要不同的數(shù)據(jù)庫架構(gòu),產(chǎn)生不同級別的數(shù)字化和智能化;數(shù)據(jù)處理同樣也需要專門設(shè)計(jì)高效率和高效能的計(jì)算架構(gòu),與企業(yè)的系統(tǒng)應(yīng)用和業(yè)務(wù)場景進(jìn)行緊密結(jié)合。
從業(yè)務(wù)交互、業(yè)務(wù)分析和數(shù)據(jù)狀態(tài)的角度來看, OLTP在業(yè)務(wù)系統(tǒng)交互過程中提供高頻、多并發(fā)的數(shù)據(jù)交易處理,主要應(yīng)用在眾多的企業(yè)業(yè)務(wù)信息系統(tǒng)和邊緣計(jì)算等場景,在這個(gè)數(shù)據(jù)庫應(yīng)用的序列里,常用的商用關(guān)系型數(shù)據(jù)庫產(chǎn)品有微軟的SQL Sever、甲骨文的Oracle、IBM的DB2、SAP的HANA等;有自主開發(fā)使用的開源關(guān)系型數(shù)據(jù)庫框架MySQL 和PostgreSQL。這些數(shù)據(jù)庫具有業(yè)務(wù)流程為導(dǎo)向的索引結(jié)構(gòu),同時(shí)與商用軟件集成性強(qiáng)、實(shí)時(shí)查詢快、快速的業(yè)務(wù)交易數(shù)據(jù)處理,因此比較適用于業(yè)務(wù)交互組件類產(chǎn)品和系統(tǒng)開發(fā),也可以適用于數(shù)據(jù)量不大的數(shù)據(jù)倉庫分析類產(chǎn)品。
數(shù)據(jù)倉庫是解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類應(yīng)用的難題,為企業(yè)進(jìn)行決策分析提供所有類型數(shù)據(jù)支持的戰(zhàn)略集合,為需要業(yè)務(wù)智能的企業(yè)提供指導(dǎo)業(yè)務(wù)流程改進(jìn)、監(jiān)視時(shí)間、成本、質(zhì)量以及控制。主要功能是將大量由OLTP形成的數(shù)據(jù)進(jìn)行分析整理,幫助構(gòu)建商業(yè)智能(BI)和決策支持。常用的有四類:一是鍵值存儲數(shù)據(jù)庫,如VMware和Pivotal支持的Redis是一個(gè)開源的、高性能的鍵值數(shù)據(jù)庫,支持主從同步;二是列存儲數(shù)據(jù)庫,如Apache的HAdoop,HBASE通常用來應(yīng)對分布式存儲的海量數(shù)據(jù);三是文檔型數(shù)據(jù)庫,如 MongoDb,可以看作是鍵值數(shù)據(jù)庫的升級版,查詢效率更高,但安全性和穩(wěn)定性還有待觀察;四是圖形數(shù)據(jù)庫,如InfoGrid是使用靈活的圖形模型,并且能夠擴(kuò)展到多個(gè)服務(wù)器上??傊?,數(shù)據(jù)倉庫在以下的這幾種情況下比較適用:數(shù)據(jù)模型設(shè)計(jì)比較簡單;要求較高的數(shù)據(jù)庫性能;信息系統(tǒng)需要更強(qiáng)的靈活性;數(shù)據(jù)不需要高度的一致性;通過給定的鍵(KEY),比較容易映射復(fù)雜值的環(huán)境。
針對常用的商用鍵值類和列式類數(shù)據(jù)庫有SAP的HANA,它是一款行列式內(nèi)存數(shù)據(jù)庫,既可以執(zhí)行通常需在行式數(shù)據(jù)庫中執(zhí)行的事務(wù),又可以執(zhí)行列式數(shù)據(jù)庫所擅長的分析功能。針對常用的開源鍵值類和列式類數(shù)據(jù)庫Redis和Apache的HAdoop,由于本身就以Key Value數(shù)據(jù)庫和列式大寬表為框架、單一索引,以大量數(shù)據(jù)的分析為主,在實(shí)時(shí)業(yè)務(wù)交互數(shù)據(jù)處理方面效率和性能不高、主要是大量的以歷史數(shù)據(jù)存儲為主的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)處理,適合應(yīng)用在業(yè)務(wù)統(tǒng)計(jì)分析的維度和大數(shù)據(jù)的維度。一般基于高可用和高性能的架構(gòu)會單獨(dú)使用Redis分布式架構(gòu)或者以Redis為緩存數(shù)據(jù)層構(gòu)架于HAdoop集群上。
所以得出一個(gè)值得肯定的結(jié)論:站在數(shù)據(jù)倉庫維度的數(shù)據(jù)庫整合或者大數(shù)據(jù)維度的多個(gè)數(shù)據(jù)倉庫整合,使用HAdoop和Redis架構(gòu)可以為企業(yè)打造一個(gè)通用的、延展性強(qiáng)的大數(shù)據(jù)平臺;但站在業(yè)務(wù)應(yīng)用的角度除非是自開發(fā)的開源系統(tǒng),還是最好選用配套商用標(biāo)準(zhǔn)的對應(yīng)數(shù)據(jù)庫組件。