我們對Facebook、Amazon、Airbnb、Pinterest和Netflix數(shù)據(jù)團隊所做的事情感到驚訝。他們?yōu)檐浖推髽I(yè)從數(shù)據(jù)中獲取信息而制定了新標(biāo)準(zhǔn)。由于他們的產(chǎn)品用戶量極大,所以這些團隊必須不斷地定義規(guī)模分析的方法。他們已經(jīng)在數(shù)據(jù)架構(gòu)中投入了數(shù)百萬美元,并且在大多數(shù)公司中,數(shù)據(jù)團隊的規(guī)模超過了整個工程部門的規(guī)模。
我們建立了Keen IO,是為了以讓大多數(shù)軟件工程團隊無需從頭架設(shè)所有內(nèi)容,就可以利用最新的大型事件數(shù)據(jù)技術(shù)。但是,如果您對如何成為巨頭公司感到好奇,那么請從最好的公司中收集一些架構(gòu)。
Netflix
Netflix擁有9300萬用戶,沒有交互缺陷。正如他們的工程團隊在Netflix數(shù)據(jù)管道的演變中描述的那樣,他們每天大約捕獲5000億個事件,每天大約有1.3PB的數(shù)據(jù)傳輸。在高峰時段,他們每秒將記錄800萬次事件。他們雇用了100多個數(shù)據(jù)工程師或分析師。
以下是上述文章中數(shù)據(jù)架構(gòu)的簡化視圖,其中顯示:開源系統(tǒng)ApacheKafka,搜索服務(wù)器ElasticSearch,亞馬遜云存儲服務(wù)AWSS3,進行大數(shù)據(jù)處理的ApacheSpark,運行框架ApacheHadoop和大數(shù)據(jù)分析服務(wù)EMR作為主要組件。
擁有超過10億的活躍用戶,F(xiàn)acebook有世界上最大的數(shù)據(jù)倉庫之一,存儲超過300PB。該數(shù)據(jù)被用于廣泛的應(yīng)用:從傳統(tǒng)的批處理到圖形分析,機器學(xué)習(xí)和實時交互式分析。為了進行大規(guī)模的交互式查詢,F(xiàn)acebook的工程師發(fā)明了Presto,一種針對點對點分析進行優(yōu)化的定制分布式的SQL查詢引擎。每天有1000多名Facebook員工使用Presto,通過Hive、HBase和Scribe的可插拔后端數(shù)據(jù)存儲,每天執(zhí)行查詢次數(shù)超過30000次。
體系結(jié)構(gòu)
后端數(shù)據(jù)存儲
Airbnb
Airbnb支持超過1億用戶瀏覽200多萬的房屋列表。他們智能地向這些用戶提供新的旅行建議的能力,這對他們的成長有很大影響。Airbnb的數(shù)據(jù)科學(xué)經(jīng)理Elena Grewal在去年的會議“建立一個世界級的分析團隊”上提到,他們已經(jīng)將Airbnb的數(shù)據(jù)團隊擴展到擁有30多名工程師的規(guī)模。這是每人每年500萬的投資。
AirbnbEng建筑師James Mayfield、Krishna Puttaswamy、Swaroop Jagadish和Kevin Longdescribe描述了構(gòu)建數(shù)據(jù)結(jié)構(gòu)的基本要素以及如何為關(guān)鍵任務(wù)數(shù)據(jù)提供更高的可靠性。他們嚴(yán)重依賴Hive和Apache Spark,并使用了Facebook的Presto。
AIRBNB的數(shù)據(jù)基礎(chǔ)結(jié)構(gòu)
Pinterest每月有超過1億的用戶瀏覽超過100億的網(wǎng)頁瀏覽量。截至2015年,他們將數(shù)據(jù)團隊擴展到擁有250多名工程師的規(guī)模。他們的基礎(chǔ)設(shè)施依賴于開源系統(tǒng)ApacheKafka,數(shù)據(jù)處理框架Storm,系統(tǒng)基礎(chǔ)架構(gòu)Hadoop,開源數(shù)據(jù)庫HBase和GPU渲染器Redshift。
數(shù)據(jù)管道結(jié)構(gòu)圖
Pinterest團隊不僅需要追蹤大量客戶相關(guān)的數(shù)據(jù)。像其他社交平臺一樣,他們還需要向廣告商提供詳細的分析。黃彤波在《Behindthe Pins:Building Analytics at Pinterest》一文中寫道:為了滿足這一需求,他們改進了自己的分析堆棧。以下是Pinterest團隊如何使用Apache Kafka,AWSS3和HBase的示意圖:
Pinterest商業(yè)數(shù)據(jù)分析結(jié)構(gòu)圖
Twitter/Crashlytics
每天實時處理50億次會議。EdSolovey介紹了Crashlytics Answers團隊構(gòu)建的一些架構(gòu),用于處理數(shù)十億的日常移動設(shè)備事件。