繁體
  • 简体中文
  • 繁體中文

熱門資訊> 正文

​數據倉庫、Snowflake和令狐沖

2022-03-25 23:19

作者:郭華,頭圖來自:視覺中國

數據倉庫簡稱數倉,是數據庫的一個子領域,在這個領域里,目前最耀眼的明星是Snowflake。

Snowflake 2012年成立,2014年推出第一代產品,2017年上榜Gartner全球數據倉庫魔力象限並於2019年成為領導者,2020年上市,首日暴漲111%,成為有史以來IPO規模最大的軟件公司,市值一度超過IBM,並在今年被DBengines評為2021年年度數據庫。

Snowflake有着陡峭的成長曲線,而在這背后至少有兩個點值得關注,一是它的自我實現,二是它的模範效應,前者是個精彩故事,后者則展示了與某種恐怖力量的相處之道。在這兩個點上,它都與令狐沖十分相似,可以説Snowflake之於數據倉庫,恰如令狐沖之於笑傲江湖。

一、華山派和思過崖

令狐沖的崛起之路上有兩個關鍵節點,分別是華山派和思過崖。

令狐沖在華山派長大,是華山派大師哥,師父是氣宗的岳不羣,也跟風清揚學過劍宗的獨孤九劍,所以不管他后來怎麼闖蕩江湖,華山派都是他的起點。

后來他上了思過崖,在魔教長老留下的石刻上看到了華山功夫的破解方法,一招一式詳盡之極。這讓他大為震驚,開始覺得華山派不過浪得虛名,不僅自己功夫不行,師父的功夫也不行,遇到高手「倘若不肯服輸,便只有自殺了」。所以思過崖是他的開悟點,自思過崖后,他對天下的功夫有了更清醒的看法。

和令狐沖一樣,Snowflake也有這麼兩個點,而且這兩個點都能在Snowflake的CTO Benoit身上找到。

Benoit是Snowflake的創始人,是數據庫領域的頂級工程師。他此前一直在Oracle工作,是Oracle架構師,負責Oracle RAC,他對Oracle的重要性被形容為梅林之於亞瑟王。所以因為他,Snowflake才能在基礎技術上從一開始就就處於非常領先的地位。客觀的説,Oracle就是Snowflake的起點。

Benoit也碰到過思過崖,只不過這個思過崖不是石壁,而是Oracle的客户。在Oracle的十年里,Benoit反覆聽到客户講現在的產品太複雜、價格太貴,反覆講雲,講Hadoop,講他們對Oracle的挑戰。但Oracle對這些東西的表現,哪怕不算無動於衷,也是漫不經心——工程師很少開發新東西,日常工作就是修復Bug,並且公司依然要根據自己按部就班的節奏,每四年進行一次主要的升級……總之,他感覺自己正在坐失良機[1]

於是他決定要出來自己做一個真正的雲數倉。

二、江湖淵源

Benoit出來創立Snowflake的時候是2012年,當時數據倉庫市場上存在着三個門派。

這三個門派也代表了數據倉庫發展的三代。

第一代是傳統派,起源於上世紀八十年代,代表公司是Teradata。

計算機誕生后,應用程序就有了存儲和在線處理數據的需求,於是以Oracle、IBM為代表的關係數據庫就出現了。它們成功后不久,Teradata敏鋭的發現,除了數據存儲外企業還有數據分析的需求。於是它瞄準這一點,在1984年推出了第一代數倉產品DBC/1012。得益於其創新性的集羣架構(現在稱之為MPP架構),DBC/1012可以處理高達1TB的數據,在計算機硬盤只有幾MB的當時,這顯得異常先進。

Teradata很快佔領了數倉市場,然后Oracle、IBM,以及其他一些獨立公司也慢慢開始進來,不過就像Benoit負責過的Oracle RAC一樣,基本上大家都參考了Teradata的MPP架構。所以這些公司是數倉的傳統派,就像笑傲江湖里的武當、少林和五岳劍派一樣,歷史悠久,影響力大,是數倉市場的名門正派。

第二代是Hadoop派,代表公司Cloudera。

Hadoop派的出現是兩股潮流發展的結果:第一個是數據,互聯網的爆發產生了海量的非結構化數據,而對這部分數據的分析需求超越了傳統數倉的處理能力;第二個是開源,在理查德·斯托曼發起的自由軟件運動下,開源越來越成為主流的基礎軟件開發模式。

