Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

責(zé)任編輯:editor004

作者:譯東西

2017-05-08 11:31:20

摘自:36kr

在Keen IO,我們認(rèn)為會(huì)運(yùn)用事件數(shù)據(jù)的公司才具有競(jìng)爭(zhēng)優(yōu)勢(shì),世界領(lǐng)先的科技公司證明了這一點(diǎn)。Airbnb的數(shù)據(jù)科學(xué)經(jīng)理Elena Grewal在去年的會(huì)議“建立一個(gè)世界級(jí)的分析團(tuán)隊(duì)”上提到,他們已經(jīng)將Airbnb的數(shù)據(jù)團(tuán)隊(duì)擴(kuò)展到擁有30多名工程師的規(guī)模。

 

在Keen IO,我們認(rèn)為會(huì)運(yùn)用事件數(shù)據(jù)的公司才具有競(jìng)爭(zhēng)優(yōu)勢(shì),世界領(lǐng)先的科技公司證明了這一點(diǎn)。但是我們?nèi)匀粚?duì)Facebook、Amazon、Airbnb、Pinterest和Netflix數(shù)據(jù)團(tuán)隊(duì)所做的事情感到驚訝。他們?yōu)檐浖推髽I(yè)從數(shù)據(jù)中獲取信息而制定了新標(biāo)準(zhǔn)。

由于他們的產(chǎn)品用戶量極大,所以這些團(tuán)隊(duì)必須不斷地定義規(guī)模分析的方法。他們已經(jīng)在數(shù)據(jù)架構(gòu)中投入了數(shù)百萬(wàn)美元,并且在大多數(shù)公司中,數(shù)據(jù)團(tuán)隊(duì)的規(guī)模超過(guò)了整個(gè)工程部門(mén)的規(guī)模。

我們建立了Keen IO,是為了以讓大多數(shù)軟件工程團(tuán)隊(duì)無(wú)需從頭架設(shè)所有內(nèi)容,就可以利用最新的大型事件數(shù)據(jù)技術(shù)。但是,如果您對(duì)如何成為巨頭公司感到好奇,那么請(qǐng)從最好的公司中收集一些架構(gòu)。

Netflix

Netflix擁有9300萬(wàn)用戶,沒(méi)有交互缺陷。正如他們的工程團(tuán)隊(duì)在Netflix數(shù)據(jù)管道的演變中描述的那樣,他們每天大約捕獲5000億個(gè)事件,每天大約有1.3 PB的數(shù)據(jù)傳輸。在高峰時(shí)段,他們每秒將記錄800萬(wàn)次事件。他們雇用了100多個(gè)數(shù)據(jù)工程師或分析師。

以下是上述文章中數(shù)據(jù)架構(gòu)的簡(jiǎn)化視圖,其中顯示:開(kāi)源系統(tǒng)Apache Kafka,搜索服務(wù)器Elastic Search,亞馬遜云存儲(chǔ)服務(wù)AWS S3,進(jìn)行大數(shù)據(jù)處理的Apache Spark,運(yùn)行框架Apache Hadoop和大數(shù)據(jù)分析服務(wù)EMR作為主要組件。

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

Facebook

擁有超過(guò)10億的活躍用戶,F(xiàn)acebook有世界上最大的數(shù)據(jù)倉(cāng)庫(kù)之一,存儲(chǔ)超過(guò)300PB。該數(shù)據(jù)被用于廣泛的應(yīng)用:從傳統(tǒng)的批處理到圖形分析,機(jī)器學(xué)習(xí)和實(shí)時(shí)交互式分析。

為了進(jìn)行大規(guī)模的交互式查詢,F(xiàn)acebook的工程師發(fā)明了Presto,一種針對(duì)點(diǎn)對(duì)點(diǎn)分析進(jìn)行優(yōu)化的定制分布式的SQL查詢引擎。每天有1000多名Facebook員工使用Presto,通過(guò)Hive、HBase和Scribe的可插拔后端數(shù)據(jù)存儲(chǔ),每天執(zhí)行查詢次數(shù)超過(guò)30000次。

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

體系結(jié)構(gòu)

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

后端數(shù)據(jù)存儲(chǔ)

Airbnb

Airbnb支持超過(guò)1億用戶瀏覽200多萬(wàn)的房屋列表。他們智能地向這些用戶提供新的旅行建議的能力,這對(duì)他們的成長(zhǎng)有很大影響。

Airbnb的數(shù)據(jù)科學(xué)經(jīng)理Elena Grewal在去年的會(huì)議“建立一個(gè)世界級(jí)的分析團(tuán)隊(duì)”上提到,他們已經(jīng)將Airbnb的數(shù)據(jù)團(tuán)隊(duì)擴(kuò)展到擁有30多名工程師的規(guī)模。這是每人每年500萬(wàn)的投資。

