如何成為大數(shù)據(jù)工程師,大數(shù)據(jù)是未來(lái)的職業(yè)
大數(shù)據(jù)是未來(lái)的職業(yè)。我還要說(shuō)更多:開(kāi)發(fā)人員的數(shù)據(jù)工程技能是迫切需要的。在2003年之前,我們每?jī)商靹?chuàng)建的數(shù)據(jù)量達(dá)到今天的PB級(jí)。Gartner分析師將云服務(wù)和網(wǎng)絡(luò)安全列為2021年的主要技術(shù)趨勢(shì)之一。
這種趨勢(shì)很容易解釋。需要安全地存儲(chǔ)和處理大量的大數(shù)據(jù)數(shù)組,以獲得有用的信息。當(dāng)公司轉(zhuǎn)移到遠(yuǎn)程工作時(shí),這些需求變得更加明顯。電子商務(wù),醫(yī)療保健,教育科技-所有這些行業(yè)都想了解有關(guān)其在線(xiàn)消費(fèi)者的所有信息。盡管數(shù)據(jù)僅存儲(chǔ)在服務(wù)器上,但完全沒(méi)有意義。
我有數(shù)據(jù)嗎?
干凈,結(jié)構(gòu),融合-這些是數(shù)據(jù)工程的基本操作。專(zhuān)業(yè)人士應(yīng)該知道如何合并從多個(gè)來(lái)源收集的不同格式的數(shù)據(jù)。我從事Python編程已經(jīng)三年了,其中我已經(jīng)沉浸在大數(shù)據(jù)領(lǐng)域兩年了。從個(gè)人經(jīng)驗(yàn)中,我意識(shí)到,對(duì)于日常工作,您需要能夠做更多的事情。
基本上,數(shù)據(jù)工程師是四個(gè)角色的組合:
軟件工程師。 編寫(xiě)代碼,測(cè)試并對(duì)其進(jìn)行優(yōu)化。在我看來(lái),數(shù)據(jù)工程最簡(jiǎn)單的途徑就是軟件工程。該專(zhuān)家知道如何安排計(jì)算機(jī)和程序。他/她熟悉高質(zhì)量軟件的開(kāi)發(fā)和數(shù)據(jù)庫(kù)的工作。
大數(shù)據(jù)開(kāi)發(fā)人員。了解數(shù)據(jù)處理的原理,使用各種工具對(duì)其進(jìn)行轉(zhuǎn)換。他根據(jù)客戶(hù)的請(qǐng)求或業(yè)務(wù)流程準(zhǔn)備數(shù)據(jù)模型的描述。
數(shù)據(jù)庫(kù)管理員。建立存儲(chǔ)體系結(jié)構(gòu)放在他的肩膀上。知道如何以最佳方式存儲(chǔ)數(shù)據(jù)并對(duì)其執(zhí)行基本操作。
云工程師。 如今的數(shù)據(jù)量如此之大,以至于將其存儲(chǔ)在服務(wù)器上太昂貴或根本不可能-它根本不適合那里。云解決方案為您服務(wù)。這位工程師了解什么是云解決方案,它們的結(jié)構(gòu)和特定功能是什么,它們?nèi)绾伪舜私换ヒ约叭绾卧O(shè)置云服務(wù)。
從任何這些位置,您都可以切換到數(shù)據(jù)工程。
數(shù)據(jù)工程師,數(shù)據(jù)科學(xué)家或數(shù)據(jù)分析師:誰(shuí)是最酷的?
這三位專(zhuān)家是由數(shù)據(jù)驅(qū)動(dòng)的。每個(gè)人都有自己的責(zé)任。例如,數(shù)據(jù)工程師收到同事的請(qǐng)求以查找相關(guān)數(shù)據(jù),以發(fā)現(xiàn)新功能的有效性。工程師從不同的來(lái)源(服務(wù)器,應(yīng)用程序或云)中提取特定的數(shù)據(jù),對(duì)其進(jìn)行簡(jiǎn)化,處理并將其加載到正確的存儲(chǔ)中。從那里,Data Analyst接受它-分析信息并將其轉(zhuǎn)換為客戶(hù)可以理解的格式。這可以是報(bào)告,信息圖,演示文稿。專(zhuān)家會(huì)看到找到的指標(biāo)之間的聯(lián)系,并進(jìn)行比較。當(dāng)您需要預(yù)測(cè)患者狀況或市場(chǎng)動(dòng)態(tài)時(shí),需要數(shù)據(jù)科學(xué)家。讓我們以一個(gè)示例說(shuō)明所有角色如何在項(xiàng)目中進(jìn)行協(xié)作。
想象一下一個(gè)定期的社交網(wǎng)絡(luò)來(lái)學(xué)習(xí)外語(yǔ)。人們會(huì)發(fā)現(xiàn)筆友并練習(xí)英語(yǔ),德語(yǔ),中文等。數(shù)以百萬(wàn)計(jì)的日常用戶(hù)會(huì)留下數(shù)字痕跡:他們通過(guò)個(gè)人郵件登錄,購(gòu)買(mǎi)高級(jí)帳戶(hù),下載應(yīng)用程序并通過(guò)視頻撥打電話(huà)。每次點(diǎn)擊都會(huì)被注冊(cè)并發(fā)送到服務(wù)器。該公司希望跟蹤該平臺(tái)的有效性和盈利能力。數(shù)據(jù)工程師如何提供幫助?就個(gè)人而言,他不能。但是與數(shù)據(jù)科學(xué)家和數(shù)據(jù)分析師等同事一起,他發(fā)現(xiàn)的數(shù)據(jù)變成了有用的信息-統(tǒng)計(jì)信息,圖表和預(yù)測(cè)。
這并不是說(shuō)其中一些更有用,做更多的工作或更好地應(yīng)對(duì)責(zé)任。他們的任務(wù)范圍實(shí)際上可能有所不同,并取決于客戶(hù)端設(shè)置的任務(wù)。唯一的是,數(shù)據(jù)工程師似乎正在“影子”中工作。如果您善于交際,并且知道如何與客戶(hù)溝通,則值得研究分析師或數(shù)據(jù)科學(xué)家的專(zhuān)業(yè)。當(dāng)然,這取決于您。
無(wú)論如何,沒(méi)有工程師,團(tuán)隊(duì)將很難處理原始數(shù)據(jù)。他們與他一起從存儲(chǔ)中獲取干凈,優(yōu)化的數(shù)據(jù)。他們要做的就是計(jì)算統(tǒng)計(jì)數(shù)據(jù),發(fā)現(xiàn)趨勢(shì)并預(yù)測(cè)結(jié)果。三人一組在一起工作比單獨(dú)完成所有工作要有效得多。
處理數(shù)據(jù):數(shù)據(jù)工程師做什么?
有不同的數(shù)據(jù)源。工程師的任務(wù)是從中獲取信息,統(tǒng)一來(lái)自不同來(lái)源的數(shù)據(jù),進(jìn)行處理,并根據(jù)要求進(jìn)行簡(jiǎn)化和多樣化。我們將以結(jié)構(gòu)化查詢(xún)語(yǔ)言編寫(xiě)的查詢(xún)發(fā)送到數(shù)據(jù)庫(kù)。SQL是使用最廣泛的數(shù)據(jù)操作語(yǔ)言。因此,許多工具使用已經(jīng)熟悉的語(yǔ)法。例如,Apache Hive或Impala。
要更改數(shù)據(jù),您需要特殊的框架。Apache Spark,Apache Flink和Hadoop MapReduce允許您執(zhí)行以下類(lèi)型的轉(zhuǎn)換:
- 數(shù)據(jù)清理
- 刪除重復(fù)項(xiàng)
- 轉(zhuǎn)換數(shù)據(jù)類(lèi)型(字符串到數(shù)字或日期)
- 過(guò)濾
- 數(shù)據(jù)聯(lián)接
- 數(shù)據(jù)推導(dǎo)
一些框架僅適用于處理流數(shù)據(jù)。其他僅用于已長(zhǎng)時(shí)間存儲(chǔ)在服務(wù)上的數(shù)據(jù)。有些可以同時(shí)做。假設(shè)我們需要?jiǎng)h除不必要的記錄并填寫(xiě)缺少的值。這通常是通過(guò)準(zhǔn)備好的腳本來(lái)完成的。并非所有的框架都有能力以工程師想要的語(yǔ)言編寫(xiě)腳本。
通常,Python,Java和Scala編程語(yǔ)言用于轉(zhuǎn)換數(shù)據(jù)。Hadoop,HDFS,Apache Cassandra,HBase和Apache Hive是用Java構(gòu)建的。在Scala,Apache Kafka和Apache Spark上。在Python中,Pandas / NumPy。Dask +包裝器適用于用其他語(yǔ)言(PyFlink,PySpark,Python Hadoop API)編寫(xiě)的框架。
要構(gòu)建所有內(nèi)容,有兩種方法:ETL和ELT。如果我們處理的數(shù)據(jù)量很小或使用來(lái)自不同客戶(hù)端的現(xiàn)成數(shù)據(jù)的數(shù)據(jù)庫(kù),則使用ETL更為方便。如果有很多混合信息,ELT會(huì)做得更好。在這種情況下,我們首先將數(shù)據(jù)加載到存儲(chǔ)中,在單獨(dú)的服務(wù)器上進(jìn)行轉(zhuǎn)換,然后在必要時(shí)將其拉出。
最終數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)庫(kù)。我們通過(guò)包含在外部服務(wù)API中的SQL請(qǐng)求或自定義腳本來(lái)設(shè)置投放。接下來(lái)是數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家。它們基于數(shù)據(jù)形成有用的信息。第一個(gè)創(chuàng)建報(bào)告,圖形并在數(shù)據(jù)中找到模式,第二個(gè)使用機(jī)器學(xué)習(xí)方法進(jìn)行預(yù)測(cè)。
數(shù)據(jù)工程技能:有什么用?
您肯定有工作要做。數(shù)據(jù)量只會(huì)增加。您將需要清潔它們,對(duì)其進(jìn)行整理,分析。了解數(shù)據(jù)工程的基礎(chǔ)知識(shí)至少對(duì)以下目的有用。
查找和整理數(shù)據(jù)
有關(guān)用戶(hù)配置文件,購(gòu)買(mǎi),應(yīng)用程序在不同設(shè)備上的點(diǎn)擊次數(shù)的信息,所有這些信息均由工程師收集并按內(nèi)容分組。如果一家公司正在為明年制定計(jì)劃,并且想知道業(yè)務(wù)的預(yù)期增長(zhǎng),那么數(shù)據(jù)科學(xué)家和分析師將加入工程師團(tuán)隊(duì)。根據(jù)工程師收集的信息,他們找出了哪些利基市場(chǎng)以及銷(xiāo)售下降的原因,最受歡迎的產(chǎn)品或功能。
提高數(shù)據(jù)傳輸速度
提高 向目標(biāo)系統(tǒng)或目標(biāo)用戶(hù)的數(shù)據(jù)傳遞速度。速度取決于框架,方法和服務(wù)的選擇。例如,Hadoop MapReduce比Spark更具成本效益,但處理速度較慢。如果我們有流數(shù)據(jù),則可以即時(shí)處理它,而不是將其保存到磁盤(pán)并稍后進(jìn)行處理,將更加方便快捷。
降低倉(cāng)儲(chǔ)成本
在80年代,1 GB的HDD空間價(jià)格為500,000美元,而現(xiàn)在僅為0.025美元。從那時(shí)起,數(shù)據(jù)量增長(zhǎng)了數(shù)百倍,硬盤(pán)驅(qū)動(dòng)器無(wú)法處理它們。將信息存儲(chǔ)在云上更加方便和安全。太字節(jié)級(jí)的服務(wù)每月將花費(fèi)數(shù)十至數(shù)百美元。專(zhuān)家可以為客戶(hù)選擇最有利可圖的服務(wù)和資費(fèi)計(jì)劃。
大數(shù)據(jù)是二十一世紀(jì)的“燃料”
如果我們拋棄所有數(shù)據(jù),人類(lèi)的發(fā)展將接近18世紀(jì)的水平。就像我們的祖先一樣,我們?nèi)匀豢久姘?,使用公共和個(gè)人交通工具,醫(yī)治人們。使用大數(shù)據(jù)可以讓您賣(mài)出更多面包,優(yōu)化出行,并加快科學(xué)發(fā)現(xiàn)和其他發(fā)現(xiàn)。
無(wú)論您是一家歷史悠久的大公司,還是一家繁榮但規(guī)模小的創(chuàng)業(yè)公司,它對(duì)每個(gè)人處理數(shù)據(jù)都是有用的。對(duì)于普通用戶(hù),這沒(méi)有任何意義,但是對(duì)于企業(yè)而言,這非常重要。例如,當(dāng)銷(xiāo)售下降時(shí),從存儲(chǔ)中提取必要的信息并找出原因就足夠了。借助數(shù)據(jù)及其處理能力,我們可以獲得新的知識(shí)。任何行業(yè)都只能從中受益。