略過巡覽連結首頁 > 產業觀察

產業觀察

大量資料分析運算的趨勢-In Memory Computing

作者/侯景勛

[發表日期:2013/9/5]前言

IBM研究員Hans Peter Luhn在1958年的一篇文章中,提出了他對Business intelligence(BI;商業智慧系統)的解釋,認為BI是”了解既有的事實中的交互關係,進而中發掘出前往目標的方法”。Gartner Group的Howard Dresner也在1989年提出了現在常見的BI定義,就是”利用既有的事實資料,來改進商業決策的方法與概念”。

隨著各種商業模式的快速汰舊換新,企業更需要以更精準與更快速的方式,比別人快一步將資料(Data)轉換成資訊(Information),才能找出新的商業模式,開創尚未被開發之全新市場、創造獨一無二價值。


《圖一》


大量資料分析運算的趨勢-In Memory Computing

隨著網路的蓬勃發展,與各種終端行動裝置的廣泛流行,非結構化的資料數據有了驚人的成長。Gartner預估在未來五年內,企業資料將會以650%的速度成長。資料數據包含了傳統的資料來源(如銷售分析,各式紀錄等),與非傳統的資料來源(如E-mail,網頁內容,文件檔案等)。企業想要從這麼大量的資料中,發掘出真正有用的資料,在現在常見的IT環境中,常覺得力有未逮。

客戶在使用商業智慧系統時,常會面臨到的問題有:
  • 資料處理速度的不足,無法在時限內完成

  • 資料量龐大,先將資料合併整合(aggregate)而造成了樣本的細緻性不足

  • 資料分析的即時性不夠,需等待很長的時間

  • 不易分析從各種不同型態的資料

In Memory Computing(IMC),顧名思義,就是一種將傳統在AP Server、DB Server、儲存設備間的資料交換與運算的過程,改為都是在記憶體裏面完成。特別是在有大量需要分析資料的環境,可將某些原本需要花費數小時才能運算出來的結果,被壓縮在幾分鐘或幾秒鐘內就可以完成,並透過網路或雲端服務等方式,將這些運算出來的結果,以即時或接近即時的速度提供給使用者進行分析,並進而從這些事件,了解彼此間的交互關係與影響,從中了解到潛在的商機或威脅,並進而能計劃相對應的商業模式,提高企業的競爭力。

為了能達成上面的目標,In Memory Computing主要的設計組成概念有:
  • 將資料存放在記憶體中以加快處理的速度

  • 透過壓縮技術減少資料量

  • 減少資料的移動,僅搬移運算後的結果,而非搬移資料去運算

  • 利用多核心的處理器,提高處理效率


傳統的AP-DB Server架構上,AP Server必需透過乙太網路到DB Server去讀取資料,而DB Server再透過儲存網路(SAN, iSCSI or NAS),將儲存設備內磁碟機的資料讀取後再反向傳遞回去。在這整個流程間有幾個顯而易見的效能危機:

一個是AP Server與DB Server是透過乙太網路來傳輸資料,一旦網路流量的負荷增加、設備的負荷也增加,延遲也就跟著增加,且尚需加上其他的風險,如網路風暴、設備故障等。

二是儲存設備中的I/O往往是資料庫效能的瓶頸,受限於磁碟機的機械運作,一般15K的光纖或SAS硬碟每顆約只有150~200 IOPS左右,若是有高I/O需求的資料庫,解決問題的方式只有增加磁碟機與儲存設備的數量,並加上各式的Cache機制與SSD磁碟來提昇效率,但也相對提高的管理上的負擔。

我們從整體的資料運算方式來分析,伺服器在處理資料時,CPU從其內建成Cache找資料,找不到再到下一層的記憶體內找,記憶體內沒有,再從硬碟裏讀取。透過In-Memory Computing的方式,查詢的過程都在高速記憶體內執行,不用再去讀取硬碟機,省去了應用程式(AP)<->伺服器<->路由器<->交換器<->儲存設備<->硬碟機之間的資料交換,減少了許多網路與I/O的影響,也大幅的提昇了可以處理的資料量與處理的速度。

