精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

科技巨頭都愛的Data Pipeline,如何自動(dòng)化你的數(shù)據(jù)工作?

責(zé)任編輯:cres

作者:hely

2018-01-31 16:22:38

摘自:網(wǎng)絡(luò)大數(shù)據(jù)

對于做數(shù)據(jù)分析或者需要建模的人來說,面對龐雜的大數(shù)據(jù),最棘手的難題往往就是多線程工作了。面對這種情況,你其實(shí)可以嘗試搭建一套Data Pipeline系統(tǒng)。

對于做數(shù)據(jù)分析或者需要建模的人來說,面對龐雜的大數(shù)據(jù),最棘手的難題往往就是多線程工作了。面對這種情況,你其實(shí)可以嘗試搭建一套Data Pipeline系統(tǒng)。Data Pipeline,中文譯為數(shù)據(jù)工作流,就是一套讓你的工作數(shù)據(jù)化、流程化、自動(dòng)化的系統(tǒng)方法。美國紐約數(shù)據(jù)科學(xué)學(xué)院大數(shù)據(jù)專家閆述,結(jié)合具體的案例,深入淺出地為我們介紹了Data Pipeline在機(jī)器學(xué)習(xí)中的典型應(yīng)用。
 
什么是Data Pipeline?
 
今天我主要跟大家聊聊Data Pipeline在數(shù)據(jù)工作中的實(shí)際應(yīng)用。在我們的日常工作中,無論是機(jī)器學(xué)習(xí)的建模,還是數(shù)據(jù)產(chǎn)品開發(fā),Data Pipeline實(shí)際上都是一個(gè)不可或缺的部分。特別是隨著數(shù)據(jù)來源更加多樣化、復(fù)雜化以及數(shù)據(jù)量的飛速增長,搭建一個(gè)高效的Data Pipeline,不僅能使你的工作事半功倍,更是很多復(fù)雜問題得以解決的關(guān)鍵所在。
 
我們先來看Data Pipeline的概念。從英文字面上看,Pipeline翻譯成中文,其實(shí)有兩層意思,它可以是管道、也可以是管道運(yùn)輸?shù)囊馑肌Mㄋc(diǎn)兒來講,Data Pipeline可以理解為是一個(gè)貫穿了整個(gè)數(shù)據(jù)產(chǎn)品或者數(shù)據(jù)系統(tǒng)的一個(gè)管道,而數(shù)據(jù)就是這個(gè)管道所承載的主要對象。Data Pipeline連接了不同的數(shù)據(jù)處理分析的各個(gè)環(huán)節(jié),將整個(gè)龐雜的系統(tǒng)變得井然有序,便于管理和擴(kuò)展。從而讓使用者能夠集中精力從數(shù)據(jù)中獲取所需要的信息,而不是把精力花費(fèi)在管理日常數(shù)據(jù)和管理數(shù)據(jù)庫方面。
 
 
(圖片說明:Data Pipeline溝通了數(shù)據(jù)源和數(shù)據(jù)應(yīng)用的目標(biāo),包含了一家公司內(nèi)部的數(shù)據(jù)流動(dòng)全過程)
 
在如今的實(shí)際數(shù)據(jù)工作中,我們需要處理的數(shù)據(jù)常常是多種多樣的。比如說設(shè)想這樣一個(gè)場景:如果我們需要對某一個(gè)產(chǎn)品進(jìn)行一些分析,數(shù)據(jù)的來源可能是來自于社交媒體的用戶評論、點(diǎn)擊率,也有可能是從銷售渠道獲取的交易數(shù)據(jù)、或者歷史數(shù)據(jù),或者是從商品網(wǎng)站所抓取的產(chǎn)品信息。面對這么多不同的數(shù)據(jù)來源,你所要處理的數(shù)據(jù)可能包含CSV文件、也可能會(huì)有JSON文件、Excel等各種形式,可能是圖片文字,也可能是存儲(chǔ)在數(shù)據(jù)庫的表格,還有可能是來自網(wǎng)站、APP的實(shí)時(shí)數(shù)據(jù)。
 
在這種場景下,我們就迫切需要設(shè)計(jì)一套Data Pipeline來幫助我們對不同類型的數(shù)據(jù)進(jìn)行自動(dòng)化整合、轉(zhuǎn)換和管理,并在這個(gè)基礎(chǔ)上幫我們延展出更多的功能,比如可以自動(dòng)生成報(bào)表,自動(dòng)去進(jìn)行客戶行為預(yù)測,甚至做一些更復(fù)雜的分析等。
 
 
 
 
 
