在建立模型之前,在數(shù)據(jù)經(jīng)過(guò)清洗用于探索分析之前,甚至在數(shù)據(jù)科學(xué)家工作開(kāi)始之前,數(shù)據(jù)工程師就已經(jīng)閃亮登場(chǎng)了。每一個(gè)數(shù)據(jù)驅(qū)動(dòng)的業(yè)務(wù)都需要一個(gè)適用于數(shù)據(jù)科學(xué)管道的框架,否則就是失敗的配置。
大多數(shù)人懷揣著成為數(shù)據(jù)科學(xué)家的夢(mèng)想進(jìn)入數(shù)據(jù)科學(xué)世界,但卻沒(méi)有意識(shí)到數(shù)據(jù)工程師是做什么的,或者這個(gè)角色需要具備什么能力。數(shù)據(jù)工程師是數(shù)據(jù)科學(xué)項(xiàng)目的重要組成部分,以至于在當(dāng)今數(shù)據(jù)豐富的環(huán)境里,產(chǎn)業(yè)對(duì)他們的需求正在指數(shù)式地上漲。
目前,沒(méi)有統(tǒng)一的或者正式的學(xué)習(xí)路線可供數(shù)據(jù)工程師使用。大多數(shù)擔(dān)任這個(gè)角色的人是通過(guò)在工作中學(xué)習(xí)的,而不是遵循一個(gè)詳細(xì)的學(xué)習(xí)路線。我寫(xiě)這篇文章的目的是幫助那些想成為數(shù)據(jù)工程師,但卻不知道從哪里開(kāi)始以及從哪里找到學(xué)習(xí)資源的人。
本文中,我列出了所有有抱負(fù)的數(shù)據(jù)工程師需要知道的事情。首先,我們將了解什么是數(shù)據(jù)工程師,以及該角色和數(shù)據(jù)科學(xué)家的區(qū)別,然后將繼續(xù)討論你的技能寶箱中應(yīng)該有的核心技能,以便完全勝任這個(gè)工作,最后我還提到了一些應(yīng)該考慮的行業(yè)認(rèn)可證書(shū)。
好了,讓我們直接開(kāi)始吧!
目錄
1.什么是數(shù)據(jù)工程師
2.數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師的區(qū)別
3.數(shù)據(jù)工程中的不同角色
4.數(shù)據(jù)工程認(rèn)證
5.核心數(shù)據(jù)工程技能及其學(xué)習(xí)資源
數(shù)據(jù)工程簡(jiǎn)介
基本語(yǔ)言要求:Python
扎實(shí)的操作系統(tǒng)知識(shí)
豐富、深入的數(shù)據(jù)庫(kù)知識(shí)-SQL和NoSQL
數(shù)據(jù)倉(cāng)庫(kù)-Hadoop、MapReduce、Hive、Pig、ApacheSpark、Kafka
基本的機(jī)器學(xué)習(xí)知識(shí)
6. 總結(jié)
1. 什么是數(shù)據(jù)工程師
數(shù)據(jù)工程師負(fù)責(zé)構(gòu)建和維護(hù)數(shù)據(jù)科學(xué)項(xiàng)目的數(shù)據(jù)架構(gòu),他們必須確保服務(wù)器和應(yīng)用程序之間的數(shù)據(jù)流是連續(xù)的。改進(jìn)數(shù)據(jù)基礎(chǔ)應(yīng)用程序,將新的數(shù)據(jù)管理技術(shù)和軟件集成到現(xiàn)有系統(tǒng)中,構(gòu)建數(shù)據(jù)收集管道及其他各種各樣的事情,都屬于數(shù)據(jù)工程師的職責(zé)。
數(shù)據(jù)工程中最受歡迎的技能之一是設(shè)計(jì)和構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的能力。數(shù)據(jù)倉(cāng)庫(kù)是收集、存儲(chǔ)和檢索所有原始數(shù)據(jù)的地方,如果沒(méi)有數(shù)據(jù)倉(cāng)庫(kù),一個(gè)數(shù)據(jù)科學(xué)家做的所有任務(wù)就會(huì)變得要么太昂貴,要么太大,以至于無(wú)法拓展。
ETL(提取、轉(zhuǎn)換和載入)是數(shù)據(jù)工程師構(gòu)建數(shù)據(jù)管道所遵循的步驟,它實(shí)際上是一份關(guān)于如何處理、轉(zhuǎn)換收集來(lái)的原始數(shù)據(jù)以備分析的藍(lán)圖。
數(shù)據(jù)工程師通常有著工程背景,與數(shù)據(jù)科學(xué)家不同的是,這個(gè)角色不需要太多的學(xué)術(shù)和科學(xué)知識(shí)。因此,對(duì)構(gòu)建大規(guī)模結(jié)構(gòu)和體系結(jié)構(gòu)的開(kāi)發(fā)人員或工程師非常適合這個(gè)角色。
2. 數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師之間的區(qū)別
了解這兩種角色之間的區(qū)別非常重要。從廣義上講,數(shù)據(jù)科學(xué)家綜合使用統(tǒng)計(jì)學(xué)、數(shù)學(xué)、機(jī)器學(xué)習(xí)和行業(yè)知識(shí)來(lái)構(gòu)建模型。他/她必須使用組織支持的相同工具/語(yǔ)言和框架來(lái)編碼和構(gòu)建這些模型。而數(shù)據(jù)工程師必須構(gòu)建并維護(hù)適用于數(shù)據(jù)收集、處理和部署數(shù)據(jù)密集型應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和體系架構(gòu)。構(gòu)建數(shù)據(jù)收集和存儲(chǔ)管道,將數(shù)據(jù)匯總給數(shù)據(jù)科學(xué)家,從而將模型投入生產(chǎn)-這些只是數(shù)據(jù)工程師必須執(zhí)行的任務(wù)中的一部分。
要使任何大規(guī)模數(shù)據(jù)科學(xué)項(xiàng)目取得成功,數(shù)據(jù)科學(xué)家和數(shù)據(jù)工程師需要攜手合作,否則事情很快就會(huì)出錯(cuò)。
要了解有關(guān)這兩個(gè)角色之間差異的更多信息,請(qǐng)?jiān)L問(wèn)我們的詳細(xì)信息圖。
詳細(xì)信息圖:
https://www.analyticsvidhya.com/blog/2015/10/job-comparison-data-scientist-data-engineer-statistician/
3. 與數(shù)據(jù)工程相關(guān)的不同角色
數(shù)據(jù)架構(gòu)師:數(shù)據(jù)架構(gòu)師為數(shù)據(jù)管理系統(tǒng)收集、整合和維護(hù)所有的數(shù)據(jù)源奠定基礎(chǔ),這個(gè)角色需要了解SQL、XML、Hive、Pig、Spark等工具。
數(shù)據(jù)庫(kù)管理員:顧名思義,擔(dān)任此角色的人需要對(duì)數(shù)據(jù)庫(kù)有著廣泛的了解。職責(zé)包括確保數(shù)據(jù)庫(kù)對(duì)所有需要的用戶(hù)可用,適當(dāng)?shù)鼐S護(hù)數(shù)據(jù)庫(kù),并且保證在添加新特性時(shí)沒(méi)有任何中斷。
數(shù)據(jù)工程師:精通以上眾多技巧的人。正如我們所見(jiàn),數(shù)據(jù)工程師需要掌握數(shù)據(jù)庫(kù)工具、Python和Java語(yǔ)言、分布式系統(tǒng)(如Hadoop)等知識(shí),這個(gè)角色負(fù)責(zé)多種組合任務(wù)。
4. 數(shù)據(jù)工程認(rèn)證
谷歌認(rèn)證專(zhuān)家
這是目前最重要的數(shù)據(jù)工程認(rèn)證之一。要獲得此證書(shū),你需要成功地通過(guò)一個(gè)具有挑戰(zhàn)性的、2個(gè)小時(shí)多的考試,題型是多項(xiàng)選擇題。你可以在這個(gè)網(wǎng)頁(yè)上找到考試內(nèi)容的大體范圍,此外,這個(gè)網(wǎng)頁(yè)提供給了一些實(shí)際操作谷歌云技術(shù)的實(shí)踐指南。請(qǐng)一定要看一下!
谷歌認(rèn)證專(zhuān)家:
https://cloud.google.com/certification/data-engineer
IBM認(rèn)證數(shù)據(jù)工程師
要獲得證書(shū),你需要通過(guò)這個(gè)考試。考試包含54個(gè)問(wèn)題,你必須正確回答44個(gè)。我建議在考試前,先了解IBM希望你了解的內(nèi)容。“考試”鏈接中還提供了學(xué)習(xí)資料的進(jìn)一步鏈接,你可以參考這些資料進(jìn)行準(zhǔn)備。
IBM認(rèn)證數(shù)據(jù)工程師:
https://www.ibm.com/certify/cert?id=50001501
考試:
https://www.ibm.com/certify/exam?id=C2090-101
Cloudera的CCP數(shù)據(jù)工程師
這是另一個(gè)全球公認(rèn)的認(rèn)證,對(duì)新手來(lái)說(shuō)是一個(gè)相當(dāng)具有挑戰(zhàn)性的認(rèn)證。你的概念需要更新和深入,你應(yīng)該有一些使用數(shù)據(jù)工程工具的實(shí)踐經(jīng)驗(yàn),如Hadoop,Oozie,AWS Sandbox等。但是,如果你通過(guò)這次考試,對(duì)于你獲得開(kāi)啟數(shù)據(jù)工程領(lǐng)域工作來(lái)說(shuō),會(huì)是一個(gè)充滿(mǎn)希望的開(kāi)始!
Cloudera曾提到,如果你參加他們的Apache Spark和Hadoop培訓(xùn)課程,這將有助于你通過(guò)考試,原因是考試主要基于這兩個(gè)工具。
Cloudera的CCP數(shù)據(jù)工程師:
https://www.cloudera.com/more/training/certification/ccp-data-engineer.html
Apache Spark和Hadoop培訓(xùn)課程:
https://www.cloudera.com/more/training/courses/developer-training-for-spark-and-hadoop.html
5. 數(shù)據(jù)工程核心技能及其學(xué)習(xí)資源
數(shù)據(jù)工程簡(jiǎn)介
基本語(yǔ)言要求:Python
扎實(shí)的操作系統(tǒng)知識(shí)
豐富、深入的數(shù)據(jù)庫(kù)知識(shí)-SQL和NoSQL
數(shù)據(jù)倉(cāng)庫(kù)-Hadoop、MapReduce、Hive、Pig、ApacheSpark、Kafka
基本的機(jī)器學(xué)習(xí)知識(shí)
a. 數(shù)據(jù)工程簡(jiǎn)介
在深入了解角色之間的不同方面之前,首先得了解數(shù)據(jù)工程的實(shí)質(zhì)是什么。數(shù)據(jù)工程每天執(zhí)行的不同工作是什么?頂尖技術(shù)公司想要怎樣的數(shù)據(jù)工程師?你是應(yīng)該了解可見(jiàn)的所有一切,還是僅僅了解與某一特定角色相關(guān)的東西?我的目的是提供以下參考資料,以助你找到這些問(wèn)題或者其余更多問(wèn)題的答案。
《數(shù)據(jù)工程入門(mén)指南》(第1部分):這是一篇非常受歡迎的、有關(guān)數(shù)據(jù)工程的文章,出自愛(ài)彼迎(Airbnb)的一位數(shù)據(jù)科學(xué)家之手。作者首先解釋了為什么數(shù)據(jù)工程是所有機(jī)器學(xué)習(xí)項(xiàng)目中如此關(guān)鍵的一方面,然后深入探討了本主題的每個(gè)部分。我認(rèn)為這是所有想要成為數(shù)據(jù)工程師、數(shù)據(jù)科學(xué)家的新手們必讀的一篇文章。
《數(shù)據(jù)工程入門(mén)指南》(第1部分):
https://medium.com/@rchang/a-beginners-guide-to-data-engineering-part-i-4227c5c457d7
《數(shù)據(jù)工程入門(mén)指南》(第2部分):接著上面的文章,第2部分將介紹數(shù)據(jù)建模、數(shù)據(jù)分區(qū)、Airflow和ETL的最佳實(shí)踐。
《數(shù)據(jù)工程入門(mén)指南》(第2部分):
https://medium.com/@rchang/a-beginners-guide-to-data-engineering-part-ii-47c4e7cbda71
《數(shù)據(jù)工程入門(mén)指南》(第3部分):這是入門(mén)指南系列中的最后一部分,本部分將介紹數(shù)據(jù)工程框架的概念。在整個(gè)系列中,作者不斷將理論與Airbnb的實(shí)踐相結(jié)合,從而寫(xiě)了一篇篇精妙絕倫的文章,而且還在持續(xù)更新中。
《數(shù)據(jù)工程入門(mén)指南》(第3部分):
https://medium.com/@rchang/a-beginners-guide-to-data-engineering-the-series-finale-2cc92ff14b0
O'Reilly的免費(fèi)數(shù)據(jù)工程電子書(shū)套件:O'Reilly以其優(yōu)秀的圖書(shū)而出名,這一系列也不例外。不過(guò),這些書(shū)是免費(fèi)的!向下滾動(dòng)到“大數(shù)據(jù)架構(gòu)”部分,查看那里的書(shū)籍。有些書(shū)籍需要有大數(shù)據(jù)基礎(chǔ)設(shè)施的基本知識(shí),但這些書(shū)將有助于你熟悉復(fù)雜的數(shù)據(jù)工程任務(wù)。
O'Reilly的免費(fèi)數(shù)據(jù)工程電子書(shū)套件:
https://www.oreilly.com/data/free/
b. 基本語(yǔ)言要求:Python
雖然還有其他的數(shù)據(jù)工程專(zhuān)用編程語(yǔ)言(如JAVA和Scala),但我們本文將只關(guān)注Python。我們看到業(yè)界已經(jīng)明顯轉(zhuǎn)向使用Python,而且使用率正在快速上升。它已經(jīng)成為數(shù)據(jù)工程師(和數(shù)據(jù)科學(xué)家)技能的重要組成部分。
網(wǎng)絡(luò)上有大量的學(xué)習(xí)Python資源,我在下面提到了其中的一些。
在Scratch平臺(tái)上使用Python學(xué)習(xí)數(shù)據(jù)科學(xué)的完整教程:KunalJain的這篇文章涵蓋了一系列可以用來(lái)開(kāi)始學(xué)習(xí)和提升Python的資源,這是必讀的資源。
在Scratch平臺(tái)上使用Python學(xué)習(xí)數(shù)據(jù)科學(xué)的完整教程:
https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-learn-data-science-python-scratch-2/
使用Python的數(shù)據(jù)科學(xué)導(dǎo)論:這是Analytics Vidhya上最受歡迎的課程,涵蓋了Python的基本知識(shí)。我們還額外介紹了核心統(tǒng)計(jì)概念和預(yù)測(cè)建模方法,以鞏固你對(duì)python和數(shù)據(jù)科學(xué)基礎(chǔ)的理解。
使用Python的數(shù)據(jù)科學(xué)導(dǎo)論:
https://trainings.analyticsvidhya.com/courses/coursev1:AnalyticsVidhya+DS101+2018T2/about
Codeacademy上學(xué)習(xí)Python課程:本課程不需要編程基礎(chǔ),絕對(duì)是從python的最基礎(chǔ)開(kāi)始,這是一個(gè)很好的起點(diǎn)。
Codeacademy上學(xué)習(xí)Python課程:
https://www.codecademy.com/learn/learn-python
如果你喜歡通過(guò)書(shū)本來(lái)學(xué)習(xí),下面是一些免費(fèi)的電子書(shū),便于你開(kāi)始學(xué)習(xí):
Allen Downey的《思考Python》:全面深入地介紹了Python語(yǔ)言,非常適合新手,甚至非程序員。
Allen Downey的《思考Python》:
http://www.greenteapress.com/thinkpython/thinkpython.pdf
Python3的非程序員教程:顧名思義,它是非IT背景和非技術(shù)背景新手們的完美起點(diǎn),每章都有大量的示例來(lái)測(cè)試你的知識(shí)。
Python3的非程序員教程:
https://upload.wikimedia.org/wikipedia/commons/1/1d/Non-Programmer%27s_Tutorial_for_Python_3.pdf
c. 扎實(shí)的操作系統(tǒng)知識(shí)
在整個(gè)數(shù)據(jù)科學(xué)世界的“機(jī)器”中,操作系統(tǒng)是使管道運(yùn)轉(zhuǎn)起來(lái)的重要“齒輪”。數(shù)據(jù)工程師應(yīng)該了解基礎(chǔ)設(shè)施組件(如虛擬機(jī)、網(wǎng)絡(luò)、應(yīng)用程序服務(wù)等)的輸入和輸出。你對(duì)服務(wù)器管理有多精通?你對(duì)Linux是否有足夠的了解,可以瀏覽不同的配置嗎?你對(duì)訪問(wèn)控制方法有多熟悉?作為一名數(shù)據(jù)工程師,這些只是你將面臨的一些問(wèn)題。
Linux服務(wù)器管理和安全:本課程是為那些想了解Linux如何在公司應(yīng)用的人而設(shè)計(jì)的,課程內(nèi)容分為4周(最后還有一個(gè)項(xiàng)目),詳細(xì)介紹了這個(gè)主題中的所有基本內(nèi)容。
Linux服務(wù)器管理和安全:
https://www.coursera.org/learn/linux-server-management-security
CS401-操作系統(tǒng):和其他操作系統(tǒng)課程一樣全面,這個(gè)課程包含9個(gè)部分,專(zhuān)門(mén)介紹操作系統(tǒng)的不同方面。主要介紹基于Unix的系統(tǒng),盡管Windows也包括在內(nèi)。
CS401-操作系統(tǒng):
https://learn.saylor.org/course/cs401
Raspberry Pi平臺(tái)和Raspberry Pi的python編程:這是一個(gè)炙手可熱的編程方式,現(xiàn)在對(duì)這種編程人員的需求空前高漲。本課程旨在讓你熟悉Raspberry Pi環(huán)境,并讓你開(kāi)始學(xué)習(xí)Raspberry PI上的python基本代碼。
Raspberry Pi平臺(tái)和Raspberry Pi的python編程:
https://www.coursera.org/learn/raspberry-pi-platform
d. 豐富、深入的數(shù)據(jù)庫(kù)知識(shí)-SQL和NoSQL
為了成為一名數(shù)據(jù)工程師,你需要熟練掌握數(shù)據(jù)庫(kù)語(yǔ)言和工具。這是另一個(gè)非常基本的要求,你需要具備實(shí)時(shí)從數(shù)據(jù)庫(kù)收集、存儲(chǔ)和查詢(xún)信息的能力。現(xiàn)今有很多可用的數(shù)據(jù)庫(kù),我已經(jīng)列出了目前在業(yè)界廣泛使用的數(shù)據(jù)庫(kù)的相關(guān)資源,分為SQL和NoSQL兩部分。
SQL數(shù)據(jù)庫(kù)
免費(fèi)學(xué)習(xí)SQL:這是codecademy另一個(gè)課程,你可以在這里學(xué)到SQL很基本的知識(shí),像操作、查詢(xún)、聚合函數(shù)這些主題從一開(kāi)始就涵蓋了。如果你是這個(gè)領(lǐng)域的新手,沒(méi)有比這更好的起點(diǎn)了。
免費(fèi)學(xué)習(xí)SQL:
https://www.codecademy.com/learn/learn-sql
快速查找SQL命令的備忘錄:一個(gè)非常有用的Github存儲(chǔ)庫(kù),包含定期更新的SQL查詢(xún)和示例。為了保證你在任何時(shí)候都可以快速查找SQL相關(guān)命令,請(qǐng)將為這個(gè)存儲(chǔ)庫(kù)加入收藏,作為日常參考。
快速查找SQL命令的備忘錄:
https://github.com/enochtangg/quick-SQL-cheatsheet
MYSQL教程:MySQL創(chuàng)建于20多年前,至今仍是業(yè)界的熱門(mén)選擇。這個(gè)資源是一個(gè)基于文本的教程,易于理解。這個(gè)站點(diǎn)最酷的是,每個(gè)主題都附帶實(shí)用示例的SQL腳本和屏幕截圖。
MYSQL教程:
http://www.mysqltutorial.org/
學(xué)習(xí)MicrosoftSQL Server:本教程從基礎(chǔ)知識(shí)到更高的主題探討SQL Sever的概念,并以代碼和詳細(xì)的屏幕截圖的方式解釋了概念。
學(xué)習(xí)MicrosoftSQL Server:
https://www.tutorialspoint.com/ms_sql_server/
PostgreSQL教程:這是一個(gè)讓人驚叫的詳細(xì)指南,讓你開(kāi)始和熟悉PostgreSQL。本教程分為16個(gè)部分,因此你完全可以想象出該課程的覆蓋面有多廣。
PostgreSQL教程:
http://www.postgresqltutorial.com/
OracleLiveSQL:誰(shuí)能比創(chuàng)建者更好地學(xué)習(xí)OracleSQL數(shù)據(jù)庫(kù)?這個(gè)平臺(tái)設(shè)計(jì)得非常好提供了良好的終端用戶(hù)體驗(yàn)。你可以在這個(gè)平臺(tái)上查看腳本和教程,然后還可以在這里編碼。哇,這太棒啦!
OracleLiveSQL:
https://livesql.oracle.com/apex/f?p=590:1000
NoSQL數(shù)據(jù)庫(kù)
MongoDB來(lái)自MongoDB:這是目前最流行的NoSQL數(shù)據(jù)庫(kù),和上面提及的Oracle培訓(xùn)課程一樣,學(xué)習(xí)MongoDB最好的方式是從創(chuàng)建它的大師們那里學(xué)習(xí)。我在這里鏈接了他們的整個(gè)課程目錄,你可以選擇你想?yún)⒓拥呐嘤?xùn)課程。
MongoDB來(lái)自MongoDB:
https://university.mongodb.com/courses/catalog
MongoDB簡(jiǎn)介:本課程將幫助你快速啟動(dòng)和運(yùn)行MongoDB,并教你如何利用它進(jìn)行數(shù)據(jù)分析。這是一個(gè)為期3周的短課程,但有大量的練習(xí)。當(dāng)你完成的時(shí)候,會(huì)覺(jué)得自己就是一名專(zhuān)家了!
MongoDB簡(jiǎn)介:
https://www.coursera.org/learn/introduction-mongodb
學(xué)習(xí)Cassandra:如果你正在尋找一個(gè)優(yōu)秀的、基于文本的、新手易于理解的Cassandra簡(jiǎn)介,這會(huì)是一個(gè)完美的資源。像Cassandra的架構(gòu)、安裝、關(guān)鍵操作等主題都會(huì)在這里有所介紹,本教程還提供了專(zhuān)門(mén)的章節(jié)來(lái)講解CQL種可用的數(shù)據(jù)類(lèi)型和集合、以及如何使用用戶(hù)自定義的數(shù)據(jù)類(lèi)型。
學(xué)習(xí)Cassandra:
https://www.tutorialspoint.com/cassandra/index.htm
Redis Enterprise:了解Redis的資源不多,但這一個(gè)站點(diǎn)就足夠了。有多個(gè)課程和精心設(shè)計(jì)的視頻,使人沉浸其中,樂(lè)趣無(wú)窮,而且它是免費(fèi)的!
Redis Enterprise:
https://university.redislabs.com/
GoogleBigtable:作為Google的產(chǎn)品,學(xué)習(xí)BigTable工作原理的資源稀缺得讓人驚訝,我鏈接了一個(gè)包含大量谷歌云主題的課程,你可以向下滾動(dòng),選擇BigTable(或BigQuery)。不過(guò),我建議你仔細(xì)閱讀整個(gè)課程,因?yàn)樗峁┝擞嘘P(guān)谷歌整個(gè)云產(chǎn)品如何工作的寶貴見(jiàn)解。
GoogleBigtable:
https://www.coursera.org/learn/gcp-fundamentals
Couchbase:這里提供多種培訓(xùn)課程(向下滾動(dòng)查看免費(fèi)培訓(xùn)課程),從初學(xué)者到高級(jí)都有。如果Couchbase是你們所用的數(shù)據(jù)庫(kù),那么你將在這里了解有關(guān)它的所有信息。
Couchbase:
http://training.couchbase.com/store
e. 數(shù)據(jù)倉(cāng)庫(kù)-Hadoop、MapReduce、Hive、Pig、ApacheSpark、Kafka
現(xiàn)在,在每一個(gè)數(shù)據(jù)工程師的工作描述中都會(huì)看到像Hadoop(HDFS)這樣的分布式文件系統(tǒng)。它是所有角色都需要掌握的,你應(yīng)該非常熟悉。除此之外,你還需要了解ApacheSpark、Hive、Pig、Kafka等平臺(tái)和框架,我在本節(jié)列出了所有這些主題的資源。
Hadoop和MapReduce
Hadoop基礎(chǔ)知識(shí):這本質(zhì)上是Hadoop的學(xué)習(xí)路徑,它包括5門(mén)課程,可以讓你深入地了解hadoop是什么、定義它的體系結(jié)構(gòu)和組件是什么、如何使用它、它的應(yīng)用怎么樣以及其他更多的內(nèi)容。
Hadoop基礎(chǔ)知識(shí):
https://cognitiveclass.ai/learn/hadoop/
Hadoop入門(mén)包:對(duì)于想要著手開(kāi)始學(xué)Hadoop的人來(lái)說(shuō),這是一個(gè)非常全面的、優(yōu)秀的免費(fèi)課程。它包括HDFS、MapReduce、Pig和Hive之類(lèi)的主題,可以通過(guò)免費(fèi)訪問(wèn)集群來(lái)練習(xí)所學(xué)的內(nèi)容。
Hadoop入門(mén)包:
https://www.udemy.com/hadoopstarterkit/
HortonWorks教程:作為Hadoop的創(chuàng)建者,HortonWorks擁有一套令人萬(wàn)分期待的課程,可以學(xué)習(xí)與Hadoop相關(guān)的各種知識(shí)。從低級(jí)到高級(jí),本頁(yè)有著非常全面的教程列表,一定要看一下這個(gè)!
HortonWorks教程:
https://hortonworks.com/tutorials/
MapReduce簡(jiǎn)介:在閱讀本文之前,你需要了解Hadoop的基本工作原理。請(qǐng)完成后,再回來(lái)深入了解MapReduce的世界。
MapReduce簡(jiǎn)介:
https://www.analyticsvidhya.com/blog/2014/05/introduction-mapreduce/
Hadoop超越了傳統(tǒng)的MapReduce-簡(jiǎn)版:本文介紹了Hadoop生態(tài)系統(tǒng)的概述,它超越了簡(jiǎn)單的MapReduce。
Hadoop超越了傳統(tǒng)的MapReduce-簡(jiǎn)版:
https://www.analyticsvidhya.com/blog/2014/11/hadoop-mapreduce/
更喜歡書(shū)嗎?別擔(dān)心,我已經(jīng)幫你選好了!下面是一些免費(fèi)電子書(shū),涵蓋hadoop和它的組件。
《Hadoop詳解》:簡(jiǎn)要介紹Hadoop的復(fù)雜體系,對(duì)Hadoop的工作原理、優(yōu)勢(shì)、現(xiàn)實(shí)場(chǎng)景中的應(yīng)用程序等進(jìn)行了高層次的概述。
《Hadoop詳解》:
https://www.packtpub.com/packt/free-ebook/hadoop-explained
《Hadoop-你應(yīng)該了解的》:這本書(shū)和上面的書(shū)有相似的內(nèi)容。正如描述所說(shuō),這些書(shū)所涵蓋的內(nèi)容足夠讓你了解Hadoop的方方面面,從而做出明智的決策。
《Hadoop-你應(yīng)該了解的》:
https://www.oreilly.com/data/free/hadoop-what-you-need-to-know.csp?intcmp=il-data-free-lp-lgen_free_reports_page
《使用MapReduce進(jìn)行數(shù)據(jù)密集型文本處理》:這本免費(fèi)電子書(shū)涵蓋了MapReduce的基本知識(shí)及其算法的設(shè)計(jì),然后深入探討了你應(yīng)該了解的示例和應(yīng)用程序。建議你在閱讀這本書(shū)之前先上上述課程。
《使用MapReduce進(jìn)行數(shù)據(jù)密集型文本處理》:
https://lintool.github.io/MapReduceAlgorithms/MapReduce-book-final.pdf
你應(yīng)該加入HadoopLinkedIn小組,以保證自己獲取最新的消息,并詢(xún)問(wèn)你的任何問(wèn)題。
HadoopLinkedIn小組
https://www.linkedin.com/groups/988957/profile
Apache Spark
ApacheSpark、RDD和Dataframes(使用PySpark)的綜合指南:這是一篇讓你開(kāi)始學(xué)習(xí)ApacheSpark的終極文章,屬于必讀指南。它介紹了ApacheSpark的歷史以及如何使用Python、RDD/Dataframes/Datasets安裝它,然后通過(guò)解決機(jī)器學(xué)習(xí)問(wèn)題,對(duì)自己的知識(shí)點(diǎn)進(jìn)行查漏補(bǔ)缺。
ApacheSpark、RDD和Dataframes(使用PySpark)的綜合指南:
https://www.analyticsvidhya.com/blog/2016/09/comprehensive-introduction-to-apache-spark-rdds-dataframes-using-pyspark/
初學(xué)者學(xué)習(xí)SparkR的詳細(xì)指南:如果你是R的用戶(hù),這個(gè)就是為你準(zhǔn)備的!當(dāng)然,你可以使用Spark和R,本文可以作為你的指南。
初學(xué)者學(xué)習(xí)SparkR的詳細(xì)指南:
https://www.analyticsvidhya.com/blog/2016/06/learning-path-step-step-guide-beginners-learn-sparkr/
Spark的基礎(chǔ)知識(shí):本課程涵蓋Spark的基礎(chǔ)知識(shí)、組件、使用方法、使用它的交互式示例和各種Spark庫(kù),最后了解Spark集群。你還能從這門(mén)課程中要求更多的內(nèi)容嗎?
Spark的基礎(chǔ)知識(shí):
https://cognitiveclass.ai/courses/what-is-spark/
ApacheSpark和AWS簡(jiǎn)介:這是一門(mén)以實(shí)踐為中心的課程。你將處理古登堡項(xiàng)目數(shù)據(jù),它是世界上最大的電子書(shū)開(kāi)放數(shù)據(jù)集。你還需要了解Python和Unix命令行,以便從本課程中學(xué)到更多。
ApacheSpark和AWS簡(jiǎn)介:
https://www.coursera.org/learn/bigdata-cluster-apache-spark-and-aws
涵蓋Hadoop、Spark、Hive和Spark SQL的綜合教程
大數(shù)據(jù)基礎(chǔ)知識(shí)-HDF、MapReduce和Spark RDD:本課程采用真實(shí)的數(shù)據(jù)來(lái)教你基本的大數(shù)據(jù)技術(shù)-HDFS、MapReduce和Spark。這門(mén)課程非常詳細(xì),示例豐富,數(shù)據(jù)集實(shí)用,而且教師很優(yōu)秀,屬于經(jīng)典課程。
大數(shù)據(jù)基礎(chǔ)知識(shí)-HDF、MapReduce和Spark RDD:
https://www.coursera.org/learn/big-data-essentials
大數(shù)據(jù)分析-Hive、SparkSQL、DataFrames 和GraphFrames:MapReduce和Spark解決了處理大數(shù)據(jù)的部分問(wèn)題,通過(guò)這門(mén)直觀的課程你可以掌握這些高級(jí)工具,從而掌握有關(guān)Hive和SparkSQL等方面的知識(shí)。
大數(shù)據(jù)分析-Hive、SparkSQL、DataFrames和GraphFrames:
https://www.coursera.org/learn/big-data-analysis
大數(shù)據(jù)應(yīng)用-實(shí)時(shí)流:處理大數(shù)據(jù)的挑戰(zhàn)除了要具備處理數(shù)據(jù)的計(jì)算能力,還要具備盡可能快的處理速度。像推薦引擎這樣的應(yīng)用程序需要實(shí)時(shí)地進(jìn)行大量數(shù)據(jù)的處理、存儲(chǔ)和查詢(xún),這就要求你掌握本課程中所提供的諸如Kafka、Cassandra和Redis等系統(tǒng)的知識(shí)。但要學(xué)習(xí)這門(mén)課程,你需要了解Hadoop、Hive、Python、Spark和SparkSQL的應(yīng)用。
大數(shù)據(jù)應(yīng)用-實(shí)時(shí)流:
https://www.coursera.org/learn/real-time-streaming-big-data
Kafka
使用ApacheKafka簡(jiǎn)化數(shù)據(jù)管道:了解ApacheKafka及其體系架構(gòu)和使用方法,你需要對(duì)Hadoop、Spark和Python有基本的了解,才能真正從本課程中獲得最大的收獲。
使用ApacheKafka簡(jiǎn)化數(shù)據(jù)管道:
https://cognitiveclass.ai/courses/simplifyingdatapipelines/
Kafka官方文檔:這是一個(gè)非常直觀地介紹Kafka的工作原理及其組件的網(wǎng)頁(yè),它還提供了一個(gè)關(guān)于分布式流媒體平臺(tái)的解釋說(shuō)明,非常棒!
Kafka官方文檔:
https://kafka.apache.org/intro
用Kafka給數(shù)據(jù)科學(xué)家賦能:這本身不是一個(gè)很好的學(xué)習(xí)資源,而是一篇介紹Stitch Fix的數(shù)據(jù)工程師如何根據(jù)數(shù)據(jù)科學(xué)家的要求構(gòu)建一個(gè)平臺(tái)的文章,非常有趣,而且十分詳細(xì)。
用Kafka給數(shù)據(jù)科學(xué)家賦能:
https://multithreaded.stitchfix.com/blog/2018/09/05/datahighway/
f. 基本的機(jī)器學(xué)習(xí)知識(shí)
雖然人們普遍認(rèn)為機(jī)器學(xué)習(xí)是數(shù)據(jù)科學(xué)家的領(lǐng)域,但數(shù)據(jù)工程師也需要精通其中的某些技術(shù),原因在于你需要簡(jiǎn)化將模型投入生產(chǎn)的過(guò)程和用于數(shù)據(jù)收集、生成的管道。因此,你需要對(duì)機(jī)器學(xué)習(xí)算法有一個(gè)基本的了解。
學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)的新手指南:作者Kunal Jain精彩地介紹了機(jī)器學(xué)習(xí)世界,旨在消除你聽(tīng)到或讀到地所有行話(huà)。指南直截了當(dāng)?shù)厍腥雴?wèn)題的核心,最終你會(huì)愛(ài)上這種寫(xiě)作風(fēng)格。
學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)的新手指南:
https://www.analyticsvidhya.com/blog/2015/06/machine-learning-basics/
機(jī)器學(xué)習(xí)算法基本知識(shí):這是一篇優(yōu)秀的文章,提供了各種對(duì)機(jī)器學(xué)習(xí)算法的高層次理解,還提供了在R和python實(shí)現(xiàn)這些算法的指南,這是開(kāi)啟你學(xué)習(xí)旅程的絕佳地點(diǎn)!
機(jī)器學(xué)習(xí)算法基本知識(shí):
https://www.analyticsvidhya.com/blog/2017/09/common-machine-learning-algorithms/
新手必讀的機(jī)器學(xué)習(xí)和人工智能書(shū)籍:如果你更喜歡看書(shū),那么請(qǐng)閱讀本文!這里收藏了最優(yōu)秀的書(shū),即使你只讀了其中的幾本,這也會(huì)助你朝著夢(mèng)想中的事業(yè)邁進(jìn)一大步!
新手必讀的機(jī)器學(xué)習(xí)和人工智能書(shū)籍:
https://www.analyticsvidhya.com/blog/2018/10/read-books-for-beginners-machine-learning-artificial-intelligence/
提升你知識(shí)和技能的24個(gè)終極數(shù)據(jù)科學(xué)項(xiàng)目:一旦你獲得了一定量的知識(shí)和技能,請(qǐng)一定要把你的理論知識(shí)付諸實(shí)踐。查看這些數(shù)據(jù)集,按照易到難的順序,開(kāi)始處理吧!
提升你知識(shí)和技能的24個(gè)終極數(shù)據(jù)科學(xué)項(xiàng)目:
https://www.analyticsvidhya.com/blog/2018/05/24-ultimate-data-science-projects-to-boost-your-knowledge-and-skills/
6. 總結(jié)
成為一名數(shù)據(jù)工程師并不容易,因?yàn)槟阈枰獜囊陨纤械馁Y源中獲取信息,而且你還要有著將工具、技術(shù)和職業(yè)道德融為一體的深入理解。由于現(xiàn)在是數(shù)據(jù)時(shí)代,數(shù)據(jù)工程師在業(yè)內(nèi)需求巨大,對(duì)于任何愿意從事這一工作的人來(lái)說(shuō),這依舊是一個(gè)收入可觀的職業(yè)選擇!
一旦你走上這條路,就力爭(zhēng)成為數(shù)據(jù)工程師吧!
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132646 -
大數(shù)據(jù)
+關(guān)注
關(guān)注
64文章
8889瀏覽量
137444 -
數(shù)據(jù)工程師
+關(guān)注
關(guān)注
0文章
8瀏覽量
1190
原文標(biāo)題:年前干貨:數(shù)據(jù)工程師必備的學(xué)習(xí)資源(附鏈接)
文章出處:【微信號(hào):BigDataDigest,微信公眾號(hào):大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論