從實務應用的角度來看,在商業智慧系統中,OLTP(On-Line Transaction Processing)系統主要是處理當業務發生的過程而產生的既時資料,特性為資料檔案龐大、交易數量頻繁,但規模較小; 而OLAP(On-Line Analytical Processing)系統則是負責提供即時的、快速的,提供整合性的決策資訊,將來自OLTP的資料進行分析,因此處理的交易數量雖相對較少,但更為複雜。新一代的運算架構再可以整合OLAP與OLTP到同一架構平台中,加上In-Memory Computing技術,就可以同時滿足 OLAP 系統最需要的讀取速度,與OLTP 系統最需要的寫入速度。在商業智慧系統的應用中,一般而言資料庫的資料量都很大,往往都是從數GB到數TB。如果將企業內幾十年的市場、銷售、客戶資料都全部放在記憶體中進行分析,當企業需要做商業行為、銷售模式、客戶屬性等分析時,除了能快速的提供資料外,因呈現出來的數據的週期較完整,會與原本因時效上的需求而壓縮分析的資料量有不同的參考價值。

比起傳統的架構,In-Memory Computing需要的費用較高,也因此這樣的概念雖然之前就有人提出,但由於記憶體的價格高昂等因素而未能廣泛的進入IT架構的選項之中。所以在如新商業行為分析、電信產業、軍隊、線上娛樂、倉儲等這些對新科技需求與接受度較高的行業之中比較容易看到。但隨著技術的成熟與進步,多核心CPU的不停演進,記憶體價格的不停下降,佐以AP程架構的不斷演進下,In-Memory Computing技術的採用已經越來越向主流靠近。Gartner預估在2016年,將會有35%的中大型機構採用這樣的運算方式。

在硬體方面,以目前的x86伺服器端為例,多核心的CPU已經是主流,有些機型如HP DL980 G7,可安裝8顆10核心的CPU與4TB的記憶體; 而Unix伺服器如Oracle M5-32更可擴充達32顆CPU與32TB的記憶體。儲存設備大廠也因應這樣的趨勢,推出搭載全SSD的儲存設備,如EMC的XtremIO,Netapp EF540,讓客戶有更多樣的選擇。

在軟體方面,市場上主流的資料庫系統,如Oracle, Microsoft, Sybase等也都已經或準備加入In Memory Database的支援,如TimesTen, MS SQL Server, Sybase ASE 15.5等。Oracle也已發表了In-Memory Database專用的Exadata, Exalytics硬體,透過Dram與Smart Flash Cache等技術, 可達到每秒1,500,000 Database I/O。而主要的商業智慧分析軟體,如Oracle Coherence, TIBCO ActiveSpaces, IBM eXtreme Scale, SAP HANA, Red Hat JBoss Data Grid, Software AG Terracotta, VMware vFabric GemFire/SQLFire,也都將In Memory Computing視為提昇BI效率與拉開與對手差距的利器。

總結

目前許多的人都看好In-Memory Computing會在未來的二年來有顯著的市佔率成長,會投入開發的廠商也會越來越多。當然,也有些尚需克服的問題,如In-Memory Computing的主要元件包含了 In-Memory Database, In-Memory Data Grid, High-Performance messaging, Event-Processing Platform, In-Memory Analytics與In-Memory Application Servers等部份。但因為相關的標準尚未建立完成,監控與管理機制和技術上的複雜度,使得IMC還需要一些時間透過各軟、硬體廠商的努力來整合。不過因為其所展現出來的驚人運算效率與投資報酬率,將還是會持續吸引企業投入,希望能提供企業中專業經理人更快速、精確的資訊,找到企業的藍海,達到提高競爭力及經營績效之目的。

參考資料

http://en.wikipedia.org/wiki/In-memory_database
http://scn.sap.com/community/hana-in-memory/blog/2012/04/21/sap-has-declared-war-on-the-hard-drive-industry
SAP Solution Brief: SAP In-Memory Appliance

 

回上層