對海量數(shù)據(jù)進行實時分析處理,一直是數(shù)據(jù)倉庫、OLTP/OLAP、商業(yè)智能等領(lǐng)域的軟件廠商所普遍關(guān)心的課題。前不久,SAP推出了一款面向?qū)崟r商業(yè)智能領(lǐng)域的高性能分析應(yīng)用軟件(SAP High-Performance Analytic Appliance ,簡稱SAP HANA)。其中,受到業(yè)界廣泛關(guān)注的是,SAP HANA采用了以往大家很少聽說過的“內(nèi)存計算(In-Memory Computing)”技術(shù)。而且在IBM、戴爾等廠商推出的HANA解決方案中,無一例外地使用了基于英特爾至強E7平臺的服務(wù)器。
下面我們來分析一下,到底什么是內(nèi)存計算,它在企業(yè)級關(guān)鍵業(yè)務(wù)領(lǐng)域有著怎樣的應(yīng)用前景,然后看看英特爾至強E7為什么能夠很好地支持這類應(yīng)用,從而一起為海量數(shù)據(jù)實時處理打造一條寬廣的“高速公路”。
1 內(nèi)存計算:對海量數(shù)據(jù)進行實時處理
今天,許多企業(yè)已經(jīng)面臨越來越多的數(shù)據(jù)要處理,而且對這些數(shù)據(jù)需要進行實時的分析。為此,SAP一直在重新構(gòu)想數(shù)據(jù)倉庫的運行模式,并提出了內(nèi)存計算的理念。那么什么是內(nèi)存計算呢,我們不妨從兩個角度來理解。
首先,從計算存儲技術(shù)的角度看,由于服務(wù)器在處理數(shù)據(jù)時,CPU首先會從其緩存中找數(shù)據(jù),緩存中找不到,再從內(nèi)存中找,內(nèi)存里沒有,再從硬盤上讀取。在傳統(tǒng)數(shù)據(jù)庫查詢中,磁盤訪問時間是一個主要的瓶頸。研究發(fā)現(xiàn),如果讓查詢在讀寫速度快很多倍的內(nèi)存中進行,而不用訪問物理磁盤,將會大大提升處理性能。試想一下,對于商業(yè)智能應(yīng)用而言,由于數(shù)據(jù)庫一般都較大,少則幾個GB,多則成百上千個GB,如果把整個數(shù)據(jù)庫都搬到內(nèi)存中去運行,又會怎樣呢?
因此,所謂“內(nèi)存計算”,實質(zhì)上就是CPU直接從內(nèi)存而不是硬盤上讀取數(shù)據(jù),進行計算、分析,是對傳統(tǒng)數(shù)據(jù)處理方式的一種加速。內(nèi)存計算非常適合處理海量的數(shù)據(jù),以及需要實時獲得結(jié)果的數(shù)據(jù),比如可以將一個企業(yè)近十年幾乎所有的財務(wù)、營銷、市場等各方面的數(shù)據(jù)一次性地保存在內(nèi)存里,并在此基礎(chǔ)上進行數(shù)據(jù)的分析。當企業(yè)需要做快速的賬務(wù)分析,或要對市場進行分析時,內(nèi)存計算就能夠快速的按照需求完成。
其次,從應(yīng)用的角度來看,在商業(yè)智能方案中,在線交易處理(OLTP)和在線分析處理(OLAP)是兩種不同的應(yīng)用,其中OLTP系統(tǒng)需要對發(fā)生的業(yè)務(wù)進行實時記錄,因此要處理的是大量簡單、小規(guī)模、同時發(fā)生的交易;而OLAP系統(tǒng)是對OLTP提供的數(shù)據(jù)進行分析,以支持業(yè)務(wù)決策,因此處理的交易數(shù)量相對較少,但更為復(fù)雜。使用內(nèi)存計算的SAP HANA的交易型和分析型引擎能夠同時應(yīng)對這兩種應(yīng)用,內(nèi)存計算技術(shù)實際上是把現(xiàn)在交易型的數(shù)據(jù)庫和分析型的數(shù)據(jù)庫合并為一個內(nèi)存數(shù)據(jù)庫,其結(jié)構(gòu)如下圖所示:
談到SAP HANA的具體應(yīng)用場景,SAP中國區(qū)首席技術(shù)官張俠曾對媒體舉過這樣一個例子:航空公司。航空公司的主要特點就是信息量大,且有很多實時信息,一般會有這樣兩個系統(tǒng):一是客戶相關(guān)的系統(tǒng),里面有各種客戶的信息,如誰是金卡會員,誰希望坐在靠窗或者靠走道的座位,商務(wù)旅客與私人休閑旅客的不同偏好等等;另一個是定票系統(tǒng),定票系統(tǒng)會把每個航班對應(yīng)的飛機型號、座位數(shù)量、飛機維修、天氣等等信息綜合在一起。高速的內(nèi)存計算技術(shù)能夠綜合所有以上這些情況,根據(jù)不同場景進行更好的匹配。比如,利用高速分析的能力對航班晚點的情況進行調(diào)配,通過分析發(fā)現(xiàn)某些型號的飛機可以在某個飛機轉(zhuǎn)場。這樣就能把天氣等各種影響降至最低,使客戶盡可能坐在他喜歡坐的位置上,并設(shè)計好定價策略做到既能滿足客戶的需求,又能為航空公司帶來更好效益。
據(jù)了解,SAP BusinessObjects戰(zhàn)略性人力規(guī)劃是HANA中的第一款新產(chǎn)品,使企業(yè)管理者可以實時模擬相關(guān)業(yè)務(wù)場景,快速分析復(fù)雜數(shù)據(jù)關(guān)系并審視被建議的組織結(jié)構(gòu)調(diào)整對企業(yè)業(yè)務(wù)產(chǎn)生的影響。企業(yè)管理者和人力資源高管可以使用預(yù)測性建模功能模擬企業(yè)人員總數(shù)需怎樣增長、人員配置應(yīng)如何變化等,這使他們能就人員配置或調(diào)整做出基于數(shù)據(jù)的明智決策,尤其是在企業(yè)一項收購行為完成以后或者是當企業(yè)要進入一個新市場領(lǐng)域的時期。
2 X86服務(wù)器如何滿足內(nèi)存計算需求
通過上面的分析,我們知道,為優(yōu)化海量數(shù)據(jù)實時處理的內(nèi)存計算模式對于底層服務(wù)器提出了更高的要求:CPU夠不夠快?內(nèi)存夠不夠大?系統(tǒng)夠不夠穩(wěn)定可靠?實際上,英特爾與SAP早在10多年前就已經(jīng)開始合作,不斷共同推動IA架構(gòu)服務(wù)器上SAP應(yīng)用的性能。下面我們就來看看最新的英特爾至強E7又是如何針對SAP HANA進行優(yōu)化的。
2.1 處理器的性能
早期處理器性能的提升主要依賴于主頻的提高,即CPU在每個時鐘周期內(nèi)可以執(zhí)行更多的指令。但由于能耗與散熱條件的限制,這種方法在2005年左右碰到了障礙。于是業(yè)界開始轉(zhuǎn)向多核處理器的設(shè)計,即每個處理器內(nèi)包含多個相互獨立的計算內(nèi)核。在多核處理器之前,英特爾開發(fā)了超線程技術(shù),允許一個處理內(nèi)核可以在同一時間執(zhí)行兩條指令線程,從而更好地利用CPU的片上資源。今天,多核、多線程、高可擴展的SMP架構(gòu),為x86服務(wù)器奠定了運行SAP應(yīng)用的基礎(chǔ)。
與上一代至強7500相比,至強E7的內(nèi)核數(shù)量由8核(16線程)增加到了10核(20線程);同時得益于QPI總線架構(gòu),基于至強E7的服務(wù)器可以從雙路擴展到四路、八路,直至256路。這些技術(shù)進步使得SAP HANA可以在單一系統(tǒng)內(nèi)獲得更多的計算資源,其性能指標可以隨硬件升級而線性擴展,用戶甚至可以通過部署1000以上內(nèi)核的系統(tǒng)實現(xiàn)更復(fù)雜的實時分析。
2.2 內(nèi)存的性能
對于SAP內(nèi)存計算應(yīng)用來說,內(nèi)存子系統(tǒng)的性能是否強壯顯得非常重要。一方面,64位操作系統(tǒng)的普及,使得今天的x86服務(wù)器內(nèi)存可以超過32位的4個GB,理論上達到幾乎無限制的18 Exabyte(即180億GB);另一方面,隨著平臺技術(shù)的發(fā)展,以及每GB內(nèi)存價格的下降,服務(wù)器系統(tǒng)內(nèi)存容量越來越大。今天服務(wù)器的內(nèi)存容量已經(jīng)可以用TB來計算,每1TB即1000GB。
具體到至強E7來看,則主要通過大容量緩存、更高內(nèi)存帶寬、以及更大容量的內(nèi)存來滿足這一需求。比如,至強7500的三級緩存是24MB,至強E7達到了30MB,這使得SAP HANA應(yīng)用中,CPU計算內(nèi)核可以直接從緩存中讀取更多的數(shù)據(jù),訪問速度因此更快。在內(nèi)存方面,以四路服務(wù)器為例,至強7500系統(tǒng)可以支持16GB內(nèi)存條,最大內(nèi)存容量為1TB,而至強E7系統(tǒng)可以支持32GB的內(nèi)存條,系統(tǒng)內(nèi)存容量擴大到2TB。
當然,在SAP HANA應(yīng)用中,快速的I/O也很關(guān)鍵,至強E7通過QPI互連總線,大大提高CPU與內(nèi)存之間、CPU與CPU之間以及節(jié)點之間的數(shù)據(jù)傳輸速率,降低延遲。
2.3 高可用性
面向海量數(shù)據(jù)進行實時分析的系統(tǒng),其對穩(wěn)定可靠性的要求是不言而喻的。在這方面,新的至強E7服務(wù)器平臺在安全可靠性(RAS)方面也提供了更多的支持。比如Double Device Data Correction(DDDC)就對SAP HANA非常有用,允許當內(nèi)存同時出現(xiàn)兩個錯誤時,也可以恢復(fù)。又比如Machine Check Architecture Recovery(MCA Recovery)技術(shù)使得SAP HANA可以與操作系統(tǒng)一起,從許多無法糾正的內(nèi)存錯誤中恢復(fù),在許多場合下可以不用停機就能恢復(fù)數(shù)據(jù)。在至強E7中,類似這樣的RAS技術(shù)還有20多條。
在一個針對32億條POS機銷售記錄的復(fù)雜模型中,英特爾與SAP進行了聯(lián)合測試,測試表明,跟上一代的至強7500相比,至強E7的性能提高了1.37倍。另外,同樣基于至強E7平臺,英特爾超線程技術(shù)性能提升1.21倍,NUMA技術(shù)提供1.07倍,睿頻加速(Turbo Boost)技術(shù)性能提升1.04倍,如下圖所示:
3 內(nèi)存計算的前景展望
據(jù)了解,在SAP HANA的研發(fā)過程中,得到了IBM、惠普、思科、富士通、英特爾等硬件廠商的支持,同時也有可口可樂(希臘)、未來集團(Future Group)、喜利得(Hilti)在參與。比如喜利得(Hilti)是一家為全球建筑市場提供設(shè)備和技術(shù)的企業(yè),擁有2萬名員工,其中三分之二直接從事與客戶打交道的銷售與工程工作,因此每天會發(fā)生超過20萬次客戶接觸。通過SAP HANA,該公司將交易與分析系統(tǒng)進行了融合,在早期測試中,搜索和分析5300萬條客戶數(shù)據(jù)記錄的時間從原來的2-3個小時,降低到了2-3秒。
許多服務(wù)器廠商也已經(jīng)推出了基于英特爾至強E7處理器的服務(wù)器,并針對SAP HANA開發(fā)了相應(yīng)的解決方案,如IBM的x3690 x5、x3850 x5服務(wù)器,戴爾的PowerEdge R910服務(wù)器等。IBM宣稱,其SAP HANA工作負載優(yōu)化方案可以使基于SAP的ERP數(shù)據(jù)分析應(yīng)用達到每秒處理1.3TB的數(shù)據(jù)量,以及每小時進行10000次復(fù)雜的組合查詢分析報告。
未來,隨著新型內(nèi)存技術(shù)如相變內(nèi)存(Phase Change Memory,PCM)、英特爾虛擬化技術(shù)、硬件圖形加速技術(shù)、更多CPU內(nèi)核技術(shù)的發(fā)展,以及內(nèi)存價格越來越低,內(nèi)存計算想必會為我們在做數(shù)據(jù)挖掘與分析、商業(yè)智能分析時提供一條更寬、更廣、更快捷的“高速公路”。