HANA 與 Oracle 12c哪一個更快
本文來自於對Which is Faster HANA or Oracle 12C?的閱讀筆記,列舉了其中的要點。並不代表我的觀點。
簡介
SAP聲稱HANA是最快的數據庫,因此SAP的新ERP系統S4不再支持Oracle
Oracle 12c的一個新功能是對於同一表,可以在行式和列式間轉換
SAP想讓用戶認為HANA是獨特的技術,不過在這篇文章中,可以看到內存計算和列式存儲都不是SAP獨有的技術
硬件速度和數據庫設計的混淆
HANA將兩個不同的概念混淆到一起:
1. 硬件層面,HANA需要將數據加載到內存
2. 數據庫設計層面,HANA是基於列式的數據庫
這種混淆其實在SAP的ERP就已經用到了,而且運用得很成功,SAP認為SAP自己的ERP可以更好的集成應用,集成的風險更小。
SAP ERP的集成是在水平的應用層面,而HANA是在垂直層面,直到數據庫層
SAP希望用戶遷移到HANA的一個原因是,和以前將數據庫作為數據儲存不同,SAP已經將應用邏輯下放到數據庫。
PS. 不過我認為這些接口會對其它數據庫開放的
HANA的真正機會
曾經認為HANA的真正機會是將ERP和其它SAP應用都放在HANA上,然後分析引擎可以運行在相同的硬件上,集成和轉換也不再需要。
但是非SAP的應用怎麽辦,它們無法運行在HANA上,它們不需要集成了嗎?
另外, HANA非常昂貴,而且目前HANA也支持一小部分SAP的應用
西部最快的數據庫?
看這標題,作者還挺幽默
HANA明顯不象SAP所說的那樣,是速度的冠軍。一個重要的原因或弱點即HANA是基於列的數據庫,這對於非分析型數據庫是一個不正確的設計。盡管SAP聲稱是,但從計算機科學的角度來看,它不是。(SAP有篇論文,專門講述列式數據庫性能沒有問題)
對於交易系統的插入,刪除和更新,列式數據庫要比行式數據庫慢
關於速度的爭論
Oracle的John Soat在福布斯上發表的文章對於HANA的速度做了反擊,其中很重要的一點是HANA沒有發布過交易處理的性能指標。也許是做了但還不夠好吧。
Oracle 12c的數據雙模式
Oracle 12c可以將數據同時以行式和列式在內存中存在,這時一個非常重要的優勢。除了純分析操作,Oracle的靈活設計在性能上完勝HANA。
SAP認為Oracle的內存技術不成熟,同時HANA有7000個用戶,不過大部分的用戶並沒有真正使用HANA。
結論
Oracle 12c 內存列式存儲的出現,使SAP將用戶遷移到HANA的理由不再充分。
SAP作為應用的廠商,現在將數據層推向用戶,結果如何,只有拭目以待了。
下面這段話其實是我最欣賞的:
在Mountain View的計算機歷史博物館,有一個展覽說,從前,軟件是和硬件綁定的,那時軟件還不是一個產業,IBM發布的程序只能跑在IBM的硬件上。軟件不單收費,在軟件層面也不存在競爭。
我們現在所知的軟件行業,實際上是在軟硬件解耦之後,即美國的反托拉斯法( US enforcing anti-trust legislation )針對專屬軟件和硬件廠商的要求。而HANA作為應用和數據庫耦合,由一個廠商控制,使我們又回到了軟件最初的時代。
PS. Oracle的Exadata也是軟件和硬件的結合,但是Oracle並沒有要求數據庫只能跑在Exadata上
結論就是:
* 只有列式數據庫才有未來是不對的
* 只有SAP才能開發出高性能的數據庫如HANA也是不對的
SAP HANA是一個全新設計的內存數據庫系統,他即支持傳統的行式存儲也支持列式存儲。HANA數據庫具有很高的性能、並發能力和可擴展性。HANA即可以支持OLTP應用也可以支持OLAP系統。
我們都知道,制約數據庫系統性能提升的關鍵瓶頸是I/O。為了解決這個問題,Oracle公司推出了Exadata,通過在存儲層內置智能存儲軟件優化數據庫層和存儲層之間的I/O處理和傳輸。而SAP HANA數據庫則另辟方向,充分利用多核處理器架構和計算機主存成本降低的趨勢,在內存中存放數據,而傳統的磁盤存儲系統只是作為“持久層”,防止由於故障導致內存數據丟失。對於HANA來說,相關數據位於內存中,這樣在訪問數據時無需物理磁盤I/O操作,因此也就不存在磁盤“I/O”的瓶頸問題了。在這裏並不會、也不想討論SAP HANA和Oracle Exadata兩種技術的優劣,我想這兩種技術代表了兩種方向,最終還需要由市場和客戶評判。
由於目前SAP HANA的公開資料很少,個人覺得很不利於產品的推廣和使用,一個產品只有了解、使用的人多了,建立起很好的“生態系統”才能得到發展。對於數據庫這樣的基礎平臺軟件更是如此。技術人員了解和學習一個產品都喜歡先裝上它,然後使用它。本文將向SAP HANA的初學者介紹如何安裝它。需要註意的是:本文的目的是幫助打算學習SAP數據庫的人能夠搭建自己的學習環境而編寫的,並不是針對實際生產環境
*********************************************************************************************************************************************
- 本文已收錄於以下專欄:
- In-Memory Computing Technology
HANA 與 Oracle 12c哪一個更快