奧推網

選單
歷史

​資料倉庫、Snowflake和令狐沖

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

資料倉庫簡稱數倉,是資料庫的一個子領域,在這個領域裡,目前最耀眼的明星是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全球市場格局

三、吸星大法

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

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

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

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

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

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

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

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

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]

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

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

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

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

正在改變與想要改變世界的人,都在 虎嗅APP