官术网_书友最值得收藏!

1.3 組織內部的數據工程師

數據工程師不是在真空中工作。根據他們從事的工作,他們將與技術人員和非技術人員互動,并面對不同的方向(內部和外部)。讓我們探討一下數據工程師在組織內部做什么以及他們都與誰互動。

1.3.1 面向內部與面向外部的數據工程師

數據工程師服務于多個終端用戶,并面對許多內部和外部的方向(如圖1-9所示)。并非所有數據工程的工作量和職責都是相同的,因此了解數據工程師為誰服務至關重要。根據終端用戶的情況,數據工程師的主要職責是面向外部、面向內部或兩者兼而有之。

圖1-9:數據工程師面臨的方向

面向外部的數據工程師通常與面向外部的應用程序的用戶保持一致,如社交媒體應用程序、物聯網(Internet of Things,IoT)設備和電子商務平臺。該數據工程師架構、構建并管理用于收集、存儲和處理來自這些應用程序的事務和事件數據的系統。這些數據工程師構建的系統有一個從應用程序到數據管道,然后再回到應用程序的反饋循環(如圖1-10所示)。

圖1-10:面向外部的數據工程師系統

面向外部的數據工程帶來了一系列獨特的問題。面向外部的查詢引擎通常比面向內部的系統處理更大的并發負載。工程師還需要考慮對用戶可以運行的查詢進行嚴格限制,以限制任何單個用戶對基礎設施的影響。此外,安全性對于外部查詢來說是一個更為復雜和敏感的問題,尤其是當查詢的數據是多租戶(來自許多客戶的數據并存放在一個表中)時。

面向內部的數據工程師通常關注對業務和內部利益相關者的至關重要的需求活動(如圖1-11所示)。例如,為BI儀表板、報告、業務流程、數據科學以及ML模型創建和維護數據管道與數據倉庫。

面向外部和面向內部的職責經常混合在一起。在實踐中,面向內部的數據通常是面向外部的數據的先決條件。數據工程師有兩組用戶,他們對查詢并發性、安全性等有著截然不同的要求。

圖1-11:面向內部的數據工程師系統

1.3.2 數據工程師和其他技術角色

實際上,數據工程生命周期跨越許多責任領域。數據工程師直接或間接(通過經理)與許多組織單位互動,擔任著各種角色的紐帶。

讓我們看看數據工程師可能會影響誰。在本節中,我們將討論與數據工程相關的技術角色(如圖1-12所示)。

圖1-12:數據工程的關鍵技術利益相關者

數據工程師是數據生產者[如軟件工程師、數據架構師和DevOps或站點可靠性工程師(Site Reliability Engineer,SRE)]與數據消費者(如數據分析師、數據科學家和機器學習工程師)之間的樞紐。此外,數據工程師將與運營角色的人員(如DevOps工程師)進行交互。

考慮到新數據角色流行的速度(分析和ML工程師),這絕不是一個詳盡的列表。

上游利益相關者

作為一名成功的數據工程師,你需要了解正在使用或設計的數據架構以及生成你需要的數據的源系統。接下來,我們討論一些熟悉的上游利益相關者:數據架構師、軟件工程師和DevOps工程師。

數據架構師。數據架構師的功能在抽象級別上與數據工程師相差無幾。數據架構師設計組織數據管理的藍圖,規劃流程、整體數據架構和系統[11]。他們還充當組織技術和非技術方面之間的橋梁。成功的數據架構師通常有豐富的工程經驗所帶來的“戰斗傷痕”,使他們能夠指導和協助工程師,同時成功地將工程挑戰傳達給非技術業務利益相關者。

數據架構師實施跨孤島和業務部門管理數據的政策,指導數據管理和數據治理等全球戰略,并指導重大舉措。數據架構師通常在云遷移和未開發云設計中發揮核心作用。

云的出現改變了數據架構和數據工程之間的界限。云數據架構比本地系統更具流動性,因此傳統上涉及廣泛研究、較長交付周期、購買合同和硬件安裝的架構決策現在通常在實施過程中做出,只是更大戰略中的一個步驟。盡管如此,數據架構師仍將是企業中有影響力的遠見卓識者,他們與數據工程師攜手合作,確定架構實踐和數據策略的大局。

