我們大多數(shù)人對數(shù)據(jù)工程師是誰有想法,但我們對大數(shù)據(jù)工程師的角色和責(zé)任感到困惑。一旦我們開始用適當(dāng)?shù)募寄芗成溥@些角色和職責(zé),并找到最有效和最有效的學(xué)習(xí)路徑,這種歧義就會增加。這個"大數(shù)據(jù)工程師技能"博客將幫助您了解數(shù)據(jù)工程師的不同職責(zé)。因此,我將用適當(dāng)?shù)募寄軄硪?guī)劃這些職責(zé)——將引導(dǎo)您通過適當(dāng)?shù)膶W(xué)習(xí)路徑。
讓我們從了解誰是數(shù)據(jù)工程師開始。
誰是數(shù)據(jù)工程師?
簡單地說,數(shù)據(jù)工程師是開發(fā)、構(gòu)建、測試和維護(hù)大規(guī)模處理系統(tǒng)的完整體系結(jié)構(gòu)的人。
接下來,讓我們進(jìn)一步深入查看數(shù)據(jù)工程師的工作角色。
數(shù)據(jù)工程師是做什么的?
數(shù)據(jù)工程師的工作角色中包含的關(guān)鍵任務(wù)包括:
設(shè)計、開發(fā)、建造、安裝、測試和維護(hù)完整的數(shù)據(jù)管理和處理系統(tǒng)。
構(gòu)建高度可擴(kuò)展、健壯和容錯的系統(tǒng)。
負(fù)責(zé)完整的 ETL(提取、轉(zhuǎn)換和加載)過程。
確保架構(gòu)的規(guī)劃方式滿足所有業(yè)務(wù)需求。
發(fā)現(xiàn)數(shù)據(jù)采集的各種機(jī)會,探索使用現(xiàn)有數(shù)據(jù)的新方法。
提出提高整個系統(tǒng)數(shù)據(jù)質(zhì)量、可靠性和效率的方法。
通過將各種編程語言和工具集成在一起,創(chuàng)建完整的解決方案。
創(chuàng)建數(shù)據(jù)模型以降低系統(tǒng)復(fù)雜性,從而提高效率和降低成本。
部署災(zāi)難恢復(fù)技術(shù)
將新的數(shù)據(jù)管理工具和技術(shù)引入現(xiàn)有系統(tǒng),使其更加高效。
接下來,我想解決一個非常常見的困惑,即數(shù)據(jù)與大數(shù)據(jù)工程師之間的差異。
數(shù)據(jù)工程師和大數(shù)據(jù)工程師之間的差異
我們正處在數(shù)據(jù)革命的時代,數(shù)據(jù)是21世紀(jì)的燃料。各種數(shù)據(jù)源 – 過去二十年中,許多技術(shù)已經(jīng)發(fā)展起來, 主要來源是 NoSQL 數(shù)據(jù)庫和大數(shù)據(jù)框架。
隨著大數(shù)據(jù)在數(shù)據(jù)管理系統(tǒng)中的出現(xiàn),數(shù)據(jù)工程師現(xiàn)在必須處理和管理大數(shù)據(jù),并且其角色已升級為大數(shù)據(jù)工程師。由于大數(shù)據(jù),整個數(shù)據(jù)管理系統(tǒng)變得越來越復(fù)雜。因此,現(xiàn)在大數(shù)據(jù)工程師必須學(xué)習(xí)多個大數(shù)據(jù)框架 - NoSQL 數(shù)據(jù)庫,以創(chuàng)建、設(shè)計和管理處理系統(tǒng)。
在這個大數(shù)據(jù)工程師技能博客中,讓我們了解大數(shù)據(jù)工程師的責(zé)任。這將有助于我們使用所需的技能集映射數(shù)據(jù)工程師職責(zé)。
數(shù)據(jù)工程師職責(zé)
數(shù)據(jù)引入
數(shù)據(jù)引入意味著從各種源獲取數(shù)據(jù),然后將其引入數(shù)據(jù)湖。有多種數(shù)據(jù)源具有不同的格式和數(shù)據(jù)結(jié)構(gòu)。
數(shù)據(jù)工程師需要從源中有效地提取數(shù)據(jù)的技能,這可以包括不同的數(shù)據(jù)引入方法,如批處理和實時提取。還有各種其他技能可以使數(shù)據(jù)引入更有效率,如增量加載、并行加載數(shù)據(jù)等。
當(dāng)涉及到大數(shù)據(jù)世界時,隨著數(shù)據(jù)量開始加速,數(shù)據(jù)引入變得更加復(fù)雜, 數(shù)據(jù)也以不同的格式存在。數(shù)據(jù)工程師還需要了解數(shù)據(jù)挖掘和不同的數(shù)據(jù)引入 API 來捕獲和將數(shù)據(jù)注入數(shù)據(jù)湖。
數(shù)據(jù)轉(zhuǎn)換
數(shù)據(jù)始終以原始格式存在,不能直接使用。它需要從一種格式轉(zhuǎn)換為另一種格式,或者根據(jù)用例從一種結(jié)構(gòu)轉(zhuǎn)換為另一種結(jié)構(gòu)。數(shù)據(jù)轉(zhuǎn)換可以是一個簡單或復(fù)雜的過程,具體取決于數(shù)據(jù)源、數(shù)據(jù)格式和所需輸出的多樣性。這可能包括各種工具,以及不同語言的自定義腳本,具體取決于數(shù)據(jù)的復(fù)雜性、結(jié)構(gòu)、格式和體積。
性能優(yōu)化
構(gòu)建一個既可擴(kuò)展又高效的系統(tǒng)是一項具有挑戰(zhàn)性的工作。數(shù)據(jù)工程師需要了解如何提高單個數(shù)據(jù)管道的性能, 優(yōu)化整個系統(tǒng)。
再次,當(dāng)我們處理大數(shù)據(jù)平臺時,性能成為一個主要因素。大數(shù)據(jù)工程師需要確保優(yōu)化從查詢執(zhí)行到通過報表和交互式儀表板可視化數(shù)據(jù)的整個過程。這需要各種概念,如分區(qū)、索引、非規(guī)范化等。
除此之外,數(shù)據(jù)工程師工作基于行業(yè)使用的工具和技術(shù),可以承擔(dān)各種責(zé)任。
總結(jié)大數(shù)據(jù)工程師的職責(zé):
設(shè)計、創(chuàng)建、構(gòu)建和維護(hù)數(shù)據(jù)管道
聚合和轉(zhuǎn)換來自各種數(shù)據(jù)源的原始數(shù)據(jù),以滿足功能和非功能性業(yè)務(wù)需求
性能優(yōu)化:自動化流程、優(yōu)化數(shù)據(jù)交付和重新設(shè)計完整架構(gòu)以提高性能。
使用大數(shù)據(jù)框架和 NoSQL 數(shù)據(jù)庫處理、轉(zhuǎn)換和管理大數(shù)據(jù)。
構(gòu)建完整的基礎(chǔ)架構(gòu)以引入、轉(zhuǎn)換和存儲數(shù)據(jù),以便進(jìn)一步分析和業(yè)務(wù)需求。
如果您將查看和比較不同的大數(shù)據(jù)工程師職位描述,您會發(fā)現(xiàn)大多數(shù)職位描述都基于現(xiàn)代工具和技術(shù)。在本大數(shù)據(jù)工程師技能博客中,讓我們看一下將聘請您為大數(shù)據(jù)工程師所需的技能。
大數(shù)據(jù)工程師技能:成為大數(shù)據(jù)工程師所需的技能
大數(shù)據(jù)框架/基于 Hadoop 的技術(shù):隨著大數(shù)據(jù)在 21 世紀(jì)初的興起,一個新的框架誕生了,該框架不僅以分布式方式存儲大數(shù)據(jù),而且還并行處理數(shù)據(jù)。
Hadoop 生態(tài)系統(tǒng)中有許多工具,可滿足不同目的 – 屬于不同背景的專業(yè)人士。
對于大數(shù)據(jù)工程師來說,掌握大數(shù)據(jù)工具是必須的。您需要掌握的一些工具包括:
HDFS(Hadoop 分布式文件系統(tǒng)):顧名思義,它是 Hadoop 的存儲部分,它將數(shù)據(jù)存儲在分布式群集中。作為 Hadoop 的基礎(chǔ),HDFS 知識是開始使用 Hadoop 框架的必備知識。
YARN:YARN 通過將資源分配給不同的應(yīng)用程序并安排作業(yè)來執(zhí)行資源管理。YARN 是在 Hadoop 2.x 中引入的。隨著 YARN 的引入,Hadoop 變得更加靈活、高效和可擴(kuò)展。
MapReduce:MapReduce 是一種并行處理范例,它允許在分布式 Hadoop 存儲(即 HDFS)之上并行處理數(shù)據(jù)。
PIG – HIVE:蜂巢是 HDFS 之上的數(shù)據(jù)倉庫工具。Hive 為 SQL 背景的專業(yè)人員提供服務(wù)以執(zhí)行分析。而 Apache Pig 是一種高級腳本語言,用于 Hadoop 之上的數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)分析器通常使用 Hive 創(chuàng)建報告,而 Pig 則被研究人員用于編程。如果您熟悉 SQL,則兩者都很容易學(xué)習(xí)。
Flume & Sqoop: Flume 是一種用于將非結(jié)構(gòu)化數(shù)據(jù)導(dǎo)入 HDFS 的工具,而 Sqoop 用于從 RDBMS 導(dǎo)入和導(dǎo)出結(jié)構(gòu)化數(shù)據(jù)到 HDFS。
動物園管理員:動物園管理員充當(dāng)在 Hadoop 環(huán)境中運行的分布式服務(wù)的協(xié)調(diào)人。它有助于配置管理和同步服務(wù)。
Oozie:Oozie 是一個調(diào)度程序,它將多個邏輯作業(yè)綁定在一起,并有助于完成一個完整的任務(wù)。
實時處理框架 (Apache Spark):實時處理與快速操作是時間的需要.要么是信用卡欺詐檢測系統(tǒng),要么是推薦系統(tǒng),每個人都需要實時處理。數(shù)據(jù)工程師了解實時處理框架非常重要。Apache Spark 是一個分布式實時處理框架。它可以很容易地與利用 HDFS 的 Hadoop 集成。您可以參考 Edureka 的 Hadoop 和 Spark 視頻,以獲得全面的知識。
數(shù)據(jù)庫體系結(jié)構(gòu):最突出的數(shù)據(jù)源之一是數(shù)據(jù)庫。對于數(shù)據(jù)工程師來說,了解數(shù)據(jù)庫設(shè)計和數(shù)據(jù)庫體系結(jié)構(gòu)(如 1 層、2 層、3 層和 n 層)至關(guān)重要。數(shù)據(jù)模型和數(shù)據(jù)架構(gòu)也是數(shù)據(jù)工程師應(yīng)具備的關(guān)鍵技能之一。
基于 SQL 的技術(shù)(例如 MySQL):結(jié)構(gòu)化查詢語言用于構(gòu)建、操作和管理存儲在數(shù)據(jù)庫中的數(shù)據(jù)。當(dāng)數(shù)據(jù)工程師與關(guān)系數(shù)據(jù)庫密切合作時,他們需要對 SQL 具有強(qiáng)大的命令。PL/SQL 在行業(yè)中也占有顯著地位。PL/SQL 在 SQL 之上提供程序編程功能。
NoSQL 技術(shù):隨著組織的要求增長,超出了結(jié)構(gòu)化數(shù)據(jù)的范圍,因此引入了 NoSQL 數(shù)據(jù)庫。它可以存儲大量的結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),根據(jù)應(yīng)用程序要求快速迭代和敏捷結(jié)構(gòu)。
一些使用最突出的數(shù)據(jù)庫是:
HBase 是面向列的 NoSQL 數(shù)據(jù)庫,位于 HDFS 之上,非常適合可擴(kuò)展和分布式大數(shù)據(jù)存儲。它適用于具有優(yōu)化的基于讀取和范圍的掃描的應(yīng)用。它提供了從 CAP 的 CP(一致性和分區(qū))。
Cassandra 是一個高度可擴(kuò)展的數(shù)據(jù)庫,具有增量可擴(kuò)展性??ㄉ5吕詈玫牟糠质枪芾碜钌伲瑳]有單點失敗。 它適用于快速和隨機(jī)、讀取和寫入的應(yīng)用程序。它提供 CAP 的 AP(可用和分區(qū))。
MongoDB 是面向文檔的 NoSQL 數(shù)據(jù)庫,該數(shù)據(jù)庫沒有架構(gòu),即您的架構(gòu)可以隨著應(yīng)用程序的增長而發(fā)展。它還為高性能和故障容差復(fù)制提供完整的索引支持。它有一個主從架構(gòu) – 提供 CAP 的 CP。它被 Web 應(yīng)用程序和半結(jié)構(gòu)化數(shù)據(jù)處理嚴(yán)格使用。
Python/R:各種編程語言可以服務(wù)于相同的目的。一種編程語言的知識就足夠了,因為味道變了,但邏輯保持不變。如果您是初學(xué)者,您可以繼續(xù)使用 Python,因為它的語法簡單和良好的社區(qū)支持,因此很容易學(xué)習(xí)。而R有一個陡峭的學(xué)習(xí)曲線,這是由統(tǒng)計學(xué)家開發(fā)的。R 主要由分析師和數(shù)據(jù)科學(xué)家用于執(zhí)行數(shù)據(jù)分析。
ETL/數(shù)據(jù)倉庫解決方案(信息學(xué)):數(shù)據(jù)倉庫對于管理來自異構(gòu)源的大量數(shù)據(jù)非常重要,您需要應(yīng)用 ETL(提取轉(zhuǎn)換負(fù)載)。數(shù)據(jù)倉庫用于數(shù)據(jù)分析和報告,是商業(yè)智能中非常重要的一部分。對于大數(shù)據(jù)工程師來說,掌握數(shù)據(jù)倉庫或 ETL 工具非常重要。掌握一個后,它變得容易學(xué)習(xí)新的工具,因為基本保持不變。
Informatica – 塔倫德是業(yè)內(nèi)使用的兩種知名工具。Informatica – 塔倫德開放式工作室是具有ETL架構(gòu)的數(shù)據(jù)集成工具。塔倫德的主要好處是它支持大數(shù)據(jù)框架。我建議你從塔倫德開始,因為在此學(xué)習(xí)后,任何DW工具都會成為你的一塊蛋糕。
使用 UNIX、Linux、Solaris 或 MS Windows – 使用全行業(yè)的各種操作系統(tǒng)。Unix – Linux 是一些使用突出的操作系統(tǒng) – 大數(shù)據(jù)工程師至少需要掌握其中一個操作系統(tǒng)。
除了了解完整的數(shù)據(jù)流和業(yè)務(wù)模式之外,成為數(shù)據(jù)工程師的動機(jī)之一是薪水。
大數(shù)據(jù)工程師工作與薪水
"大數(shù)據(jù)工程師"的平均工資從94,944美元到126,138美元不等。根據(jù)Glassdoor的數(shù)據(jù),美國高級數(shù)據(jù)工程師的全國平均工資為181,773美元。