被繁雜的數(shù)據(jù)搞到頭大?讓Google Cloud大數(shù)據(jù)平臺(tái)幫你實(shí)現(xiàn)快準(zhǔn)狠

來源: 谷歌開發(fā)者
作者:王利瑩
時(shí)間:2020-10-14
18249
數(shù)據(jù)價(jià)值比數(shù)據(jù)本身更值得關(guān)注,好的工具是業(yè)務(wù)的加速器。如何圍繞整個(gè)數(shù)據(jù)的生命周期,通過數(shù)據(jù)工具最快最準(zhǔn)拿到我們想要的信息?本文內(nèi)容為Google Cloud數(shù)據(jù)分析客戶工程師Shirley Wang以及木瓜移動(dòng)數(shù)據(jù)工程師Bin Wang的分享,解析Google Cloud數(shù)據(jù)分析平臺(tái)特點(diǎn)和木瓜移動(dòng)在GCP(Google Cloud Platform)上的實(shí)踐。

數(shù)據(jù)價(jià)值比數(shù)據(jù)本身更值得關(guān)注,好的工具是業(yè)務(wù)的加速器。如何圍繞整個(gè)數(shù)據(jù)的生命周期,通過數(shù)據(jù)工具最快最準(zhǔn)拿到我們想要的信息?這篇文章也許可以提供一些幫助。本篇文章來自于2019 Arch Summit全球架構(gòu)師峰會(huì),Google Cloud數(shù)據(jù)分析客戶工程師Shirley Wang以及木瓜移動(dòng)數(shù)據(jù)工程師Bin Wang的分享,解析Google Cloud數(shù)據(jù)分析平臺(tái)特點(diǎn)和木瓜移動(dòng)在GCP(Google Cloud Platform)上的實(shí)踐。

Google 1999年成立,到2003年開始處理的數(shù)據(jù)規(guī)模已達(dá)到600億條,大數(shù)據(jù)已經(jīng)不是新的話題,今天,我們更關(guān)注數(shù)據(jù)價(jià)值而不是數(shù)據(jù)本身。

ia_4200000000.JPEG

“整合全世界的信息,讓它在全球可達(dá),并且有用?!边@是Google成立之初的使命,也是多年來的努力踐行。當(dāng)我們通過工具去做數(shù)據(jù)查詢和分析時(shí),希望了解其背后代表的信息,甚至從中做商業(yè)決定。

Google在大數(shù)據(jù)領(lǐng)域的10年探索

2012年以前,如果想用Google大數(shù)據(jù)領(lǐng)域的技術(shù),更多是閱讀Google的論文,或者到Apache社區(qū)去下載這些開源的項(xiàng)目。2012年Google Cloud Platform平臺(tái)推出后,在GCP上就可以更便捷地使用這些數(shù)據(jù)服務(wù)。

ia_4200000001.JPEG

2004年,Google發(fā)表了一篇論文《MapReduce:Simplified Data Processing on Large Clusters》,提出了MapReduce框架,MapReduce涉及分解一系列簡(jiǎn)單的Map和Reduce任務(wù)中的所有復(fù)雜操作,被用于解決大規(guī)模計(jì)算問題,這個(gè)階段中更關(guān)注的是把大批量數(shù)據(jù)分而治之,輸入的數(shù)據(jù)集被切分成獨(dú)立的塊,但是它也有難以實(shí)現(xiàn)實(shí)時(shí)流式計(jì)算等缺點(diǎn)。

2006年,雅虎員工發(fā)布了Apache Hadoop開源項(xiàng)目,MapReduce是其重要的組件,Hadoop允許開發(fā)人員構(gòu)建大規(guī)模MapReduce作業(yè),可以在大型商用機(jī)器集群中執(zhí)行,并且具有極強(qiáng)的彈性和可靠性,但是仍然有作業(yè)優(yōu)化、調(diào)度、可寫性等問題,Hadoop MapReduce作業(yè)略顯笨拙。

2010年,Google研究員撰寫了一篇名為《FlumeJava:Easy,Efficient Data-Parallel Pipelines》的論文,F(xiàn)lumeJava出現(xiàn),引入了一個(gè)框架用于組織、執(zhí)行和調(diào)試大規(guī)模的MapReduce作業(yè)管道,可以去管理MapReduce未管理到的問題,比如掉隊(duì)者的問題,優(yōu)化執(zhí)行計(jì)劃,使失敗的作業(yè)易于回滾而不是從頭開始,從而大大減少了MapReduce管道的執(zhí)行時(shí)間。