(圖片說明:從數(shù)據(jù)源到數(shù)據(jù)處理,再到實(shí)現(xiàn)數(shù)據(jù)目標(biāo)的過程)
 
對于Data Pipeline,很多人習(xí)慣于將它和傳統(tǒng)的ETL(Extract-Transform-Load,指的是將數(shù)據(jù)從來源端經(jīng)過抽取、轉(zhuǎn)換、加載至目的端的過程)來對比。相對于傳統(tǒng)的ETL,Data Pipeline的出現(xiàn)和廣泛使用,主要是應(yīng)對目前復(fù)雜的數(shù)據(jù)來源和應(yīng)用需求,是跟“大數(shù)據(jù)”的需求密不可分的。
 
在實(shí)際應(yīng)用中,目前Data Pipeline在機(jī)器學(xué)習(xí)、任務(wù)分析、網(wǎng)絡(luò)管理、產(chǎn)品研發(fā)方面都是被廣泛采用的。像是Facebook、Google或是國內(nèi)的百度、騰訊這樣的數(shù)據(jù)驅(qū)動(dòng)型的科技巨頭,它們的任何一個(gè)產(chǎn)品的開發(fā),都有一支龐大的數(shù)據(jù)工程師隊(duì)伍在后臺對整個(gè)產(chǎn)品的Data Pipeline進(jìn)行設(shè)計(jì)開發(fā)和維護(hù)。
 
很多時(shí)候,我們甚至可以說,Data Pipeline的成敗是整個(gè)產(chǎn)品成敗的關(guān)鍵。
 
Data Pipeline在機(jī)器學(xué)習(xí)中的應(yīng)用案例
 
Data Pipeline的應(yīng)用有很多,我主要介紹一下其在機(jī)器學(xué)習(xí)中的應(yīng)用。盡管在機(jī)器學(xué)習(xí)領(lǐng)域的應(yīng)用只是Data Pipeline的一個(gè)小應(yīng)用,但卻是非常成功的。
 
對于機(jī)器學(xué)習(xí)來說,Data Pipeline的主要任務(wù)就是讓機(jī)器對已有數(shù)據(jù)進(jìn)行分析,從而能使機(jī)器對新的數(shù)據(jù)進(jìn)行合理地判斷。
 
我想很多人都對Kaggle有所耳聞,可能也有一些人參與過Kaggle的項(xiàng)目。Kaggle是一個(gè)數(shù)據(jù)分析的平臺,企業(yè)或者研究者可以描述數(shù)據(jù)方面的問題,把對模型的期望發(fā)布到kaggle上面,以競賽的形式向廣大的數(shù)據(jù)科學(xué)愛好者征集更有效的解決方案。
 
 
 
 
上面這張圖,是我從一位經(jīng)常參與Kaggle項(xiàng)目的達(dá)人的博客中拿到的。在和很多Kaggle達(dá)人的接觸中,其實(shí)我們可以發(fā)現(xiàn),他們大多數(shù)都會(huì)將Data Pipeline整合到自己的機(jī)器學(xué)習(xí)建模的流程中。
 
這張流程圖基本涵蓋了絕大多數(shù)機(jī)器學(xué)習(xí)要做的事情。如果你有一套合理的Data Pipeline來幫助你自動(dòng)進(jìn)行機(jī)器學(xué)習(xí),那么其實(shí)可以省去大量的瑣碎的環(huán)節(jié),從而把精力集中在具體模型的分析上。
 
下面我們通過一個(gè)簡單的機(jī)器學(xué)習(xí)案例來看一下Data Pipeline是怎樣用于實(shí)際問題的。在這個(gè)案例中,我們用到的數(shù)據(jù)是來源于亞馬遜的產(chǎn)品分類信息,其中包含了產(chǎn)品介紹、用戶對產(chǎn)品的評分、評論,以及實(shí)時(shí)的數(shù)據(jù)。這個(gè)項(xiàng)目的主要目的是希望可以用這些實(shí)時(shí)獲取的數(shù)據(jù)構(gòu)建模型,從而對新的產(chǎn)品進(jìn)行打分。
 
 
 
 
 
在這個(gè)項(xiàng)目中,其實(shí)涉及了兩個(gè)Data Pipeline。第一個(gè)Data Pipeline是用于構(gòu)建基本的模型。如下面這個(gè)流程圖。就是在機(jī)器學(xué)習(xí)過程中最基本的流程,包括了讀取數(shù)據(jù)、探索分析、模型選擇以及評估等。有了Data Pipeline,大大提升了運(yùn)行效率。
 
 
 
 
這樣一個(gè)類似模塊化設(shè)計(jì)的Data Pipeline,其應(yīng)用到的很多組件在之前的代碼中就已經(jīng)設(shè)定好。如果我們在后續(xù)需要對Data Pipeline進(jìn)行修改,只需要去修改最初的某個(gè)定義就可以。對于廣大碼農(nóng)來說,這可以說是節(jié)省了很多重復(fù)性的工作,而且使得代碼更加簡潔,查錯(cuò)也更加方便。
 
