夜色AV秘 无码一区二区三va|99久久精品免费看国产一区二区|国产人成精品一区二区三区无码亚|日韩欧美亚洲国产精品字幕久久久|新欧美精品一区二区三区在线观看|亚洲欧美在线观看亚洲国产二区三区|免费一区二区三区爽视频视频社区在线

報名/咨詢熱線

4001052389

新聞資訊

網(wǎng)站首頁>新聞資訊>學(xué)校動態(tài)

如何成為一名合格的數(shù)據(jù)工程師?
發(fā)布時間:2022-06-06 14:40:56      點擊次數(shù):1271

數(shù)據(jù)工程師最近今年可謂是炙手可熱。根據(jù) hired.com 發(fā)布的數(shù)據(jù),2019 年該崗位 需求量已上漲 45%,在舊金山灣區(qū),數(shù)據(jù)工程師的平均工資可達(dá) 16,000 美刀。那么,成為一名合格的數(shù)據(jù)工程師要滿足什么條件呢?

數(shù)據(jù)工程師的工作

數(shù)據(jù)工程師的工作與數(shù)據(jù)息息相關(guān),這一點光是從名字上就可窺見一二。與從已有數(shù)據(jù)中提煉信息的數(shù)據(jù)分析師不同,數(shù)據(jù)工程師要做的是搭建用于傳遞、存儲和處理信息的架構(gòu),負(fù)責(zé)數(shù)據(jù)的收集、轉(zhuǎn)移、存儲,以及數(shù)據(jù)準(zhǔn)備工作。根據(jù) AI 行業(yè)的需求金字塔,這些任務(wù)都是處于塔的最底層。也就是說,如果一家企業(yè)的業(yè)務(wù)是基于數(shù)據(jù)或者 AI 的話,那么數(shù)據(jù)工程師的雇傭和培訓(xùn)應(yīng)當(dāng)是必要的。

每一天都會有無數(shù)的數(shù)據(jù)生成,人們時時刻刻都可以通過手機等隨身攜帶的設(shè)備,通過聯(lián)網(wǎng)產(chǎn)出各種內(nèi)容。在過去,數(shù)據(jù)工程師們需要通過利用 Informatica、Pentaho、Talend 等科技大廠發(fā)行的工具編寫復(fù)雜的 SQL 查詢命令,搭建 ETL(抽取 Extract、轉(zhuǎn)換 Transform、加載 Load)流程。當(dāng)今市場對數(shù)據(jù)工程師的技能需求則變得更加寬泛,需要至少滿足以下條件:

掌握 SQL、Python 知識

有在工作中使用云服務(wù)提供商 AWS、Azure 或者 GCP 提供的服務(wù)的經(jīng)驗

熟悉 Java/Scala 是大加分項

熟悉 SQL/NoSQL 數(shù)據(jù)庫(數(shù)據(jù)建模、數(shù)據(jù)倉庫、性能優(yōu)化)

可以看出,數(shù)據(jù)工程師在專業(yè)技能方面的需求與一般的后端工程師非常類似。事實上,如果一家企業(yè)在數(shù)據(jù)量方面一直呈增長趨勢的話,后端工程師轉(zhuǎn)職數(shù)據(jù)工程師是個不錯的選擇。

數(shù)據(jù)工程師在具體的技能方面也因公司規(guī)模、數(shù)據(jù)量和數(shù)據(jù)速度的不同而異。以 FAANG(Facebook、亞馬遜、蘋果、網(wǎng)飛、谷歌的統(tǒng)稱)為例,他們通常需要員工滿足:

掌握 Python、Java 或 Scala 知識

有使用 Apache Hadoop,Kafka 以及 Spark 等大數(shù)據(jù)工具的工作經(jīng)驗

深入理解常用算法和數(shù)據(jù)結(jié)構(gòu)

熟悉分布式系統(tǒng)

有使用商業(yè)智能工具 Tableau、QlikView、Looker 或者 Superset 等工具的開發(fā)經(jīng)驗

數(shù)據(jù)工程師的工作

數(shù)據(jù)工程師每天的主要工作就是和數(shù)據(jù)打交道,熟悉數(shù)據(jù)庫工作原理會讓你的工作變得更輕松。數(shù)據(jù)工程作為工程的一大分支領(lǐng)域,意味著你需要在編程方面,尤其是常用算法和數(shù)據(jù)結(jié)構(gòu),有一定的知識。舉例來說,常見 SQL 數(shù)據(jù)庫 SQLite、PostgreSQL、MySQL 背后的數(shù)據(jù)結(jié)構(gòu)都是 B-Tree。