但是在現(xiàn)實(shí)業(yè)務(wù)中我們發(fā)現(xiàn)批量數(shù)據(jù)處理并不能完全滿足業(yè)務(wù)需求,我們希望能實(shí)時(shí)了解數(shù)據(jù)并且把它們納入到統(tǒng)計(jì)中,這時(shí)出現(xiàn)了Millwheel,實(shí)現(xiàn)處理實(shí)時(shí)數(shù)據(jù),一直發(fā)展到今天在GCP上的工具Dataflow集成了Flume、Millwheel等內(nèi)部技術(shù),實(shí)現(xiàn)同時(shí)用一套代碼解決數(shù)據(jù)實(shí)時(shí)和批量問題。

從論文到開源項(xiàng)目到平臺(tái)工具,Google所提供的服務(wù)一直遵循著如何讓客戶使用時(shí)更方便,更簡(jiǎn)單,其背后的技術(shù)是復(fù)雜的,但是需要保證使用上是簡(jiǎn)單的,GCP數(shù)據(jù)分析平臺(tái)希望能夠讓使用者更多的關(guān)注分析和洞察,其他如計(jì)算資源、存儲(chǔ)、數(shù)據(jù)何時(shí)做分區(qū)……這些都是GCP需要考慮的事。

GCP數(shù)據(jù)分析平臺(tái)助力業(yè)務(wù)提升

ia_4200000002.JPEG

Google在大數(shù)據(jù)領(lǐng)域成果頗豐,開放在GCP數(shù)據(jù)分析平臺(tái)上,為企業(yè)提供完整數(shù)據(jù)生命周期的管理,包括規(guī)模化數(shù)據(jù)注入、數(shù)據(jù)遷移過程中的處理、數(shù)據(jù)計(jì)算和存儲(chǔ)、到最后的高級(jí)分析預(yù)測(cè)、數(shù)據(jù)展示等。

在整個(gè)分享中,Shirley重點(diǎn)分享了3款工具產(chǎn)品:

數(shù)據(jù)注入-Cloud Pub/Sub

流式和批量數(shù)據(jù)處理-Cloud Dataflow

數(shù)據(jù)分析-BigQuery

Pub/Sub幫助連接應(yīng)用與服務(wù)之間的實(shí)時(shí)消息

在數(shù)據(jù)注入的時(shí)候,往往會(huì)遇到數(shù)據(jù)被重復(fù)發(fā)送,出現(xiàn)數(shù)據(jù)延遲,或者發(fā)布者和接收者其中一方出了問題等這些異常情況,我們可能會(huì)選擇恢復(fù)數(shù)據(jù)或者刪除處理等方式。而實(shí)際上Google的Pub/Sub為解決這樣的情況提供了很多選擇。

Google Cloud Pub/Sub是Open API,是一個(gè)全托管、無運(yùn)維、全球性的服務(wù),對(duì)于對(duì)網(wǎng)絡(luò)連接重度依賴的應(yīng)用,Pub/Sub可以依托Google的全球網(wǎng)絡(luò),提供實(shí)時(shí)可靠的服務(wù)間消息聊天服務(wù)。在GCP平臺(tái)創(chuàng)建一個(gè)Pub/Sub實(shí)例的時(shí)候,用戶得到的入口是一個(gè)全球都可達(dá)的邊緣節(jié)點(diǎn),不用在每個(gè)區(qū)域都設(shè)計(jì)流式處理的入口,使得Pub/Sub適用于服務(wù)全球的業(yè)務(wù)。Google稱其已在Snapchat以及Hangouts應(yīng)用中支持這項(xiàng)技術(shù)。

消息的生命周期機(jī)制是Pub/Sub里面重要的概念,消息的消費(fèi)機(jī)制,其實(shí)就是從發(fā)布者到接收者,需要一個(gè)介質(zhì)幫助傳遞信息和管理信息,以便我們想拿到的時(shí)候就能拿到,在Pub/Sub里,這個(gè)能力就叫做訂閱(Subscription),只有當(dāng)用戶確認(rèn)接收到消息的時(shí)候,這個(gè)消息才在訂閱里消失。

Pub/Sub可以設(shè)置deadline區(qū)間,從最低10s到最高600s,如果在deadline之前沒有收到ACK(確認(rèn)字符),消息將被重新送入隊(duì)列。如果在所設(shè)置的區(qū)間內(nèi),接收者都沒有明確收到消息,消息將最多保存7天。