根據公司的數據成熟度和規模,數據工程師可能會與數據架構師的職責有重疊,或者承擔數據架構師的職責。因此,數據工程師應該對架構最佳實踐和方法有好的理解。

請注意,我們已將數據架構師置于上游利益相關者部分。數據架構師通常幫助設計作為數據工程師源系統的應用程序數據層。數據架構師還可以在數據工程生命周期的各個其他階段與數據工程師進行交互。我們將在第3章介紹“好的”數據架構。

軟件工程師。軟件工程師構建運行業務的軟件和系統。他們主要負責生成數據工程師將使用和處理的內部數據。軟件工程師構建的系統通常會生成應用程序的事件數據和日志,這些數據本身就是重要的資產。此內部數據與從SaaS平臺或合作伙伴企業提取的外部數據形成鮮明對比。在運行良好的技術組織中,軟件工程師和數據工程師從新項目的開始就進行協調,以設計供分析和ML應用程序使用的應用程序數據。

數據工程師應該與軟件工程師一起工作,了解產生數據的應用程序、生成數據的數量、頻率和格式,以及任何其他會影響數據工程生命周期的因素,如數據安全和法規遵從。例如,這可能意味著對數據軟件工程師完成工作所需的內容設定上游預期。數據工程師必須與軟件工程師緊密合作。

DevOps工程師和站點可靠性工程師。DevOps和SRE通常通過運營監控來生成數據。我們將他們歸類為數據工程師的上游,但他們也可能是下游,通過儀表板使用數據或直接與數據工程師交互以協調數據系統的操作。

下游利益相關者

數據工程的存在是為了服務下游數據消費者和用例。本節討論數據工程師如何與各種下游角色交互。我們還將介紹一些服務模型,包括集中式數據工程團隊和跨職能團隊。

數據科學家。數據科學家建立前瞻性模型來進行預測和提供建議,然后根據實時數據評估這些模型,以各種方式提供價值。例如,模型評分可以確定響應實時條件的自動操作,根據客戶當前會話中的瀏覽歷史向客戶推薦產品,或者進行交易員使用的實時經濟預測。

根據常見的行業傳說,數據科學家花費70%~80%的時間來收集、清洗和準備數據[12]。根據我們的經驗,這些數字通常反映了不成熟的數據科學和數據工程實踐。特別是,許多流行的數據科學框架如果沒有適當地進行擴展,可能會成為瓶頸。只在單一工作站上工作的數據科學家強迫自己對數據進行下采樣,這使得數據準備變得更加復雜,并可能影響他們制作的模型的質量。此外,本地開發的代碼和環境通常難以在生產中部署,并且自動化的缺乏嚴重阻礙了數據科學工作流。如果數據工程師完成了他們的工作并成功地進行了協作,那么數據科學家不應該在最初的探索性工作之后花時間收集、清洗和準備數據。數據工程師應該盡可能地將這項工作自動化。

對生產就緒數據科學的需求是數據工程專業興起的重要驅動力。數據工程師應該幫助數據科學家實現一條生產路徑。事實上,我們在認識到這一基本需求后從數據科學轉向數據工程。數據工程師致力于提供數據自動化和規模化,使數據科學更加高效。

數據分析師。數據分析師(或業務分析師)尋求了解業務績效和趨勢。數據科學家具有前瞻性,而數據分析師通常關注過去或現在。數據分析師通常在數據倉庫或數據湖中運行SQL查詢。他們還可以利用電子表格進行計算和分析,以及各種BI工具,例如Microsoft Power BI、Looker或Tableau。數據分析師是數據領域的專家,他們經常處理數據并且非常熟悉數據的定義、特征和質量問題。數據分析師的典型下游客戶是業務用戶、管理層和高管。

數據工程師與數據分析師合作,為業務所需的新數據源構建管道。數據分析師的主題專業知識對于提升數據質量非常有價值,他們經常以這種身份與數據工程師合作。

機器學習工程師和人工智能研究人員。機器學習工程師(ML工程師)與數據工程師和數據科學家重疊。ML工程師開發先進的ML技術、訓練模型以及設計和維護在規模化生產環境中運行ML流程的基礎設施。ML工程師通常具有ML和深度學習技術及框架(如PyTorch或TensorFlow)的高級工作知識。