在這兩個潮流的影響下,2006年美國工程師Doug Cutting參考Google的大數據處理模式,開發了開源軟件Hadoop。憑藉強大的數據處理能力和開放源碼的特性,Hadoop很快席捲全球。2008年,基於Hadoop的開源公司Cloudera成立,一年后,Doug Cutting加入Cloudera任首席架構師。后來在Hadoop之上,出現了以Hive、Impala等為代表的SQL on Hadoop產品,它們彌補了傳統數據倉庫在海量非結構化處理上的缺位,逐漸在互聯網公司里成為主流。

Hadoop系列有點像笑傲江湖里的福威鏢局,勢力不大,本想偏居於江湖一角,但公開的源代碼就像祖傳的辟邪劍譜一樣,被江湖各派所覬覦,樹欲靜而風不止,總是血雨腥風。

第三代是雲計算派,代表公司AWS。

亞馬遜的AWS揭開了萬物上雲的大浪潮,應用上了雲后,就發生了兩個自然——數據自然在雲上產生,雲計算公司自然想提供更多產品。於是環顧四周,它就看到了福威鏢局這個軟柿子,2009年,AWS基於Hadoop源碼,推出了一個託管在自己雲上的產品EMR。

開源協議誕生時並沒有考慮到雲這種形態,所以嚴格來説AWS的行為並不算違反協議。但開源屆普遍感覺受到了傷害,MongoDB的CEO説每當一個開源軟件流行時,雲廠商就會直接拿過來放到自己的雲上,然后從中獲得大部分價值,並且從不回饋社區。Redis的CEO則直言自己像個傻子,雲拿着自己的東西大賺了一筆。

從這時起,雲和開源的矛盾就產生了,雲廠商被稱為開源吸血鬼。

除了開源軟件,雲廠商也託管傳統數倉。2011年,Amazon投資了ParAccel,2012年,基於ParAceel的技術,AWS推出了自己的雲數倉Redshift,從某種意義上來説,Redshift就是一個託管的ParAccel。

所以雲計算派的絕技就是託管,簡單粗暴但有效,它們和笑傲江湖里的魔教一樣,追求的是千秋萬載一統江湖,是江湖中的恐怖力量。在它面前,不管是傳統數倉還是開源Hadoop,都瑟瑟發抖。

Gartner 數據庫2011-2020全球市場格局

Gartner 數據庫2011-2020全球市場格局

三、吸星大法

在這樣的格局下,Snowflake開始了其創業之旅,其實這個過程和令狐沖崛起的過程差不多,簡單來説就是練武和比武。

先説練武,Snowflake有Oracle的底子,但練的並不全是Oracle的功夫。

和Teradata一樣,Oracle用的是MPP架構。形象一點來看,這種架構就是狗拉雪橇,很多狗組成一個狗羣,狗羣拉着雪橇,如果想拉更多的東西,那就增加更多的狗。狗就是計算機,狗羣就是計算機集羣,對外提供的產品就是雪橇,數據分析能力就是雪橇的裝載量。

但狗拉雪橇是有問題的,因為狗跟狗之間能力不共享,如果某條狗瘸了,整個系統都跑不利索,狗越多出問題的概率就越大,所以MPP架構不能支持特別大的集羣,擴展能力有限。

Snowflake看到了雲的優勢,更進一步的,它大量採用雲的技術,通過存儲計算分離的方法解決了這個問題。

它把存儲從集羣中剝離出來,換成了統一的雲存儲。還以狗拉雪橇為例,Snowflake的思路相當於把狗做了改造,狗腿換成輪子,狗本身變成「狗力」的象徵。一輛雪橇想要多少「狗力」就套上多少狗,輪子則全跑在一個無限延伸的軌道上,並由其提供動力。這個輪子和鐵軌構成的動力系統就是雲。

藉助雲的能力,Snowflake可以提供近似無限的彈性。

在Teradata DBC/1012 和Snowflake的架構圖中,可以清晰看到兩者的區別主要在存儲層,Snowflake的Data Storage是一個整體,開始是AWS的S3,現在也支持Azure、GCP等其他雲平臺。

Snowflake產品架構[5]

Snowflake產品架構[5]

Teradata產品架構[6]

存儲計算分離是一種技術改造,也是一種理念創新,它體現了Snowflake開放包容的心態。在Snowflake之前,沒有哪家數倉公司敢把自己的存儲整個換成S3。

