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