ML工程師同時需要了解運行這些框架所需的硬件、服務和系統,包括模型訓練和生產規模的模型部署。ML流通常在云環境中運行,ML工程師可以在云環境中按需(或依賴托管服務)啟動和擴展基礎設施資源。

正如我們所提到的,ML工程、數據工程和數據科學之間的界限是模糊的。數據工程師可能對ML系統負有一些運營職責,數據科學家可能與ML工程人員密切合作設計先進的ML流程。

ML工程的世界正在滾雪球般發展,并且與數據工程中發生的許多相同的發展并行。幾年前,ML的注意力集中在如何構建模型上,而現在ML工程越來越強調結合機器學習運營(Machine Learning Operations,MLOps)的最佳實踐以及以前在軟件工程和DevOps中采用的其他成熟實踐。

AI研究人員致力于新的、先進的ML技術。AI研究人員可能在大型科技公司、專門的知識產權初創公司(OpenAI、DeepMind)或學術機構工作。一些從業者致力于結合公司內部的ML工程職責進行兼職研究。那些在專門的ML實驗室工作的人通常100%致力于研究。研究問題可能針對直接的實際應用或更抽象的AI演示。DALL-E、Gato AI、AlphaGo和GPT-3/GPT-4是ML研究項目的絕佳示例。鑒于ML的發展速度,這些例子很可能在幾年后就會變得過時。我們將在1.5節中提供一些參考資料。

在資金充足的組織中,AI研究人員高度專業化,并與支持型工程師團隊一起合作。雖然學術界的ML工程師通常資源較少,但可以依靠研究生、博士后和大學教職工團隊提供工程支持。部分致力于研究的ML工程師通常依賴相同的支持團隊進行研究和生產。

1.3.3 數據工程師和業務領導

我們討論了數據工程師與之交互的技術角色。但數據工程師還作為組織連接器在更廣泛的范圍內運作,通常以非技術身份。企業越來越依賴數據作為許多產品或產品本身的核心部分。數據工程師現在參與戰略規劃并領導超越IT邊界的關鍵舉措。數據工程師通常通過充當業務和數據科學/分析之間的黏合劑來支持數據架構師。

企業決策層數據

C級高管越來越多地參與到數據和分析中,因為這些被認為是現代企業的重要資產。例如,CEO現在關注的是曾經屬于IT專屬領域的舉措,例如云遷移或新客戶數據平臺的部署。

首席執行官。非技術公司的首席執行官(Chief Executive Officer,CEO)通常不關心數據框架和軟件的細節。相反,他們與技術最高管理層角色和公司數據領導層合作定義愿景。數據工程師為了解數據的可能性提供了一個窗口。數據工程師和他們的經理維護著一張地圖,說明在什么時間范圍內組織內部和第三方可以使用哪些數據。他們還負責與其他工程角色合作研究主要的數據架構變化。例如,數據工程師通常大量參與云遷移、向新數據系統遷移或部署流技術。

首席信息官。首席信息官(Chief Information Officer,CIO)是負責組織內信息技術的高級管理人員。這是一個面向內部的角色。CIO必須具備對信息技術和業務流程的深入了解,僅了解其中一項是不夠的。CIO指導信息技術組織,制定持續的政策,同時還在CEO的指導下定義和執行重要舉措。

CIO經常與擁有良好數據文化的組織中的數據工程領導層合作。如果一個組織的數據成熟度不是很高,CIO通常會幫助塑造其數據文化。CIO將與工程師和架構師合作制定重大舉措,并就采用主要架構元素做出戰略決策,如企業資源規劃(Enterprise Resource Planning,ERP)和客戶關系管理(Customer Relationship Management,CRM)系統、云遷移、數據系統和面向內部的IT。

首席技術官。首席技術官(Chief Technology Officer,CTO)與CIO類似,但面向外部。CTO擁有面向外部應用程序的關鍵技術戰略和架構,這些應用程序包括移動、Web應用程序和物聯網——這些都是數據工程師的關鍵數據源。CTO可能是一位技術嫻熟的技術專家,并且對軟件工程基礎知識和系統架構有很好的了解。在一些沒有CIO的組織中,CTO或首席運營官(Chief Operating Officer,COO)扮演CIO的角色。數據工程師通常直接或間接通過CTO報告。