Dataflow保證流式和批量數(shù)據(jù)處理

在消息隊(duì)列里面,保證消息順序一直都是難題,比如游戲玩家突然斷網(wǎng),或者在網(wǎng)絡(luò)傳輸?shù)倪^程中,后發(fā)生的事件可能先傳送到了,這是Dataflow可以解決的問題。

Dataflow可以保證消息能夠及時(shí)準(zhǔn)確按順序進(jìn)入系統(tǒng),進(jìn)入后對(duì)于數(shù)據(jù)做一定層面的聚合、去重或者數(shù)據(jù)質(zhì)量檢查、數(shù)據(jù)清洗等等ETL的工作,這里面不僅僅是流式數(shù)據(jù),也包含批量數(shù)據(jù)。數(shù)據(jù)在進(jìn)入分析系統(tǒng)之前,Dataflow其實(shí)就是完成預(yù)處理的工作。

Dataflow擁有以下幾個(gè)特點(diǎn)全托管與自動(dòng)配置自動(dòng)圖形優(yōu)化以獲得最佳執(zhí)行路徑自動(dòng)縮放-在Pipeline啟動(dòng)中間,動(dòng)態(tài)調(diào)整每一個(gè)stage應(yīng)該分配多少個(gè)workernode動(dòng)態(tài)工作平衡

BigQuery數(shù)據(jù)倉庫提供強(qiáng)大的查詢和存儲(chǔ)服務(wù)

BigQuery是企業(yè)級(jí)的數(shù)據(jù)倉庫,默認(rèn)加密,從GB到TB級(jí)的存儲(chǔ)都是秒級(jí)交互式查詢,不管數(shù)據(jù)量多大,比如提交一個(gè)Job,可以隨時(shí)去看Job有沒有執(zhí)行完,是不是把結(jié)果放在了制定目標(biāo)上。

BigQuery有以下特點(diǎn):

無服務(wù)器,全托管

支持實(shí)時(shí)流數(shù)據(jù)——即使BigQuery沒有搭配Dataflow、Pub/Sub,仍然可以通過Google提供的API把實(shí)時(shí)數(shù)據(jù)放在倉庫

ia_4200000003.JPEG

內(nèi)嵌Machine Learning功能,在BigQuery可以通過SQL建模

基于內(nèi)存數(shù)據(jù)庫BI Engine加速報(bào)表生成——對(duì)于復(fù)雜大數(shù)據(jù)查詢情況下,是超高效的存儲(chǔ)介質(zhì)

BigQuery架構(gòu)同時(shí)BigQuery架構(gòu)是一個(gè)計(jì)算存儲(chǔ)分離的結(jié)構(gòu)。計(jì)算和存儲(chǔ)的分離帶來諸多好處,比如自動(dòng)擴(kuò)展,在復(fù)雜查詢場(chǎng)景下,當(dāng)計(jì)算復(fù)雜,而涉及的數(shù)據(jù)并不多的時(shí)候,就分配更多的計(jì)算資源,當(dāng)數(shù)據(jù)量特別大,但是計(jì)算相對(duì)簡(jiǎn)單,甚至沒有任何計(jì)算只是把數(shù)據(jù)收集起來反饋給用戶的時(shí)候,就擴(kuò)展更多的存儲(chǔ)資源。

而Google強(qiáng)大的網(wǎng)絡(luò)支撐,保證計(jì)算和存儲(chǔ)能夠協(xié)同工作,保證兩種資源分開后他們的交流也是非常高效,快速的。

BigQuery在木瓜移動(dòng)的應(yīng)用

木瓜移動(dòng)專注于服務(wù)國(guó)內(nèi)企業(yè)出海,業(yè)務(wù)覆蓋游戲、應(yīng)用、電商等行業(yè),數(shù)據(jù)服務(wù)上有很多Google Cloud數(shù)據(jù)產(chǎn)品應(yīng)用經(jīng)驗(yàn),木瓜移動(dòng)數(shù)據(jù)工程師Bin Wang主要分享了兩個(gè)案例。

游戲數(shù)據(jù)分析系統(tǒng)項(xiàng)目