有了最基本的模型,下一步就是構(gòu)建第二個(gè)Data Pipeline,使其服務(wù)于實(shí)時(shí)預(yù)測。因?yàn)槟壳埃瑪?shù)據(jù)是每分每秒都在更新,為了追求預(yù)測的準(zhǔn)確性和時(shí)效性,大多數(shù)的公司都會(huì)對數(shù)據(jù)進(jìn)行實(shí)時(shí)或是準(zhǔn)實(shí)時(shí)的分析,從而就有了Data Pipeline的需求。
 
 
 
在第二個(gè)Data Pipeline中,最重要的兩個(gè)環(huán)節(jié)就是上圖中的read query stream(讀取實(shí)時(shí)數(shù)據(jù))、query the stream(實(shí)時(shí)計(jì)算數(shù)據(jù))這兩個(gè)環(huán)節(jié),它主要起到了實(shí)時(shí)去讀取數(shù)據(jù)、然后再對數(shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算,給用戶一個(gè)實(shí)時(shí)的反饋的作用。這樣的話,數(shù)據(jù)就可以實(shí)現(xiàn)更大的價(jià)值。
 
第二個(gè)案例,則是一個(gè)更加具體的案例。很多朋友喜歡從Netflix上看美劇。作為一家成立于1997年,最初以出租DVD為主營業(yè)務(wù),現(xiàn)在發(fā)展成為美國首屈一指的互聯(lián)網(wǎng)流媒體服務(wù)商,Netflix目前很大一部分業(yè)務(wù)其實(shí)都是基于數(shù)據(jù)處理和分析來完成的。
 
 
如果你通過APP或者是手機(jī)去使用Netflix服務(wù),你很可能會(huì)遇到下面這樣的界面:
 
 
 
Netflix會(huì)根據(jù)你的瀏覽記錄來推斷你的喜好,從而給你進(jìn)行個(gè)性化的推薦。憑借著這種實(shí)時(shí)而準(zhǔn)確的用戶數(shù)據(jù)來推薦影片,Netflix吸引著更多的用戶去成為它的訂閱者。而事實(shí)上,它這種以數(shù)據(jù)為核心的商業(yè)模式,和它的規(guī)模也有很大關(guān)系。根據(jù)最新的統(tǒng)計(jì)結(jié)果,Netflix的用戶遍及了全球190個(gè)國家,每個(gè)月用戶的總活躍時(shí)間達(dá)到了30億個(gè)小時(shí)
 
 
 
 
 
(圖片說明:Netflix的用戶規(guī)模和數(shù)據(jù)規(guī)模等)
 
有了這么豐富的數(shù)據(jù),是非常適合使用Data Pipeline的。Data Pipeline在Netflix的推薦系統(tǒng)中起到的作用是將來自全球的用戶數(shù)據(jù)進(jìn)行整合分類,導(dǎo)入不同的時(shí)間、不同類型的模型中,從而對用戶的行為進(jìn)行一個(gè)實(shí)時(shí)的預(yù)測。
 
Netflix的Data Pipeline系統(tǒng)可以分成三個(gè)部分:實(shí)時(shí)計(jì)算、準(zhǔn)實(shí)時(shí)計(jì)算、離線部分。
 
實(shí)時(shí)計(jì)算部分,主要是用于對實(shí)時(shí)事件的響應(yīng)和與用戶的互動(dòng),它必須在極短的時(shí)間里對用戶的請求作出響應(yīng),因此它比較適用于小量數(shù)據(jù)的簡單運(yùn)算。而至于離線計(jì)算,它則不會(huì)受到這些因素的干擾,比較適用于大量數(shù)據(jù)的批處理運(yùn)算。
 
準(zhǔn)實(shí)時(shí)運(yùn)算,則是介于實(shí)時(shí)和離線之間。它可以處理實(shí)時(shí)運(yùn)算,但是又不要求很快給出結(jié)果。比如當(dāng)用戶看過某部電影之后再給出推薦,就是準(zhǔn)實(shí)時(shí)運(yùn)算,可以用來對推薦系統(tǒng)進(jìn)行更新,從而避免對用戶的重復(fù)推薦。
 
當(dāng)然,Netflix要搭建Data Pipeline這樣的系統(tǒng),也有一定的技術(shù)和硬件要求。
 
比如,在下圖中你可以看到左邊列出了很多硬件上的要求。很多是在云端的服務(wù),比如亞馬遜云服務(wù)(AWS)。在在線的運(yùn)算系統(tǒng)中,如果對速度的要求很快,可能會(huì)用到Cassandra、EVCache。而對于離線的推薦和運(yùn)算來說,我們需要的是對大數(shù)據(jù)的存儲(chǔ),而不會(huì)太在乎它的速度快慢,所以這時(shí)候HIVE ON S3會(huì)是一個(gè)比較好的選擇。
 
 
 
 
搭建Data Pipeline的常見工具有哪些?
 
搭建Data Pipeline是一個(gè)復(fù)雜的數(shù)據(jù)工程,它牽扯很多因素,比如軟硬件協(xié)調(diào),資金方面的投入等。這里我不再詳細(xì)說明。
 
下面,我想介紹一些常用的Data Pipeline相關(guān)工具。
 
 
 
首先是存儲(chǔ)方面,這個(gè)也是大家最容易接觸到的。首先,你需要知道你的數(shù)據(jù)從哪里來,它的速度、它的數(shù)據(jù)量是多少。然后你要知道當(dāng)你的數(shù)據(jù)經(jīng)過數(shù)據(jù)處理之后,Data Pipeline需要把數(shù)據(jù)以什么樣的格式、存儲(chǔ)在怎樣一個(gè)數(shù)據(jù)環(huán)境里。
 
根據(jù)數(shù)據(jù)格式和數(shù)據(jù)數(shù)量的不同,你需要根據(jù)你的目的選擇合適的數(shù)據(jù)存儲(chǔ)方式。如果你的數(shù)據(jù)量特別大,你很有可能需要使用像是Hive這樣的基于大數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)工具。
 