在博客《數(shù)據(jù)基礎(chǔ)架構(gòu)》一文中,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。

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

AIRBNB的數(shù)據(jù)基礎(chǔ)結(jié)構(gòu)

Pinterest

Pinterest每月有超過(guò)1億的用戶瀏覽超過(guò)100億的網(wǎng)頁(yè)瀏覽量。截至2015年,他們將數(shù)據(jù)團(tuán)隊(duì)擴(kuò)展到擁有250多名工程師的規(guī)模。他們的基礎(chǔ)設(shè)施依賴于開(kāi)源系統(tǒng)Apache Kafka,數(shù)據(jù)處理框架Storm,系統(tǒng)基礎(chǔ)架構(gòu)Hadoop,開(kāi)源數(shù)據(jù)庫(kù)HBase和GPU渲染器Redshift。

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

數(shù)據(jù)管道結(jié)構(gòu)圖

Pinterest團(tuán)隊(duì)不僅需要追蹤大量客戶相關(guān)的數(shù)據(jù)。像其他社交平臺(tái)一樣,他們還需要向廣告商提供詳細(xì)的分析。黃彤波在《Behind the Pins: Building Analytics at Pinterest》一文中寫(xiě)道:為了滿足這一需求,他們改進(jìn)了自己的分析堆棧。以下是Pinterest團(tuán)隊(duì)如何使用Apache Kafka,AWS S3和HBase的示意圖:

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

Pinterest商業(yè)數(shù)據(jù)分析結(jié)構(gòu)圖

Twitter / Crashlytics

每天實(shí)時(shí)處理50億次會(huì)議。Ed Solovey介紹了Crashlytics Answers團(tuán)隊(duì)構(gòu)建的一些架構(gòu),用于處理數(shù)十億的日常移動(dòng)設(shè)備事件。

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

信息流接收

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

存儲(chǔ)

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

批處理計(jì)算

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

加速計(jì)算

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

總覽

Keen IO的數(shù)據(jù)架構(gòu)

正如我之前提到的,我們構(gòu)建了Keen數(shù)據(jù)接口(API),以便任何開(kāi)發(fā)人員都可以使用世界一流的數(shù)據(jù)架構(gòu),而無(wú)需擁有一個(gè)龐大的團(tuán)隊(duì)構(gòu)建一大堆基礎(chǔ)架構(gòu)。成千上萬(wàn)的工程團(tuán)隊(duì)使用Keen的API來(lái)捕獲、分析、流式傳輸和嵌入事件數(shù)據(jù),包括實(shí)時(shí)和批處理應(yīng)用程序。

雖然使用Keen的開(kāi)發(fā)人員在發(fā)送事件或運(yùn)行查詢時(shí)不需要知道幕后發(fā)生的情況,但下面是處理其請(qǐng)求的體系結(jié)構(gòu):

Facebook、亞馬遜等巨頭是如何建造自己的數(shù)據(jù)庫(kù)的?| 全球聚焦

Keen IO 信息處理結(jié)構(gòu)圖

在輸入方面,負(fù)載均衡器處理數(shù)十億個(gè)傳入的帖子請(qǐng)求。事件流來(lái)自于應(yīng)用程序,網(wǎng)站,連接設(shè)備,服務(wù)器,計(jì)費(fèi)系統(tǒng)等等。事件需要驗(yàn)證、排序和可選擇地豐富額外的元數(shù)據(jù),如IP-地理查詢。這一切都發(fā)生在幾秒鐘內(nèi)。

一旦安全地存儲(chǔ)在Apache Cassandra中,事件數(shù)據(jù)就可以通過(guò)REST API進(jìn)行查詢。我們的架構(gòu)(通過(guò)Apache Storm,DynamoDB,Redis和AWS lambda等技術(shù))支持從原始傳入數(shù)據(jù)實(shí)時(shí)數(shù)據(jù)探索,到應(yīng)用程序和面向客戶報(bào)告的緩存查詢的各種查詢需求。Keen每天查詢數(shù)萬(wàn)個(gè)事件屬性,并為成千上萬(wàn)的客戶構(gòu)建報(bào)告,自動(dòng)化和數(shù)據(jù)挖掘界面。

感謝!

感謝團(tuán)結(jié)一致的數(shù)據(jù)工程界,不斷發(fā)明新的數(shù)據(jù)技術(shù)、開(kāi)源,并分享他們的知識(shí)。如果沒(méi)有這么多工程隊(duì)伍的基礎(chǔ)工作,沒(méi)有與我們天天一起合作的人,我們的團(tuán)隊(duì)也不可能有今天。歡迎各方的意見(jiàn)和反饋。