算法與數(shù)據(jù)結(jié)構(gòu)

這方面的視頻課程有很多,比較推薦的有 Coursea 上的 《數(shù)據(jù)結(jié)構(gòu)與算法》 專業(yè)課,用來入門剛剛好。其他的演講還可以看 Alex Petrov 的 ”為什么所有的開發(fā)者都應(yīng)該了解數(shù)據(jù)庫存儲“。

Alex 還發(fā)布過一些關(guān)于數(shù)據(jù)庫的系列博文,很值得一看:

磁盤 IO,Part 1:IO 的幾種類型

磁盤 IO,Part 2:IO 的更多類型

磁盤 IO,Part 3:LSM 樹

磁盤 IO,Part 4:B 樹和 RUM 猜想

磁盤 IO,Part 5:LSM 樹中的訪問模式

除了視頻課程,Thomas Cormen 聯(lián)合著作的 《算法入門》 可以說是在算法和數(shù)據(jù)結(jié)構(gòu)方面最全面的參考書目了。理論還要搭配實踐才能熟能生巧,所以快去 leetcode.com 刷題吧!

另外,卡內(nèi)基梅隆大學(xué)在油管上發(fā)布的關(guān)于數(shù)據(jù)庫的課程錄像也很值得參考:

數(shù)據(jù)庫系統(tǒng)入門(2019 秋季)

高級數(shù)據(jù)庫系統(tǒng)(2020 春季)

SQL:數(shù)據(jù)庫的通用語言

作為數(shù)據(jù)工作的常用語言之一 SQL,自它在 70 年代的誕生開始,歷經(jīng)風(fēng)雨,直到現(xiàn)在依然經(jīng)久不衰。十年二十年后,SQL 恐怕還會繼續(xù)堅強地活著。不信你看現(xiàn)在流行的這些數(shù)據(jù)庫,哪個不支持 SQL?

PostgreSQL、MySQL、MS SQL Server、Oracle Database

Amazon Redshift、Apache Druid、Yandex ClickHouse、

HP Vertica、Greenplum

大數(shù)據(jù)的生態(tài)系統(tǒng)中有許多不同的 SQL 引擎:Presto(現(xiàn)為 Trino)、Hive、Impala 等等?;ㄐr間把 SQL 吃透會帶來意想不到的好處。

SQL 的純新手可以從 Mode 的 SQL 教程 《SQL 入門》 開始看,熟練之后可以去 DataCamp 參加互動課程。推薦一些比較不錯的課程:

SQL 中級課程

在 SQL 中 join 數(shù)據(jù)

PostgreSQL 匯總統(tǒng)計與窗口函數(shù)

SQL 最好參考資料應(yīng)該數(shù)“現(xiàn)代 SQL”和“快用索引吧,Luke!”兩大網(wǎng)站。還是那句話,實踐出真知,Leetcode 的數(shù)據(jù)庫題庫 刷題避無可避。順帶一提,作者的另一篇關(guān)于 SQL 窗口函數(shù) 的文章也很值得一讀。

編程:Python、Java,以及 Scala

Python 的流行不僅僅體現(xiàn)在 web app 的搭建上,在數(shù)據(jù)分析和數(shù)據(jù)科學(xué)領(lǐng)域,它仍然是大眾的選擇。豐富的生態(tài)系統(tǒng)和龐大的社區(qū)團體讓 Python 成為了繼 C 和 Java 之后,排名第三的最常用編程語言(數(shù)據(jù)源自 TIOBE 索引)。

至于 Java 和 Scala,大多的數(shù)據(jù)庫系統(tǒng)都是用它們編寫的:

Apache Kafka(Scala)

Hadoop HDFS (Java)

Apache Spark (Scala)

Apache Cassandra (Java)

HBase(Java)

Apache Hive、Presto(Java)

了解數(shù)據(jù)庫系統(tǒng)使用的編程語言是掌握它們工作原理的好起點。Python 最大的弱點在于其性能不足,熟悉一門可以與之互補的、高性能語言會讓你的簡歷脫穎而出。