其次,你需要考慮到你要對數(shù)據(jù)進(jìn)行怎樣的處理。比如,如果你需要做批量處理、實(shí)時(shí)分析等,這些問題都可能需要你使用能處理大量數(shù)據(jù)的工具。像是Spark就是比較流行的的處理方案,因?yàn)樗撕芏嘟涌冢旧峡梢蕴幚鞤ata Pipeline中所需要面臨的絕大多數(shù)問題。
 
 
 
Data Pipeline相關(guān)的復(fù)雜工具有很多,你需要去認(rèn)真選擇最適合的工具。
 
這里我想分享一個(gè)搭建Data Pipeline可能會(huì)用到的小管理工具。它是由Airbnb開發(fā)的一款叫做Airflow的小軟件。這個(gè)軟件是用Data Pipeline來寫的,對于Python的腳本有良好的支持。它的主要作用是對數(shù)據(jù)工作的調(diào)度提供可靠的流程,而且它還自帶UI,方便使用者監(jiān)督程序進(jìn)程,進(jìn)行實(shí)時(shí)的管理。
 
 
 
在Airflow這個(gè)軟件中,最重要的一個(gè)概念叫做DAG(有向無環(huán)圖)。關(guān)于DAG,前面提到的機(jī)器學(xué)習(xí)案例中其實(shí)已經(jīng)有了應(yīng)用。在Airflow中,你可以將DAG看成是一個(gè)小的流程,這個(gè)小流程是由一個(gè)個(gè)有向的子任務(wù)組成,按照事先規(guī)定好的順序來一次順序執(zhí)行,最終達(dá)到Data Pipeline所要實(shí)現(xiàn)的目的。
 
由于時(shí)間關(guān)系,這里不再具體展開。簡而言之,我想說的是,在數(shù)據(jù)處理的過程中,Data Pipeline是一個(gè)很重要的系統(tǒng),而在搭建這樣的系統(tǒng)中,可以適當(dāng)通過一些軟件來管理,從而獲得最好的效果。

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

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

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 辽宁省| 文昌市| 库伦旗| 翼城县| 米泉市| 东宁县| 台前县| 阿巴嘎旗| 会昌县| 永修县| 沈阳市| 萨嘎县| 沅陵县| 定兴县| 万盛区| 定兴县| 辰溪县| 皋兰县| 揭阳市| 乡宁县| 苍山县| 武定县| 吴旗县| 合作市| 西宁市| 巴中市| 石阡县| 阳朔县| 寿宁县| 清河县| 炉霍县| 荣成市| 台湾省| 舟曲县| 九江市| 永州市| 米林县| 苏州市| 襄樊市| 舞阳县| 高密市|