木瓜移動(dòng)游戲項(xiàng)目正在計(jì)劃遷到GCP,目前還沒有把數(shù)據(jù)全部放到GCP進(jìn)行存儲(chǔ)和使用。但是在整個(gè)數(shù)據(jù)處理流程中有非常豐富的數(shù)據(jù)連接器,可以直接把數(shù)據(jù)放到BigQuery里面,在BigQuery里經(jīng)過Dataproc或者其他的工具進(jìn)行清洗之后,直接把數(shù)據(jù)提供給一線的產(chǎn)品運(yùn)營(yíng)或者產(chǎn)品經(jīng)理,借助Data Studio探索更深的價(jià)值。

Data Studio這一工具可以幫助產(chǎn)品運(yùn)營(yíng)更好地產(chǎn)出分析報(bào)告,除了把數(shù)據(jù)放到BigQuery之前需要一些技術(shù)支持,在后面的分析完全不需要技術(shù),產(chǎn)品和運(yùn)營(yíng)人員隨時(shí)可以拿到數(shù)據(jù)進(jìn)行探索,在業(yè)務(wù)操作上非常方便。

機(jī)器學(xué)習(xí)項(xiàng)目

對(duì)于機(jī)器學(xué)習(xí)項(xiàng)目來說,了解數(shù)據(jù)、分析數(shù)據(jù)是非常重要的,它是算法準(zhǔn)確性的根基,將機(jī)器學(xué)習(xí)的項(xiàng)目放到GCP上,給了木瓜移動(dòng)很多驚喜。首先數(shù)據(jù)收集到BigQuery,在數(shù)據(jù)分析和處理的時(shí)候,GCP提供了很多的工具,幫助算法工程師和分析工程師簡(jiǎn)單快速地了解數(shù)據(jù),并且把分析過程記錄下來,可以進(jìn)行重放,定期調(diào)度。

在機(jī)器學(xué)習(xí)項(xiàng)目中,做模型或者是進(jìn)行訓(xùn)練之前,往往要做很多特征計(jì)算的工作,包括數(shù)據(jù)特征的處理和選擇,將原始數(shù)據(jù)變成數(shù)據(jù)特征。

Bin Wang提到“之前我們的一些經(jīng)驗(yàn)就是利用Spark加速計(jì)算過程,一般算法工程師把代碼寫好,再由專門開發(fā)的工程師對(duì)代碼進(jìn)行優(yōu)化,跑在Spark上,如果出錯(cuò)就得從頭來過,花費(fèi)特別多的時(shí)間?,F(xiàn)在所有數(shù)據(jù)在BigQuery上,而BigQuery本身內(nèi)嵌Machine Learning功能,在BigQuery通過SQL建模,算法工程師寫出來的SQL就是工程可以利用的SQL,再進(jìn)行后續(xù)數(shù)據(jù)輸出?!?/span>

在數(shù)據(jù)分析處理階段,還用到了Google Cloud Dataprep,在界面中每執(zhí)行一項(xiàng)操作,Dataprep都會(huì)自動(dòng)建議和預(yù)測(cè)接下來最合適的數(shù)據(jù)轉(zhuǎn)換操作。用戶定義好轉(zhuǎn)換序列后,Dataprep會(huì)在后臺(tái)使用Dataflow來轉(zhuǎn)換數(shù)據(jù)。

ia_4200000005.png

使用GCP的數(shù)據(jù)分析平臺(tái),分析開發(fā)周期縮短3倍,查詢處理速度提升10倍,木瓜移動(dòng)項(xiàng)目進(jìn)度也實(shí)現(xiàn)大幅度提高。

分享嘉賓

Shirley Wang,現(xiàn)擔(dān)任GCP數(shù)據(jù)分析客戶工程師,有豐富的云平臺(tái)架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),目前的主要工作是幫助客戶設(shè)計(jì)規(guī)劃數(shù)據(jù)分析平臺(tái)架構(gòu)、并解決數(shù)據(jù)分析項(xiàng)目中的技術(shù)問題。她本人也對(duì)數(shù)據(jù)分析和機(jī)器學(xué)習(xí)有濃厚的興趣,熱衷于動(dòng)手實(shí)踐各種技術(shù),是一個(gè)技術(shù)派。

Bin Wang,木瓜移動(dòng)數(shù)據(jù)工程師,工作在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的第一線,有極強(qiáng)的動(dòng)手能力,對(duì)各大云廠商產(chǎn)品都有所了解,并親手在GCP平臺(tái)搭建了木瓜移動(dòng)的數(shù)據(jù)分析系統(tǒng)。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于谷歌開發(fā)者,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家