特別感謝文章中提到的的作者和建筑師:Netflix的Steven Wu,F(xiàn)acebook Presto、AirbnbEng和Pinterest的工程師Martin Traverso,以及Crashlytics Answers的Ed Solovey。

感謝編輯Terry Horner,Dan Kador,Manu Mahajan和Ryan Spraetz的幫助。

翻譯來(lái)自:蟲(chóng)洞翻翻   譯者ID:王煒   編輯:郝鵬程

在Keen IO,我們認(rèn)為會(huì)運(yùn)用事件數(shù)據(jù)的公司才具有競(jìng)爭(zhēng)優(yōu)勢(shì),世界領(lǐng)先的科技公司證明了這一點(diǎn)。但是我們?nèi)匀粚?duì)Facebook、Amazon、Airbnb、Pinterest和Netflix數(shù)據(jù)團(tuán)隊(duì)所做的事情感到驚訝。他們?yōu)檐浖推髽I(yè)從數(shù)據(jù)中獲取信息而制定了新標(biāo)準(zhǔn)。

由于他們的產(chǎn)品用戶量極大,所以這些團(tuán)隊(duì)必須不斷地定義規(guī)模分析的方法。他們已經(jīng)在數(shù)據(jù)架構(gòu)中投入了數(shù)百萬(wàn)美元,并且在大多數(shù)公司中,數(shù)據(jù)團(tuán)隊(duì)的規(guī)模超過(guò)了整個(gè)工程部門(mén)的規(guī)模。

我們建立了Keen IO,是為了以讓大多數(shù)軟件工程團(tuán)隊(duì)無(wú)需從頭架設(shè)所有內(nèi)容,就可以利用最新的大型事件數(shù)據(jù)技術(shù)。但是,如果您對(duì)如何成為巨頭公司感到好奇,那么請(qǐng)從最好的公司中收集一些架構(gòu)。

Netflix

Netflix擁有9300萬(wàn)用戶,沒(méi)有交互缺陷。正如他們的工程團(tuán)隊(duì)在Netflix數(shù)據(jù)管道的演變中描述的那樣,他們每天大約捕獲5000億個(gè)事件,每天大約有1.3 PB的數(shù)據(jù)傳輸。在高峰時(shí)段,他們每秒將記錄800萬(wàn)次事件。他們雇用了100多個(gè)數(shù)據(jù)工程師或分析師。

以下是上述文章中數(shù)據(jù)架構(gòu)的簡(jiǎn)化視圖,其中顯示:開(kāi)源系統(tǒng)Apache Kafka,搜索服務(wù)器Elastic Search,亞馬遜云存儲(chǔ)服務(wù)AWS S3,進(jìn)行大數(shù)據(jù)處理的Apache Spark,運(yùn)行框架Apache Hadoop和大數(shù)據(jù)分析服務(wù)EMR作為主要組件。

Facebook

擁有超過(guò)10億的活躍用戶,F(xiàn)acebook有世界上最大的數(shù)據(jù)倉(cāng)庫(kù)之一,存儲(chǔ)超過(guò)300PB。該數(shù)據(jù)被用于廣泛的應(yīng)用:從傳統(tǒng)的批處理到圖形分析,機(jī)器學(xué)習(xí)和實(shí)時(shí)交互式分析。

為了進(jìn)行大規(guī)模的交互式查詢,F(xiàn)acebook的工程師發(fā)明了Presto,一種針對(duì)點(diǎn)對(duì)點(diǎn)分析進(jìn)行優(yōu)化的定制分布式的SQL查詢引擎。每天有1000多名Facebook員工使用Presto,通過(guò)Hive、HBase和Scribe的可插拔后端數(shù)據(jù)存儲(chǔ),每天執(zhí)行查詢次數(shù)超過(guò)30000次。

體系結(jié)構(gòu)

后端數(shù)據(jù)存儲(chǔ)

Airbnb

Airbnb支持超過(guò)1億用戶瀏覽200多萬(wàn)的房屋列表。他們智能地向這些用戶提供新的旅行建議的能力,這對(duì)他們的成長(zhǎng)有很大影響。

Airbnb的數(shù)據(jù)科學(xué)經(jīng)理Elena Grewal在去年的會(huì)議“建立一個(gè)世界級(jí)的分析團(tuán)隊(duì)”上提到,他們已經(jīng)將Airbnb的數(shù)據(jù)團(tuán)隊(duì)擴(kuò)展到擁有30多名工程師的規(guī)模。這是每人每年500萬(wàn)的投資。

在博客《數(shù)據(jù)基礎(chǔ)架構(gòu)》一文中,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

