蔡穎嘉 沈松 鄭俊華
摘要摘要:大數(shù)據(jù)時(shí)代數(shù)據(jù)量劇增,信息增長速度超乎想象,成為影響數(shù)據(jù)中心性能的關(guān)鍵因素。如何在海量數(shù)據(jù)處理中保持良好性能是一個(gè)極具挑戰(zhàn)性的問題。為解決海量數(shù)據(jù)的讀取和統(tǒng)計(jì)問題,開展了高性能數(shù)據(jù)中心實(shí)現(xiàn)技術(shù)研究。分析了當(dāng)前IT技術(shù)發(fā)展趨勢(shì),通過對(duì)內(nèi)存計(jì)算技術(shù)和數(shù)據(jù)建模技術(shù)研究,采用內(nèi)存計(jì)算技術(shù)和數(shù)據(jù)建模技術(shù)構(gòu)建新型的數(shù)據(jù)中心,實(shí)現(xiàn)了數(shù)據(jù)中心性能的大幅提升。
關(guān)鍵詞關(guān)鍵詞:高性能數(shù)據(jù)中心;內(nèi)存計(jì)算;數(shù)據(jù)建模;數(shù)據(jù)倉庫;大數(shù)據(jù)
DOIDOI:10.11907/rjdk.162794
中圖分類號(hào):TP301
文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)005000605
1內(nèi)存計(jì)算技術(shù)特點(diǎn)
內(nèi)存計(jì)算技術(shù)是將大量的數(shù)據(jù)直接裝載到內(nèi)存中進(jìn)行計(jì)算和處理。內(nèi)存計(jì)算技術(shù)大大減少了從硬盤讀寫數(shù)據(jù)的時(shí)間,消除CPU和主內(nèi)存的帶寬瓶頸,計(jì)算速度得到大幅提升。內(nèi)存計(jì)算技術(shù)融合了硬件與軟件技術(shù)創(chuàng)新。硬件創(chuàng)新包括具有多核架構(gòu)和以TB計(jì)的內(nèi)存服務(wù)器,可實(shí)現(xiàn)大規(guī)模并行擴(kuò)展。軟件創(chuàng)新包括內(nèi)存數(shù)據(jù)庫,為最大限度發(fā)揮內(nèi)存計(jì)算技術(shù)潛力而專門設(shè)計(jì)了行、列存儲(chǔ)。并行處理在數(shù)據(jù)庫層進(jìn)行,而不是在通常的客戶端-服務(wù)器架構(gòu)中的應(yīng)用程序?qū)?。使用?nèi)存計(jì)算的數(shù)據(jù)庫,在理想狀態(tài)下可使數(shù)據(jù)處理速度提高1 000倍以上[1]。
采用內(nèi)存計(jì)算技術(shù)的數(shù)據(jù)庫系統(tǒng),具有傳統(tǒng)數(shù)據(jù)庫不可比擬的優(yōu)勢(shì):基于大容量?jī)?nèi)存的高效數(shù)據(jù)讀取和處理,行存儲(chǔ)和列存儲(chǔ)的混合模式同時(shí)支持OLTP和OLAP,充分利用硬件并行計(jì)算技術(shù)建立數(shù)據(jù)的并行處理機(jī)制,高效的數(shù)據(jù)壓縮可以優(yōu)化內(nèi)存利用,虛擬建模減少數(shù)據(jù)冗余,高效的動(dòng)態(tài)聚合能夠快速計(jì)算和匯總數(shù)據(jù),能夠在數(shù)據(jù)庫層面進(jìn)行數(shù)據(jù)密集型運(yùn)算等[2]。
目前內(nèi)存數(shù)據(jù)庫在業(yè)界居于領(lǐng)先地位的產(chǎn)品是SAP公司的HANA,本文在高性能數(shù)據(jù)中心實(shí)現(xiàn)技術(shù)的研究中采用SAP HANA作為技術(shù)平臺(tái)。
2數(shù)據(jù)中心平臺(tái)性能提升
數(shù)據(jù)中心平臺(tái)的核心是數(shù)據(jù)庫系統(tǒng),采用內(nèi)存數(shù)據(jù)庫搭建數(shù)據(jù)中心平臺(tái),能夠借助內(nèi)存計(jì)算技術(shù)的并行處理、內(nèi)存技術(shù)、壓縮(去重)技術(shù)等解決空間問題,大幅提高數(shù)據(jù)中心平臺(tái)性能。
2.1系統(tǒng)架構(gòu)
基于內(nèi)存計(jì)算的數(shù)據(jù)中心核心是SAP HANA內(nèi)存數(shù)據(jù)庫。如圖1所示是一個(gè)三節(jié)點(diǎn)的可伸縮HANA系統(tǒng)架構(gòu),主節(jié)點(diǎn)服務(wù)器A是一個(gè)完整的HANA系統(tǒng),由5個(gè)服務(wù)組件構(gòu)成,與單節(jié)點(diǎn)的HANA系統(tǒng)是一樣的。
Name Server是名字服務(wù)器,相當(dāng)于整個(gè)HANA數(shù)據(jù)庫系統(tǒng)環(huán)境中的“通信員”,通過名字服務(wù)器可以知道當(dāng)前HANA服務(wù)器的部署情況、數(shù)據(jù)在節(jié)點(diǎn)的分布情況以及節(jié)點(diǎn)的運(yùn)行狀態(tài)。
Index Server是索引服務(wù)器,是HANA的核心組件,承擔(dān)內(nèi)存管理、事務(wù)管理、元數(shù)據(jù)管理器及權(quán)限認(rèn)證、多版本并發(fā)控制等眾多管理工作。
Pre-processor Server是預(yù)處理服務(wù)器。由于HANA加入了對(duì)文本數(shù)據(jù)的特殊處理,因此需要預(yù)處理服務(wù)器分析文本數(shù)據(jù)和提取信息用于優(yōu)化文本搜索功能。
Statistics Server是匯總統(tǒng)計(jì)服務(wù)器,負(fù)責(zé)收集所有數(shù)據(jù)庫組件運(yùn)行的狀態(tài)、執(zhí)行效率和資源的消耗狀態(tài)等信息,同時(shí)還監(jiān)控HANA Studio的訪問,并返回不同的提示信息給登錄用戶。
XS Server是一個(gè)擴(kuò)展應(yīng)用服務(wù)器,可以將持久層的數(shù)據(jù)模型封裝成HTTP方式提供給外部使用,它還具有對(duì)這些發(fā)布出去的服務(wù)進(jìn)行搜索的功能,并且內(nèi)置一個(gè)應(yīng)用服務(wù)器[3]。
2.2內(nèi)存計(jì)算性能提升關(guān)鍵技術(shù)
2.2.1基于大容量?jī)?nèi)存的高效數(shù)據(jù)讀取和處理
傳統(tǒng)數(shù)據(jù)庫所依賴的磁盤讀取數(shù)據(jù)速度是毫秒級(jí),而從內(nèi)存讀取數(shù)據(jù)的速度是納秒級(jí),這使基于內(nèi)存的數(shù)據(jù)讀取速度比基于磁盤的數(shù)據(jù)讀取速度要快100萬倍。內(nèi)存數(shù)據(jù)庫能簡(jiǎn)單地將數(shù)據(jù)從磁盤移到內(nèi)存,它利用了創(chuàng)新的內(nèi)存技術(shù)來最大限度發(fā)揮多核多CPU系統(tǒng)架構(gòu)特性。傳統(tǒng)內(nèi)存計(jì)算技術(shù)下所有的CPU內(nèi)核都通過同一個(gè)前端總線來訪問內(nèi)存,在多核多CPU架構(gòu)下會(huì)出現(xiàn)數(shù)據(jù)鏈路阻塞。為解決這些問題,出現(xiàn)了快速通道互連(QPI)技術(shù)。圖2所示為一個(gè)多核多CPU架構(gòu),每個(gè)CPU集成了多個(gè)QPI通道(圖2中的①~④),用于點(diǎn)對(duì)點(diǎn)連接I/O控制器和其它CPU,實(shí)現(xiàn)快速通訊。每個(gè)CPU還配置了對(duì)應(yīng)的本地內(nèi)存,可通過內(nèi)嵌的內(nèi)存控制器直接訪問。這種內(nèi)存訪問方式稱為NUMA(非一致性內(nèi)存訪問)。
內(nèi)存數(shù)據(jù)庫專門針對(duì)多核架構(gòu)設(shè)計(jì)了并行化的數(shù)據(jù)處理,如HANA數(shù)據(jù)庫底層代碼廣泛使用了優(yōu)化并行處理的SIMD(單指令多數(shù)據(jù)流),如SSE3和SSE4等指令,使CPU盡量去訪問和計(jì)算本地內(nèi)存數(shù)據(jù),而不是從其它CPU的本地內(nèi)存中讀取數(shù)據(jù),從而更好地發(fā)揮了NUMA和QPI的優(yōu)勢(shì)[3]。
2.2.2行存儲(chǔ)和列存儲(chǔ)混合模式
行存儲(chǔ)適合于OLTP交易系統(tǒng)使用,而列存儲(chǔ)適合為OLAP分析系統(tǒng)提供支持。傳統(tǒng)數(shù)據(jù)庫是按照行方式存儲(chǔ)數(shù)據(jù)的,而內(nèi)存數(shù)據(jù)庫如HANA 既支持行存儲(chǔ)也支持列存儲(chǔ),因此可對(duì)OLTP和OLAP同時(shí)提供高效支持。通常HANA的行存儲(chǔ)用來存放和更新系統(tǒng)表,以及用于數(shù)據(jù)庫的元數(shù)據(jù)管理和應(yīng)用服務(wù)器的內(nèi)部數(shù)據(jù)管理,而列存儲(chǔ)用來保存業(yè)務(wù)數(shù)據(jù)信息,兩者各司其職。
圖3展示了一個(gè)數(shù)據(jù)庫表,表中存儲(chǔ)了商品、價(jià)格和貨幣單位3個(gè)列。在行存儲(chǔ)模式下,用戶只需要訪問價(jià)格,讀取數(shù)據(jù)要掃描所有行的所有列,順序掃描整個(gè)數(shù)據(jù)存儲(chǔ)區(qū)域,這將耗費(fèi)大量時(shí)間。而在列存儲(chǔ)模式下,價(jià)格信息都存儲(chǔ)在臨近的內(nèi)存地址,緩存的存儲(chǔ)塊如果包含了該地址的5個(gè)整型數(shù)的長度字節(jié),其它數(shù)據(jù)則基本不用讀取,讀取速度大大提高。
由此可見,使用列式存儲(chǔ)技術(shù),相鄰內(nèi)存空間存儲(chǔ)的是同一個(gè)列的數(shù)據(jù)值,可只讀取數(shù)據(jù)庫表中所需的列;使內(nèi)存控制器高速緩存的缺失次數(shù)最小化,提高了CPU緩存的命中率;能夠高效利用CPU緩存,如數(shù)據(jù)檢索和聚合都可在一個(gè)連續(xù)的內(nèi)存地址空間完成;能夠利用同列數(shù)據(jù)的重復(fù)性或相似性來提高數(shù)據(jù)的壓縮效率。列式存儲(chǔ)在數(shù)據(jù)查詢分析、統(tǒng)計(jì)運(yùn)算方面效率非常高。
2.2.3高效并行處理機(jī)制
并行處理目的是為了最大化地利用所有的計(jì)算資源,達(dá)到負(fù)載均衡,進(jìn)而支持更多的并發(fā)訪問來提升系統(tǒng)整體性能。
基于多核多CPU架構(gòu)的內(nèi)存數(shù)據(jù)庫使并行處理數(shù)據(jù)變得相對(duì)簡(jiǎn)單,因?yàn)閮?nèi)存數(shù)據(jù)庫不但可以像傳統(tǒng)數(shù)據(jù)庫的表分區(qū)那樣按行作水平分區(qū),還可以按列作垂直分區(qū),這意味著不同行和不同列的數(shù)據(jù)都可以輕松進(jìn)行并行處理。如圖4所示,“銷售數(shù)量”這一列的數(shù)據(jù)按垂直分區(qū)分布到了服務(wù)器A的CPU內(nèi)核A來處理;而對(duì)于“折扣”這一列,可以按水平分區(qū)將大于等于0.90的數(shù)據(jù)分布給服務(wù)器A的CPU內(nèi)核C,其它分布給服務(wù)器B的CPU內(nèi)核D處理,這種并行處理對(duì)開發(fā)人員來說是透明的。
3利用融合建模技術(shù)提高數(shù)據(jù)模型性能
數(shù)據(jù)建模是數(shù)據(jù)中心建設(shè)的關(guān)鍵,建模技術(shù)直接影響數(shù)據(jù)的處理性能?;趦?nèi)存計(jì)算技術(shù)的數(shù)據(jù)中心平臺(tái)提供了更多更高效的建模方式,有助于提高數(shù)據(jù)處理能力。
3.1數(shù)據(jù)中心數(shù)據(jù)架構(gòu)
一個(gè)完整的企業(yè)數(shù)據(jù)中心數(shù)據(jù)架構(gòu)包括持續(xù)數(shù)據(jù)加載層、企業(yè)數(shù)據(jù)倉庫層、架構(gòu)式數(shù)據(jù)庫層、語義層和應(yīng)用層[4],如圖5所示。
(1)持續(xù)數(shù)據(jù)加載層PSA(Persistent Staging Area)用于存儲(chǔ)源系統(tǒng)準(zhǔn)確、詳細(xì)的業(yè)務(wù)數(shù)據(jù),相當(dāng)于源系統(tǒng)數(shù)據(jù)的一個(gè)副本。這些數(shù)據(jù)通過清洗轉(zhuǎn)換,加載到企業(yè)數(shù)據(jù)倉庫層,這些數(shù)據(jù)還可為運(yùn)營報(bào)告和數(shù)據(jù)挖掘提供比數(shù)據(jù)倉庫層更細(xì)顆粒度的數(shù)據(jù)支持[5]。
(2)企業(yè)數(shù)據(jù)倉庫層是將數(shù)據(jù)按照數(shù)據(jù)規(guī)范和技術(shù)規(guī)范統(tǒng)一化、標(biāo)準(zhǔn)化,按主題分門別類重新存放,數(shù)據(jù)覆蓋整個(gè)企業(yè)的范圍,具有集成、準(zhǔn)確和完整特征,可支持企業(yè)運(yùn)營決策和數(shù)據(jù)挖掘。企業(yè)數(shù)據(jù)倉庫層通常以關(guān)系數(shù)據(jù)庫作為平臺(tái),本文研究中采用SAP HANA。
(3)架構(gòu)式數(shù)據(jù)庫層是將數(shù)據(jù)按照維度和業(yè)務(wù)數(shù)據(jù)的度量構(gòu)建成數(shù)據(jù)立方體。數(shù)據(jù)立方體是一個(gè)可從多個(gè)角度探索和分析數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),是支撐商務(wù)智能分析的主要數(shù)據(jù)模型。架構(gòu)式數(shù)據(jù)庫層以O(shè)LAP為平臺(tái),本文采用的是SAP BW。
(4)語義層面向業(yè)務(wù)人員,它用直白的業(yè)務(wù)術(shù)語將數(shù)據(jù)立方體、關(guān)系數(shù)據(jù)庫的庫表甚至XML和Web Service數(shù)據(jù)展現(xiàn)出來,使復(fù)雜的數(shù)據(jù)源有統(tǒng)一的訪問方式和易于業(yè)務(wù)理解的展現(xiàn)方式,為業(yè)務(wù)人員提供自助性訪問和分析數(shù)據(jù)的能力。本文語義層采用SAP Universe。
(5)應(yīng)用層主要是BI前端展現(xiàn)工具以及基于這些工具開發(fā)的業(yè)務(wù)應(yīng)用。本文應(yīng)用層采用SAP BO商務(wù)智能軟件。
數(shù)據(jù)分析模型構(gòu)建是企業(yè)數(shù)據(jù)中心建設(shè)最為核心的工作。傳統(tǒng)的方法主要是在架構(gòu)式數(shù)據(jù)庫層用數(shù)據(jù)立方體來構(gòu)建數(shù)據(jù)分析模型。隨著內(nèi)存數(shù)據(jù)庫的出現(xiàn),數(shù)據(jù)模型的構(gòu)建方式也有了新的改變。內(nèi)存數(shù)據(jù)庫的技術(shù)特性使其既可作為OLTP使用,也可作為OLAP使用?;趦?nèi)存數(shù)據(jù)庫構(gòu)建的數(shù)據(jù)倉庫層,可同時(shí)用于構(gòu)建數(shù)據(jù)分析模型,帶來全新的技術(shù)優(yōu)勢(shì)和用戶體驗(yàn)。
3.2兩種數(shù)據(jù)建模方式
3.2.1基于數(shù)據(jù)立方體的建模方式
數(shù)據(jù)立方體是架構(gòu)式數(shù)據(jù)庫層的數(shù)據(jù)模型,組成的要素是維度和業(yè)務(wù)數(shù)據(jù)的度量。以商品銷售為例,將時(shí)間、客戶、商品作為維度,以銷售數(shù)量、銷售價(jià)格和銷售金額作為度量,構(gòu)建一個(gè)商品銷售分析的立方體數(shù)據(jù)模型。
SAP BW是一個(gè)架構(gòu)式數(shù)據(jù)庫平臺(tái),如圖6所示。它除了支持通常的數(shù)據(jù)模型功能外,還具有以下特性:
(1)數(shù)據(jù)立方體可通過語義層的Universe映射成面向業(yè)務(wù)模型。Universe是SAP BO的核心專利技術(shù),隱蔽了基本數(shù)據(jù)源的復(fù)雜性,用戶可通過業(yè)務(wù)語言來實(shí)現(xiàn)數(shù)據(jù)的表達(dá),是業(yè)務(wù)人員自主創(chuàng)建數(shù)據(jù)分析應(yīng)用的基礎(chǔ)[5]。
(2)數(shù)據(jù)立方體除支持標(biāo)準(zhǔn)的MDX訪問外,還提供了SAP自有的Query訪問。Query是SAP的一項(xiàng)簡(jiǎn)單報(bào)表工具,可通過圖形化界面的拖拉操作生成查詢。Query的數(shù)據(jù)源不僅支持關(guān)系數(shù)據(jù)庫庫表,還支持?jǐn)?shù)據(jù)立方體。Query生成的查詢實(shí)際就是數(shù)據(jù)源的一個(gè)帶查詢條件的數(shù)據(jù)子集,這個(gè)數(shù)據(jù)子集既可提供給普通的查詢和報(bào)表使用,也可提供給SAP BI工具作數(shù)據(jù)分析使用[6]。
(3)數(shù)據(jù)立方體是基于關(guān)系型數(shù)據(jù)庫建立的,每個(gè)立方體在關(guān)系數(shù)據(jù)庫有對(duì)應(yīng)的維度表和事實(shí)表,這些維度表和事實(shí)表對(duì)用戶開放,SQL可直接訪問,為快速響應(yīng)查詢提供了一條直接有效的途徑。
3.2.2基于內(nèi)存數(shù)據(jù)庫的建模方式
內(nèi)存數(shù)據(jù)庫HANA提供了基于列存儲(chǔ)的虛擬模型來支持?jǐn)?shù)據(jù)建模,能在企業(yè)數(shù)據(jù)倉庫層實(shí)現(xiàn)類似數(shù)據(jù)立方體的數(shù)據(jù)模型。數(shù)據(jù)立方體通常將數(shù)據(jù)倉庫的細(xì)顆粒度數(shù)據(jù)按維度聚合,生成的結(jié)果集保存在數(shù)據(jù)模型中。而虛擬模型與數(shù)據(jù)立方體的本質(zhì)區(qū)別在于它只是HANA的列視圖,無需保存數(shù)據(jù)。只有當(dāng)發(fā)出查詢請(qǐng)求時(shí),才從數(shù)據(jù)庫表的細(xì)顆粒度數(shù)據(jù)中進(jìn)行聚合計(jì)算,實(shí)時(shí)生成計(jì)算結(jié)果集。由于內(nèi)存數(shù)據(jù)庫的性能優(yōu)勢(shì),這種計(jì)算能夠瞬時(shí)完成,避免在數(shù)據(jù)模型中保存冗余數(shù)據(jù)。HANA動(dòng)態(tài)聚合如圖7所示[3]。
HANA工作臺(tái)提供了圖形化的建模工具。雖然建模結(jié)果就是生成列視圖,但HANA仍然提供了多個(gè)不同的建模對(duì)象,用于實(shí)現(xiàn)不同復(fù)雜度的分析需求。包括屬性視圖用于建立維度,分析視圖用于建立度量,分析權(quán)限提供安全控制,計(jì)算視圖可以使用比較復(fù)雜的SQL進(jìn)行數(shù)據(jù)處理,或?qū)⒉煌臄?shù)據(jù)模型合并成一個(gè)新的數(shù)據(jù)模型。
虛擬數(shù)據(jù)模型架構(gòu)如圖8所示,特點(diǎn)如下:
(1)虛擬模型與數(shù)據(jù)立方體一樣,可以使用MDX直接訪問,這是多維數(shù)據(jù)分析的標(biāo)準(zhǔn)方式。
(2)虛擬模型可通過語義層訪問。語義層除了使用Universe外,還可使用Information Space(信息空間),將虛擬模型映射成面向業(yè)務(wù)的模型。信息空間是SAP另一種語義層技術(shù),它是面向分析主題的信息集合,可對(duì)虛擬模型的多維數(shù)據(jù)集進(jìn)行封裝過濾,與分析主題相關(guān)的內(nèi)容才能使用[3]。
(3)虛擬模型可以映射為BW的數(shù)據(jù)立方體,除支持標(biāo)準(zhǔn)的MDX訪問外,還可將虛擬模型映射到BW Virtual Provider,通過SAP自有的Query訪問。
(4)虛擬模型是HANA的列視圖,其數(shù)據(jù)存儲(chǔ)在相應(yīng)的數(shù)據(jù)庫表中,這些數(shù)據(jù)庫表可由SQL直接訪問。但由于虛擬模型并不存儲(chǔ)聚合計(jì)算結(jié)果,因此這種訪問方式意義不大,僅僅為不熟悉MDX的用戶提供了另一種選擇。
3.3融合建模
以上兩種建模方式,各有其優(yōu)缺點(diǎn)和適用性,下面以BW和HANA為實(shí)現(xiàn)平臺(tái)進(jìn)行分析比較。
3.3.1基于數(shù)據(jù)立方體的建模方式
BW建模優(yōu)點(diǎn):①為數(shù)據(jù)建模提供支持。例如提供了現(xiàn)成的數(shù)據(jù)模型可以激活即用,提供現(xiàn)成的數(shù)據(jù)對(duì)象便于進(jìn)行數(shù)據(jù)分析,提供會(huì)計(jì)年度和會(huì)計(jì)期間的時(shí)間特性支持財(cái)務(wù)數(shù)據(jù)分析,能定義依賴時(shí)間的維度層次結(jié)構(gòu)來支持隨時(shí)間改變的屬性和特性;②匯總和聚合的結(jié)果保存在數(shù)據(jù)模型中,在數(shù)據(jù)分析時(shí)不需要大量計(jì)算,這種以空間換時(shí)間的方式可以獲得數(shù)據(jù)分析性能的提高;③數(shù)據(jù)模型提供了有效的數(shù)據(jù)質(zhì)量保障機(jī)制,在數(shù)據(jù)加載到模型時(shí)會(huì)進(jìn)行嚴(yán)格審查,從而保證模型中數(shù)據(jù)的規(guī)范性和準(zhǔn)確性。
BW建模缺點(diǎn):①數(shù)據(jù)建模處在架構(gòu)數(shù)據(jù)庫層,模型的數(shù)據(jù)存儲(chǔ)在企業(yè)數(shù)據(jù)倉庫層的關(guān)系數(shù)據(jù)庫上,這種跨兩個(gè)層次的結(jié)構(gòu)降低了數(shù)據(jù)模型的性能;②數(shù)據(jù)立方體模型存儲(chǔ)空間是幾何級(jí)數(shù)增長的,不適用于分析業(yè)務(wù)的明細(xì)數(shù)據(jù),因?yàn)檫@些數(shù)據(jù)的數(shù)量本身就很大,加載到模型后變得更加龐大,往往導(dǎo)致訪問性能急劇下降;③模型做聚合計(jì)算時(shí)不能提供數(shù)據(jù)服務(wù),所以需要安排專門的時(shí)間窗口來處理。
3.3.2基于內(nèi)存數(shù)據(jù)庫的建模方式
HANA建模優(yōu)點(diǎn):①模型和數(shù)據(jù)存儲(chǔ)都處于企業(yè)數(shù)據(jù)倉庫層,可發(fā)揮內(nèi)存數(shù)據(jù)庫超強(qiáng)的計(jì)算能力,同時(shí)也利用了HANA中各類優(yōu)化器和引擎提供的支持,性能優(yōu)異;②數(shù)據(jù)模型不會(huì)另外存儲(chǔ)數(shù)據(jù),不會(huì)出現(xiàn)存儲(chǔ)空間的暴增和訪問性能的急劇下降;③聚合值動(dòng)態(tài)實(shí)時(shí)計(jì)算,即使業(yè)務(wù)數(shù)據(jù)發(fā)生更新,聚合值也能與更新數(shù)據(jù)始終保持一致,不需要為數(shù)據(jù)模型的聚合計(jì)算安排專門的時(shí)間窗口。
HANA建模缺點(diǎn):①用于建模的數(shù)據(jù)沒有BW豐富,處理與時(shí)間相關(guān)的屬性和特征較麻煩;②支持這種模型的BI軟件相對(duì)較少。
BW on HANA是BW遷移到HANA上的產(chǎn)品,其HANA架構(gòu)已經(jīng)融合了BW的許多功能,例如數(shù)據(jù)建模、數(shù)據(jù)管理和分析/計(jì)劃引擎等,如圖9所示。它同時(shí)支持上述兩種建模方式,帶來了一種新的建模思路,就是將兩種建模方式融合起來,混合使用,可將其稱為融合建模方式。
(1) 建模原則。①為提升數(shù)據(jù)分析性能,應(yīng)優(yōu)先選擇內(nèi)存數(shù)據(jù)庫建模,尤其是需要大量業(yè)務(wù)明細(xì)數(shù)據(jù)的分析場(chǎng)合;②需要用到諸如與時(shí)間相關(guān)的屬性和特性的應(yīng)用,應(yīng)采用BW的數(shù)據(jù)立方體建模;③對(duì)于僅支持?jǐn)?shù)據(jù)立方體建模的BI軟件應(yīng)用,應(yīng)采用BW的數(shù)據(jù)立方體建模。
(2)兩種模型數(shù)據(jù)統(tǒng)一加工。BW on HANA繼承了BW的數(shù)據(jù)加工方式。原始數(shù)據(jù)首先通過ETL工具抽取到PSA,經(jīng)過加工進(jìn)入到企業(yè)數(shù)據(jù)倉庫層。這些數(shù)據(jù)是數(shù)據(jù)立方體建模和內(nèi)存數(shù)據(jù)庫建模的基礎(chǔ)數(shù)據(jù),基于統(tǒng)一的數(shù)據(jù)加工過程生成。在這個(gè)基礎(chǔ)上,BW通過數(shù)據(jù)傳輸進(jìn)程和轉(zhuǎn)換,將數(shù)據(jù)倉庫的數(shù)據(jù)加工并加載到數(shù)據(jù)立方體,HANA則是將數(shù)據(jù)倉庫的數(shù)據(jù)通過列視圖映射到虛擬模型。這個(gè)統(tǒng)一的數(shù)據(jù)加工過程保證了兩種建模方式的數(shù)據(jù)一致性。
(3) 兩種模型數(shù)據(jù)的統(tǒng)一訪問。數(shù)據(jù)立方體和虛擬模型都支持MDX和Query的訪問方式,需要將兩種模型數(shù)據(jù)混合使用時(shí),可以通過在語義層建立Universe,將兩種模型數(shù)據(jù)整合到一個(gè)語義模型里,實(shí)現(xiàn)數(shù)據(jù)的統(tǒng)一訪問,如圖10所示。
4性能測(cè)試結(jié)果
通過內(nèi)存計(jì)算技術(shù)、數(shù)據(jù)建模技術(shù)和應(yīng)用優(yōu)化技術(shù),可以實(shí)現(xiàn)數(shù)據(jù)中心性能提升。通過性能測(cè)試來檢驗(yàn)效果,從平臺(tái)性能和應(yīng)用性能兩個(gè)層次進(jìn)行性能測(cè)試。
4.1平臺(tái)性能測(cè)試
數(shù)據(jù)中心平臺(tái)性能測(cè)試采用TPC-H測(cè)試規(guī)范,在10G測(cè)試數(shù)據(jù)上運(yùn)行TPC-H的標(biāo)準(zhǔn)Select語句,得出表1的測(cè)試記錄,經(jīng)過計(jì)算,得出此次HANA測(cè)試的最終性能分?jǐn)?shù)QphH@10G為26842.03。
根據(jù)TPC官網(wǎng)發(fā)布的資料,將IBM DB2、MS SQL Server在性能相近的硬件平臺(tái)上的性能測(cè)試與HANA的測(cè)試結(jié)果進(jìn)行對(duì)比(見表2),可以明顯看到HANA的性能優(yōu)勢(shì)。
4.2應(yīng)用性能測(cè)試
應(yīng)用性能測(cè)試通過測(cè)試用例進(jìn)行,模擬200個(gè)用戶在線訪問,從系統(tǒng)中選取多個(gè)復(fù)雜、中等、簡(jiǎn)單等級(jí)的查詢頁面進(jìn)行測(cè)試。從結(jié)果可以看到,最慢的頁面加載時(shí)間在5秒之內(nèi),測(cè)試結(jié)果見表3。
查詢復(fù)雜度標(biāo)準(zhǔn)為:簡(jiǎn)單指查詢1~3個(gè)數(shù)據(jù)模型或數(shù)據(jù)庫表;中等指同時(shí)查詢3~8個(gè)數(shù)據(jù)模型或數(shù)據(jù)庫表;復(fù)雜指同時(shí)查詢8個(gè)以上數(shù)據(jù)模型或數(shù)據(jù)庫表。
5結(jié)語
本文基于內(nèi)存計(jì)算技術(shù)的高性能數(shù)據(jù)中心研究,在一定程度上解決了海量數(shù)據(jù)造成的數(shù)據(jù)分析性能下降、業(yè)務(wù)決策支撐手段不足的問題,為實(shí)現(xiàn)有效的數(shù)據(jù)集成和信息共享、提高企業(yè)管理和生產(chǎn)經(jīng)營效率具現(xiàn)實(shí)意義。當(dāng)前,大數(shù)據(jù)處理技術(shù)日漸成熟,如何進(jìn)一步利用內(nèi)存計(jì)算高性能技術(shù),通過大數(shù)據(jù)分析幫助業(yè)務(wù)部門快速解讀數(shù)據(jù),通過大數(shù)據(jù)挖掘?yàn)闃I(yè)務(wù)決策提供依據(jù),仍將是下一步需要研究的熱點(diǎn)。
參考文獻(xiàn)參考文獻(xiàn):
[1]趙剛.大數(shù)據(jù)技術(shù)與應(yīng)用實(shí)踐指南[M].北京:電子工業(yè)出版社,2014.
[2]尹東升,陳磊,周斌.跟我學(xué)SAP HANA[M].北京:清華大學(xué)出版社,2014.
[3]劉剛,舒戈.SAP HANA實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014.
[4]SAP BI——建模與實(shí)施[Z].培訓(xùn)教材.
[5]CINDI HOWSON,ELIZABETH NEWBOULD.SAP business objects BI 4.0完全參考手冊(cè)[M].第3版.北京:清華大學(xué)出版社,2015.
[6]張俊.SAP BW/BO實(shí)戰(zhàn)指南——像學(xué)習(xí)Office一樣學(xué)習(xí)BW/BO[M].北京:機(jī)械工業(yè)出版社,2015.
責(zé)任編輯(責(zé)任編輯:杜能鋼)