2012年深秋,SAP推出的全內存數據庫HANA已經擁有了500多個客戶,發布15個月即有這樣的成績,整個數據庫世界都為之側目。
在Oralce的一份內部資料中,是這樣評價HANA的:“HANA的確是一項創新,對Oralce來說也是一個威脅。”
的確,盡管HANA仍然是一個小眾新型數據庫,但是隨著越來越多的服務器廠商推出HANA服務器,一直以來的數據庫全球霸主Oracle顯然坐不住了。就在當年10月,Oralce創始人兼首席執行官拉里 埃里森親自發布了Exadata X3服務器,算是對SAP HANA的回應——這種服務器使用閃存來讓其數據庫能以更快的速度運行。
很顯然,這個反擊太弱。SAP數據庫技術高級副總裁史蒂夫 盧卡斯很輕蔑地對媒體說:“將一個老式的數據庫放在速度超快的硬件中,藉此來提高其速度,這不會對Hana造成損害。”他甚至嘲笑Oracle是身披各種枷鎖的目光短淺者:“一家公司(指oracle)的脖子上掛著100億美元的數據庫‘枷鎖’,還掛著數十億美元的硬件‘枷鎖’,所以他們的解決方案就只能是把更多的硬件扔向依舊還是那么陳舊的軟件。覺得公司需要的只不過是一種速度更快的數據庫,那是一種目光短淺的觀點。”
也是,HANA系統能夠容納100TB數據,可升級至250TB,而埃里森高調發布的Exadata X3 系統能容納最多26TB數據。的確不在一個數量級上。記得當時SAP技術與創新負責人兼首席技術官Vishal Sikka還為此說過一句簡直能把埃里森氣死的話:“我的小姑娘Hana出去跟甲骨文干架了。她一定會把甲骨文的數據庫當成鼓來敲。”
這口惡心,Oracle怎么咽得下去?按照埃里森的性格,應該早就挽胳膊、擼袖子大干苦干,快速推出一款真正具有炮轟SAP HANA的內存數據庫才對,可實際上,一直到2014年6月份Oracle才發布了其新一代內存數據庫Database In-Memory。當時,拉里 埃里森特別提到,OracleDatabase In-Memory能針對現有應用整合實時數據分析與亞秒級交易,幫助企業變成真正的實時型企業。這話相當有內涵。
先說說內存數據庫吧。
這并不是新東西,內存數據庫存在有十年了,在這個領域有不少小公司在做技術上的各種探索,其中有一家叫TimesTen,在2005年被Oracle收購。但在SAP HANA發布之前內存數據庫并沒有得到市場的普遍認可,因此也沒有一家內存數據庫公司真正火起來。究其原因,我想一方面是因為內存數據庫的性價比問題,另一方面是企業更關注交易型業務(OLTP),而實時分析型業務(OLAP)則是在web業務興起之后才出現大規模需求的。
那為什么是SAP在內存數據庫技術上取得了突破,而不是一貫的數據庫市場執牛耳者Oracle呢?這其實非常正常,就是商業利益驅動技術進步,或者說一切技術創新都是為了獲取更多商業利益,否則就是紙上談兵。
20年前SAP一失足沒有開發自有數據庫而是選擇了用別人的數據庫,后來卻發現商業場如同名利場,只有暫時的朋友,哪里能求“白首不相離”?SAP在金融危機之后遭遇發展瓶頸努力尋求突破口,自然又想到了20年前的遺憾,而數據庫看上去的確是需要變革了。目前為止,無論是交易型(OLTP)還是分析性(OLAP)業務系統,大部分應用系統都是基于傳統關系型數據庫而創建的。而傳統的關系型數據庫主要是為傳統的OLTP而設計的。雖然這些年來數據庫產品的版本一年比一年更新得快,效率和功能也確實越來越強大,但這些基于傳統關系型數據庫和傳統架構進行的優化和改進都是基于磁盤技術來進行的。海量數據的增長,使得磁盤I/O性能這一問題逐漸暴露出來。內存數據庫拋棄了磁盤數據管理的傳統方式,基于全部數據都在內存中重新設計了體系結構,并且在數據緩存、快速算法、并行操作方面也進行了相應的改進,所以數據處理速度比傳統數據庫的數據處理速度要快很多。
這是歷史賦予的彌補遺憾的機會啊!盧卡斯攻擊Oracle渾身上下都是“枷鎖”,從數據庫產品的角度來說,SAP的確沒有歷史包袱,而且要想突破Oracle鐵桶一樣的圍墻,只有另辟蹊徑,攻其不備,于是,“大S”SAP一生氣就把“小s”Sysbase的優秀列示數據庫基因發展壯大長出了一個全內存列示數據庫HANA(High-Performance Analytic Appliance),并于2011年6月在全球范圍內上市。官方描述是“作為一款內存計算數據庫,SAPHANA可以在用戶原有的ERP系統上順暢運行,還支持用戶拋開數據倉庫,或者減少對實體數據倉庫的使用,并且獲得與數據倉庫相當的智能分析能力。”
這當然不是第一款內存數據庫了,但是SAP有錢有品牌,而且恰逢web業務風生水起,天時地利人和,HANA就在全世界燒起了熊熊烈火,而被灼傷的則是Oracle那顆倔強的心。
實際上,大家應該注意到了,Oracle并沒有對內存數據庫的萌芽和發展視而不見,相反早在2005年的時候就嗅到了這種變化趨勢所以收購了TimesTen昂首闊步進入了內存數據庫領域。但是,Oracle傳統數據庫的生意太好了,而且市場對于內存數據庫的需求也沒那么強烈,對這位數據庫巨頭來說,沒必要推出一款諸如HANA一樣完全不同于傳統數據庫的產品,直到HANA火爆。
不過,永遠不要著急下結論,雖然初生牛犢不怕虎,可是姜還是老的辣。Oracle一旦意識到內存數據庫漸成熱點,立刻顯示出了后發優勢——比SAP更有錢、更有品牌、更有技術、更有市場。
所以,Oracle Database In-Memory終于在2014年6月隆重亮相——話題終于又回到這里了,這一圈繞得好大啊!
相比于HANA的全內存結構,Oracle Database In-Memory是熱內存結構,這是天然優勢——看得見的未來內存肯定比硬盤貴啊,再說也沒必要把整個數據庫都裝在內存里跑。
當然,Oracle Database In-Memory最大的創新,是突破行列限制,采用雙格式數據庫內存。在過去,客戶在行式數據庫和列式數據庫之間只能擇一而行,從而在數據處理性能上受到局限。行式數據庫更適合交易類操作,比如插入或查詢一條銷售訂單,而列式數據庫則更善于進行分析類操作,比如按地域生成銷售額報告。當然HANA就是列示數據庫,所以對OLAP的支持要遠遠好過于對OLTP的支持。而Oracle Database In-Memory通過在同一張表在內存中同時支持行和列兩種格式,同時激活并保持事務一致性,對分析和報表采用列格式,OLTP則采用久經考驗的行格式運行。這樣做的各種優點請自行聯想,不再贅述,總結一句話就是:百變神行,突破傳統數據庫圍墻,可以在OLTP數據庫中直接做實時分析,這在以前是不可想象的。
最有趣的事情是,Oracle幫助SAP聯席創始人Hasso Plattner實現了預言。Hasso在贊揚HANA時候曾經這樣表達自己對數據庫技術發展的看法:“長期以來業界一直流行一種說法,OLTP是寫入導向的,OLAP是讀取導向的,因此我們需要使用不同的數據庫。這種理論在三十年前被提出,未來的五年仍然有效,但是長期來看這種模式不會一直適用。”他說對了,因為Oracle Database In-Memory已經實現了這一點。
所以,估計連Hasso都會承認這是Oracle在內存數據庫領域的顛覆性創新。我還覺得這是對SAP心愛的小姑娘HANA的致命一擊,估計這一點Hasso也得承認。總之,就上面兩點而言,HANA天生注定就是個小眾市場的寵兒,而OracleDatabase In-Memory的普及面的確有天然優勢,不服去找Oracle辯。
叫好又叫座,才是真的好。光技術領先、創新不夠,商業性才是決定性的魔杖。Oracle是老手,在這一點上不會犯錯誤。DatabaseIn-Memory將作為Oracle數據庫的可選配件方式提供。這意味著Oracle內存數據庫與HANA的另一個重要區別,即HANA需要用戶購買新的服務器(市場上有許多HANA服務器可以供選擇),而Oracle內存數據庫則無需如此大動干戈。
Oracle數據庫技術產品執行副總裁Andrew Mendelsohn說,“Database In-Memory可在企業運行Oracle數據庫的系統上運行,支持企業目前正在使用的應用,無需對應用進行任何修改。”他還表示, Oracle Database In-Memory在任何與Oracle數據庫兼容的現有應用環境中,都能夠非常簡單、快捷地進行部署,如同撥動一下開關,無需對應用做任何更改。測試結果顯示,包括Oracle電子商務套件、JD Edwards、PeopleSoft、Siebel和Oracle融合應用等在內的一系列應用都可以獲得1000倍以上的性能提升——這個1000倍的說法當然聽聽就好。
當然,Oracle一貫的策略也是軟硬一體化的方式提供服務,所以隨同Database In-Memory的發布,Exadata和SuperCluster都進行了優化。不過Oracle認為M6-32 大內存機才是能夠將Database In-Memory的性能展示到極佳的最強大平臺,當然不能浪費其32TB DRAM內存和3TB/秒內存帶寬。
好吧,SAP HANA請小心,珍重!