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