首席數據官。首席數據官(Chief Data Officer,CDO)于2002年在Capital One創立,當時該公司認識到數據作為商業資產的重要性日益增強。CDO負責公司的數據資產和戰略。CDO專注于數據的商業效用,但應具備強大的技術基礎。CDO負責監督數據產品、戰略、計劃和核心功能,如主數據管理和隱私。有時,CDO會管理業務分析和數據工程。

首席分析官。首席分析官(Chief Analytice Officer,CAO)是CDO角色的變體。在這兩種角色同時存在的情況下,CDO專注于交付數據所需的技術和組織。CAO負責業務的分析、戰略和決策制定。CAO可以監督數據科學和ML,但這在很大程度上取決于公司是否有CDO或CTO角色。

首席算法官。首席算法官(Chief Algorithms Officer,CAO-2)是最高管理層最近的創新,這是一個高度技術性的角色,專注于數據科學和ML。CAO-2通常具有在數據科學或ML項目中作為個人貢獻者和團隊領導的經驗。通常,他們具有ML研究背景和相關的高級學位。

CAO-2應該熟悉當前的ML研究,并有深入的技術知識以支持公司的ML計劃。除了制定業務計劃外,他們還提供技術領導、制定研發議程以及組建研究團隊。

數據工程師和項目經理

數據工程師經常致力于重大舉措,可能跨越多年。在我們撰寫本書時,許多數據工程師正在致力于云遷移,將管道和倉庫遷移到下一代數據工具。其他數據工程師正在啟動未開發的項目,通過從數量驚人的同類最佳架構和工具選項中進行選擇,從頭開始組建新的數據架構。

這些大型計劃通常受益于項目管理(與產品管理相反,將在下面討論)。數據工程師在基礎設施和服務交付能力中發揮作用,而項目經理則指揮交通并充當看門人。大多數項目經理根據敏捷和Scrum的一些變體進行操作,偶爾仍然會出現瀑布式管理。業務永不停息,業務利益相關者通常積壓了大量他們想要解決的事情和他們想要啟動的新舉措。項目經理必須過濾一長串請求并確定關鍵可交付成果的優先級,以保持項目正常進行并更好地為公司服務。

數據工程師與項目經理進行交互,經常為項目規劃沖刺,并隨后召開與沖刺相關的站會。反饋是雙向的,數據工程師將進度和障礙告知項目經理和其他利益相關者,項目經理平衡技術團隊的節奏與不斷變化的業務需求。

數據工程師和產品經理

產品經理監督產品開發,通常擁有產品線。在數據工程師的背景下,這些產品被稱為數據產品。數據產品要么是從頭開始構建,要么是對現有產品的逐步改進。隨著企業界聚焦以數據為中心,數據工程師與產品經理的交互更加頻繁。與項目經理一樣,產品經理平衡技術團隊的活動與客戶和業務的需求。

數據工程師和其他管理角色

數據工程師與項目和產品經理以外的各種經理進行交互。但是,這些交互通常遵循服務或跨功能模型。數據工程師要么作為集中式團隊處理各種傳入請求,要么作為資源被分配給特定的經理、項目或產品。

有關數據團隊及其構建方式的更多信息,我們推薦John Thompson的Building Analytics Teams(Packt)和Jesse Anderson的Data Teams(Apress)。這兩本書都提供了強有力的框架和觀點,說明數據管理人員的角色、聘請誰以及如何為你的公司構建最有效的數據團隊。

公司不會僅為破解孤立的代碼而雇用工程師。為了配得上他們的頭銜,工程師應該深入了解他們要解決的問題、他們可以使用的技術工具以及他們一起工作和服務的人。

主站蜘蛛池模板: 丹江口市| 北票市| 万山特区| 赤水市| 怀仁县| 沈丘县| 同德县| 北海市| 新营市| 乌拉特中旗| 大洼县| 周口市| 晋宁县| 岗巴县| 华宁县| 罗甸县| 正定县| 方正县| 司法| 镇江市| 资中县| 泾川县| 富平县| 偃师市| 神池县| 邯郸市| 内丘县| 佛学| 隆子县| 巴塘县| 来宾市| 鹤山市| 大足县| 新泰市| 苍山县| 仪征市| 鄯善县| 屏山县| 连云港市| 开鲁县| 龙泉市|