Pinterest每月有超過(guò)1億的用戶瀏覽超過(guò)100億的網(wǎng)頁(yè)瀏覽量。截至2015年,他們將數(shù)據(jù)團(tuán)隊(duì)擴(kuò)展到擁有250多名工程師的規(guī)模。他們的基礎(chǔ)設(shè)施依賴于開(kāi)源系統(tǒng)Apache Kafka,數(shù)據(jù)處理框架Storm,系統(tǒng)基礎(chǔ)架構(gòu)Hadoop,開(kāi)源數(shù)據(jù)庫(kù)HBase和GPU渲染器Redshift。

數(shù)據(jù)管道結(jié)構(gòu)圖

Pinterest團(tuán)隊(duì)不僅需要追蹤大量客戶相關(guān)的數(shù)據(jù)。像其他社交平臺(tái)一樣,他們還需要向廣告商提供詳細(xì)的分析。黃彤波在《Behind the Pins: Building Analytics at Pinterest》一文中寫(xiě)道:為了滿足這一需求,他們改進(jìn)了自己的分析堆棧。以下是Pinterest團(tuán)隊(duì)如何使用Apache Kafka,AWS S3和HBase的示意圖:

Pinterest商業(yè)數(shù)據(jù)分析結(jié)構(gòu)圖

Twitter / Crashlytics

每天實(shí)時(shí)處理50億次會(huì)議。Ed Solovey介紹了Crashlytics Answers團(tuán)隊(duì)構(gòu)建的一些架構(gòu),用于處理數(shù)十億的日常移動(dòng)設(shè)備事件。

信息流接收

存儲(chǔ)

批處理計(jì)算

加速計(jì)算

總覽

Keen IO的數(shù)據(jù)架構(gòu)

正如我之前提到的,我們構(gòu)建了Keen數(shù)據(jù)接口(API),以便任何開(kāi)發(fā)人員都可以使用世界一流的數(shù)據(jù)架構(gòu),而無(wú)需擁有一個(gè)龐大的團(tuán)隊(duì)構(gòu)建一大堆基礎(chǔ)架構(gòu)。成千上萬(wàn)的工程團(tuán)隊(duì)使用Keen的API來(lái)捕獲、分析、流式傳輸和嵌入事件數(shù)據(jù),包括實(shí)時(shí)和批處理應(yīng)用程序。

雖然使用Keen的開(kāi)發(fā)人員在發(fā)送事件或運(yùn)行查詢時(shí)不需要知道幕后發(fā)生的情況,但下面是處理其請(qǐng)求的體系結(jié)構(gòu):

Keen IO信息處理結(jié)構(gòu)圖

在輸入方面,負(fù)載均衡器處理數(shù)十億個(gè)傳入的帖子請(qǐng)求。事件流來(lái)自于應(yīng)用程序,網(wǎng)站,連接設(shè)備,服務(wù)器,計(jì)費(fèi)系統(tǒng)等等。事件需要驗(yàn)證、排序和可選擇地豐富額外的元數(shù)據(jù),如IP-地理查詢。這一切都發(fā)生在幾秒鐘內(nèi)。

一旦安全地存儲(chǔ)在Apache Cassandra中,事件數(shù)據(jù)就可以通過(guò)REST API進(jìn)行查詢。我們的架構(gòu)(通過(guò)Apache Storm,DynamoDB,Redis和AWS lambda等技術(shù))支持從原始傳入數(shù)據(jù)實(shí)時(shí)數(shù)據(jù)探索,到應(yīng)用程序和面向客戶報(bào)告的緩存查詢的各種查詢需求。Keen每天查詢數(shù)萬(wàn)個(gè)事件屬性,并為成千上萬(wàn)的客戶構(gòu)建報(bào)告,自動(dòng)化和數(shù)據(jù)挖掘界面。

感謝!

感謝團(tuán)結(jié)一致的數(shù)據(jù)工程界,不斷發(fā)明新的數(shù)據(jù)技術(shù)、開(kāi)源,并分享他們的知識(shí)。如果沒(méi)有這么多工程隊(duì)伍的基礎(chǔ)工作,沒(méi)有與我們天天一起合作的人,我們的團(tuán)隊(duì)也不可能有今天。歡迎各方的意見(jiàn)和反饋。

特別感謝文章中提到的的作者和建筑師:Netflix的Steven Wu,F(xiàn)acebook Presto、AirbnbEng和Pinterest的工程師Martin Traverso,以及Crashlytics Answers的Ed Solovey。

感謝編輯Terry Horner,Dan Kador,Manu Mahajan和Ryan Spraetz的幫助。

翻譯來(lái)自:蟲(chóng)洞翻翻譯者ID:王煒 編輯:郝鵬程

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)