而隨着這種技術改造,Snowflake也改造了自己跟AWS的關係,兩者從純粹的競爭對手,變成對手和客户,甚至是對手跟合作伙伴的關係,因為如果Snowflake賣的好,那自然S3的營收也會增加。

和令狐沖結交魔教的曲洋、聖姑,又學了魔教的吸星大法一樣,這種多元化的關係,為將來發展提供了更多可能。

四、少林之戰

練武之后是比武,武要偷偷的練,但比武的時候越公開越好,對手越厲害越好。

比如令狐沖的少林之戰,在這場天下英雄都在場,並能決定任我行去留的比試中,他打敗了自己的師父岳不羣,於是一戰成名,天下人盡皆知令狐少俠劍法無敵。

Snowflake也遵循了這種模式。2014年,祕密開發了兩年后,它向市場公開了自己的產品,此后就開始不停挑戰權威。

先是Oracle、AWS Redshift和SQL Server,時間是2015年,地點在舊金山的VMworld大會。

VMworld大會是VMware舉辦的全球數字化峰會,數萬人參加,影響力類似笑傲江湖里劉正風的金盆洗手大會。在這次會議上,時任Snowflake CEO的Bob Muglia試圖重新定義江湖秩序,他説只有Snowflake是雲數倉,不管Oracle、SQL Server 還是AWS Redshift,都不行。

他批評道,無論任何時候Oracle談論雲,它説的都是託管,用户依然要手動做很多管理工作,而這些工作本該自動完成。他認為Oracle想成為真正的SAAS化雲數倉,還有很長的路要走,整個架構都要變,SQL Server也一樣。而對於Redshift,他肯定Redshift確實在雲上做了不少東西,不過因為其架構還是傳統MPP,所以依然僅是一個託管的ParAccel,作為用户你依然要清空它、管理它、決定主鍵的分佈……所有你在上雲前要做的,你現在依然要做,你依然需要DBA。[2]

這次大會的宣傳語是「ready for any」,怎麼看怎麼像Snowflake贊助的,有點狂妄。

Snowflake狂妄的底氣可能來自團隊:Benoit來自Oracle,對Oracle瞭如指掌。Bob Muglia曾經是微軟的高級副總裁,分管過SQL Server,團隊里還有Actian創始人——Redshift基於ParAccel,而ParAccel后來賣給了Actian。所以理論上來説,它確實可以對這些對手的問題知道的一清二楚。

然后它又挑戰了數據倉庫的傳統老大Teradata。

它寫了一個小冊子,用兩個極具羞辱性的問題「那個Teradata數倉真的值一千萬美金嗎?」、「你的業務真的應該依賴來自1979年的技術麼?」來引戰Teradata。Teradata當然非常憤怒,他們逐條進行了一系列回覆,但這正好上了Snowflake的當。

Snowflake碰瓷Teradata[7]

Snowflake碰瓷Teradata[7]

和VWworld大會一樣,Snowflake這麼囂張的目的其實是「引流」。不少人順着Teradata的回覆找到了Snowflake,結果在好奇的體驗過后,就被其出色的產品體驗「留存」了。

所以狂是狂,但實力也是真的有,在引戰和爭議中,Snowflake快速成長。

數倉領域有個Gartner魔力象限,它從高到低把產品分為利基玩家、遠見者、挑戰者和領導者四個象限,可以看成數倉的英雄榜。Snowflake2017年首次作為利基玩家進入,2018年成為挑戰者,2019年就成爲了領導者,一年升一檔,很快和Teradata、IBM、Oracle等老前輩坐在了一起。作為對比,華為也是2017年第一次上榜,但還是利基玩家。不過客觀説能進入就是突破,華為是國產數據庫的第一個,依然國貨之光。

Gartner數倉魔力象限2019

Gartner數倉魔力象限2019

到了2020年,Snowflake上市了。

五、笑傲江湖

Snowflake上市首日股價暴漲111%,是有史以來IPO規模最大的軟件公司。

對資本市場來説,Snowflake在存儲計算分離、雲原生等技術概念的基礎上,又成功講了一個更業務化的新概念——數倉SaaS,在它之前,數倉是被定義為PaaS的。

兩者有什麼區別?PaaS面對開發者,SaaS面對最終用户,或者借用Bob Muglia的話來説,數倉SaaS不需要DBA。