Scala 的入門教程推薦參考 “推特的 Scala 學(xué)院”,Scala 作者編寫 《Scala 編程》 一書也是個很好的起始點。

編程:Python、Java,以及 Scala

在大數(shù)據(jù)的生產(chǎn)環(huán)境中有很多實用工具,其中最流行的是:

Apache Kafka :行業(yè)領(lǐng)先的消息隊列 / 事件總線 / 事件流技術(shù)

Apache Spark :大規(guī)模數(shù)據(jù)處理的統(tǒng)一分析引擎

Apache Hadoop :由不同工具、庫和框架組成的大數(shù)據(jù)框架,其中包括分布式文件系統(tǒng)(HDFS)、Apache Hive、HBase 等等

Apache Druid :實時分析數(shù)據(jù)庫

貪多嚼不爛,完整地將其中最流行的一款工具吃透,連其背后的基本概念也要了解才是最好的。具體可以參考 2013 年 Jay Kreps(Apache Kafka 的聯(lián)合創(chuàng)始人之一)發(fā)表的論文 《日志:每個軟件工程師都應(yīng)該知道實時數(shù)據(jù)的統(tǒng)一抽象》。

云平臺

云是大數(shù)據(jù)的最終歸宿。作為求職者,你至少要有在任何一個云平臺的開發(fā)經(jīng)驗。世界頂尖云平臺提供商當(dāng)屬 亞馬遜云服務(wù)(AWS),其次是 微軟的 Azure(MSA),排行第三的是 谷歌云平臺(GCP)。

這些頂尖云提供商都可以提供行業(yè)認(rèn)可的證書。舉例來說,AWS 上最適合數(shù)據(jù)工程師的證書是 AWS Certified Data Analytics - Specialty,GCP 的則是 專業(yè)數(shù)據(jù)工程師 認(rèn)證,MSA 的是 Azure 數(shù)據(jù)工程師 - 基于角色。

分布式系統(tǒng)的基礎(chǔ)

當(dāng)今社會數(shù)據(jù)量之龐大,是不可能全部塞到一臺計算機里的,將數(shù)據(jù)分散在不同節(jié)點上的分布式系統(tǒng)由此應(yīng)運而生。優(yōu)秀的數(shù)據(jù)工程師必須要清楚地了解分布式系統(tǒng)背后的基本原理。這一領(lǐng)域的入門教材有很多:

麻省理工的 分布式系統(tǒng)講座,主講 Robert Morris

分布式系統(tǒng)講座,主講 Martin Kleppmann

分布式系統(tǒng)講座,主講 Lindsey Kuper

至于實體書目,我會推薦 Martin Kleppmann 編寫的 《設(shè)計數(shù)據(jù)密集型應(yīng)用》 一書。如果你有興趣,還可以參觀他的 博客。另一位大佬 Vaidehi Joshi 發(fā)表的關(guān)于分布式系統(tǒng)的一系列 博文 也很值得一看。

數(shù)據(jù)管道

數(shù)據(jù)管道是指將數(shù)據(jù)進行整合的過程,它的構(gòu)建同樣是數(shù)據(jù)工程師的主要責(zé)任之一。作為一名合格的數(shù)據(jù)工程師,你應(yīng)當(dāng)能夠?qū)⒍鄠€來源的數(shù)據(jù)可靠地交付、加載和轉(zhuǎn)換到一個特定的目的地,這個目的地通常是指中央數(shù)據(jù)倉庫或數(shù)據(jù)湖。你可選的工具有很多:Apache Airflow、Spotify 的 Luigi、Perfect 或者 Dagster。如果你更喜歡無代碼的解決方案,那么 Apache 的 NiFi 是個很好的選擇。

總 結(jié)

數(shù)據(jù)工程師并不適合單打獨斗,與數(shù)據(jù)分析師、數(shù)據(jù)科學(xué)家、基礎(chǔ)設(shè)施工程師,以及其他利益相關(guān)者通力合作,才能發(fā)揮出數(shù)據(jù)工程師的最大價值。因此,不要忘記軟技能的培養(yǎng),要具備同理心、理解業(yè)務(wù)領(lǐng)域、擁有開放的心態(tài)等等。


您感興趣的新聞
上一條:沒有了
下一條:數(shù)據(jù)分析師和數(shù)據(jù)工程師的區(qū)別是什么?

返回列表