這是顛覆性的,股票市場愛顛覆性。

從營收來看,Snowflake基本和Teradata、Cloudera在同一量級,但從市值來看,一路暴漲的Snowflake已經站到了IBM、Oracle一樣的水平線。這説明兩件事:第一,有些投資人認為Snowflake代表了數倉的未來,害怕錯過它就像害怕錯過特斯拉;第二,哪怕擠干泡沫,Snowflake的營收也趕上了前兩代數倉課代表的水平,説明數倉SaaS作為一種新模式,已經成為現實

市值&營收對比

市值&營收對比

科學史學家科恩説過,科學革命就是舊範式向新範式轉移的過程。

範式包括兩部分,一部分是該領域所有成員在某一特定時期都能接受的一系列基本的理論假設,另一部分是這些理論所解決了的現實問題。

在數倉的世界里,理論部分是存儲計算分離和雲原生,現實成果則是爆發性出現的大量雲原生數倉創業公司。所以根據科恩的定義,數倉SaaS已經成了一種範式,而Snowflake正在引領着範式轉移,直接帶動了這兩年的雲原生數據庫創業潮。

所以如果「市場上第一代產品總能自動獲得50%市場份額」的達維多定律成立,那麼大家對於Snowflake的熱情就不能説完全是空穴來風。

而且客觀的説,Snowflake確實冒了和這種回報等量的風險。

技術風險自不必説,比技術風險更不確定的,是商業路線上的風險。

它是第一個選擇跟雲合作的數倉公司,回頭看可能覺得很自然,但實際上里邊充滿了微妙的平衡,很像全球體系下的國家博弈。Snowflake從AWS進口S3和EC2等原材料,向AWS出口成品,而這個成品又和AWS的本地供應商Redshift直接競爭。爲了保護Redshift,AWS應該限制Snowflake,但這樣又會影響S3和EC2的銷售,所以這是一種左右互搏。此外,Snowflake也支持Google Cloud和Azure,AWS還要擔心它帶着客户轉移到競爭對手那里。

這是一種包含了多層次競爭與合作的動態平衡,一點也不自然,不過按照Snowflake的副總裁卡帕斯的説法,這個平衡正在變得穩固,他們和AWS已經從真正的競爭對手,變成了真正的聯盟。只不過這個聯盟並不像令狐沖娶了任盈盈那麼簡單,需要更多更長久的利益支撐——在Snowflake招股書,它承諾在接下來的5年內,在雲上的消耗將達到12億美金[3],並且其中大部分會屬於AWS。

但總之,Snowflake「跨越鴻溝,創造了這種關係」[4]。它的成功也給其他人樹立了一個榜樣,一個如何與雲巨頭相處的榜樣,所以如果再分代的話,現在應該從粗暴的第三代雲託管時代,進入了和諧共生的第四代雲原生時代。

附,關鍵信息來源:

[1]. Frank Slootman, Steve Hamm. Rise of the Data Cloud https://www.amazon.com/Rise-Data-Cloud-Frank-Slootman/dp/1728363608

[2].Bob Muglia, Snowflake Computing | VMworld 2015  https://www.youtube.com/watch?v=l0hxeVD86Do[3]. https://www.sec.gov/Archives/edgar/data/1640147/000162828020013010/snowflakes-1.htm

[4].AWS And Snowflake: ‘From True Competitors, To Frenemies To…An Alliance’  https://www.crn.com/news/cloud/aws-and-snowflake-from-true-competitors-to-frenemies-to-an-alliance-

[5].The Snowflake Elastic Data warehouse, 2016 https://event.cwi.nl/lsde/papers/p215-dageville-snowflake.pdf

[6].A Practical Implementation of the Data Base Machine - Teradata DBC/1012, 1992 https://ieeexplore.ieee.org/document/183180

[7].Is That Teradata Data Warehouse Really Worth $10 Million https://www.pacificdataintegrators.com/uploads/resources/244/is-that-teradata-data-warehouse-really-worth-10-million.pdf

風險及免責提示:以上內容僅代表作者的個人立場和觀點,不代表華盛的任何立場,華盛亦無法證實上述內容的真實性、準確性和原創性。投資者在做出任何投資決定前,應結合自身情況,考慮投資產品的風險。必要時,請諮詢專業投資顧問的意見。華盛不提供任何投資建議,對此亦不做任何承諾和保證。