如何將單體數(shù)據(jù)湖轉(zhuǎn)移到分布式數(shù)據(jù)網(wǎng)格

翻譯ThoughtWorks一篇關(guān)于數(shù)據(jù)平臺的文章《How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh》,作者Zhamak Dehghani是ThoughtWorks的首席技術(shù)顧問。


許多企業(yè)正在投資下一代數(shù)據(jù)湖,希望大規(guī)模地實(shí)現(xiàn)數(shù)據(jù)民主化,以提供商業(yè)洞察力,并最終做出自動化的智能決策。基于數(shù)據(jù)湖架構(gòu)的數(shù)據(jù)平臺存在著常見的失敗模式,這些失敗模式會導(dǎo)致無法規(guī)?;瘜?shí)現(xiàn)預(yù)期。為了解決這些失敗模式,我們需要從數(shù)據(jù)湖以及其前身數(shù)據(jù)倉庫這樣的集中化范式轉(zhuǎn)移。我們需要轉(zhuǎn)換到從現(xiàn)代分布式架構(gòu)中提取的范式:將領(lǐng)域視為第一關(guān)注點(diǎn),應(yīng)用平臺思維來創(chuàng)建自助式數(shù)據(jù)基礎(chǔ)設(shè)施,并將數(shù)據(jù)視為產(chǎn)品。

內(nèi)容目錄

  • 當(dāng)前的企業(yè)數(shù)據(jù)平臺架構(gòu)
    • 架構(gòu)失敗模式
      • 集中式和單體式
      • 耦合流水線分解
      • 孤立和高度專業(yè)化的所有權(quán)
  • 下一個(gè)企業(yè)數(shù)據(jù)平臺架構(gòu)
    • 數(shù)據(jù)和分布式領(lǐng)域驅(qū)動的架構(gòu)融合
      • 面向領(lǐng)域的數(shù)據(jù)分解和所有權(quán)
      • 面向源的域數(shù)據(jù)
      • 面向消費(fèi)者的共享域數(shù)據(jù)
      • 分布式流水線作為域內(nèi)部實(shí)現(xiàn)
    • 數(shù)據(jù)和產(chǎn)品思維融合
      • 領(lǐng)域數(shù)據(jù)作為產(chǎn)品
        • 可發(fā)現(xiàn)的
        • 可尋址的
        • 可信賴的、真實(shí)的
        • 自描述語義和語法
        • 可互操作并受全局標(biāo)準(zhǔn)約束
        • 安全并受全局訪問控制
      • 領(lǐng)域數(shù)據(jù)跨職能團(tuán)隊(duì)
    • 數(shù)據(jù)和自助平臺設(shè)計(jì)融合
  • 向數(shù)據(jù)網(wǎng)格的范式轉(zhuǎn)換

成為一個(gè)數(shù)據(jù)驅(qū)動型組織一直是我工作過的許多公司的首要戰(zhàn)略目標(biāo)之一。我的客戶深知獲得智慧賦能的好處:基于數(shù)據(jù)和超個(gè)性化提供最佳的客戶體驗(yàn);通過數(shù)據(jù)驅(qū)動優(yōu)化降低運(yùn)營成本和時(shí)間;給員工提供趨勢分析和商業(yè)智能的超能力。他們一直在大力投資建設(shè)數(shù)據(jù)和智能平臺等促成因素。盡管 在構(gòu)建此類支持平臺方面付出了更多的努力和投入,但最后發(fā)現(xiàn)結(jié)果并不理想。

我同意組織在轉(zhuǎn)變?yōu)閿?shù)據(jù)驅(qū)動的過程中面臨多方面的復(fù)雜性;從幾十年的遺留系統(tǒng)中遷移,對遺留文化依賴數(shù)據(jù)的抵制,以及不斷競爭的業(yè)務(wù)優(yōu)先級。然而,我想與您分享的是支撐許多數(shù)據(jù)平臺計(jì)劃失敗的架構(gòu)視角。我將展示我們?nèi)绾芜m應(yīng)和應(yīng)用過去十年的經(jīng)驗(yàn)教訓(xùn),在數(shù)據(jù)領(lǐng)域大規(guī)模地構(gòu)建分布式架構(gòu);我將介紹一種新的企業(yè)數(shù)據(jù)架構(gòu),我稱之為數(shù)據(jù)網(wǎng)格(Data Mesh)

在繼續(xù)閱讀之前,我希望暫時(shí)擱置傳統(tǒng)數(shù)據(jù)平臺架構(gòu)的范式已經(jīng)建立的深層次假設(shè)和偏見;對超越單一和集中的數(shù)據(jù)湖到有意分布式化數(shù)據(jù)網(wǎng)格架構(gòu)的可能性持開放態(tài)度;擁抱數(shù)據(jù)永遠(yuǎn)存在無處不在分布式的現(xiàn)實(shí)。


當(dāng)前的企業(yè)數(shù)據(jù)平臺架構(gòu)

它是集中的、單體的、領(lǐng)域不可知的,又稱數(shù)據(jù)湖。
幾乎所有與我合作過的客戶都在計(jì)劃或建設(shè)他們的第三代數(shù)據(jù)和智能平臺,同時(shí)也承認(rèn)了過去幾代人的失?。?/p>

  • 第一代:專有的企業(yè)數(shù)據(jù)倉庫和商業(yè)智能平臺;價(jià)格高昂的解決方案給公司留下了同樣大量的技術(shù)債務(wù);數(shù)以千計(jì)的不可主的ETL作業(yè)、表和報(bào)告中的技術(shù)債務(wù),只有少數(shù)專業(yè)人員了解這些工作、表和報(bào)告,導(dǎo)致對業(yè)務(wù)的積極影響沒有得到充分認(rèn)識。
  • 第二代:以數(shù)據(jù)湖為銀彈的大數(shù)據(jù)生態(tài)系統(tǒng);復(fù)雜的大數(shù)據(jù)生態(tài)系統(tǒng)和由高度專業(yè)化數(shù)據(jù)工程師組成的集中團(tuán)隊(duì)操作的長時(shí)間運(yùn)行的批處理任務(wù),創(chuàng)造出了數(shù)據(jù)湖怪物,最多只能使大量的研發(fā)分析成為可能;承諾過多,實(shí)現(xiàn)不足。

第三代和當(dāng)前一代數(shù)據(jù)平臺都或多或少類似于上一代,雖然有些現(xiàn)代的轉(zhuǎn)變:(a)實(shí)時(shí)數(shù)據(jù)流可用性架構(gòu)如 Kappa,(b)統(tǒng)一的批處理和流處理數(shù)據(jù)轉(zhuǎn)換框架 如Apache Beam,(c)完全采用 基于云的存儲管理服務(wù),數(shù)據(jù)流水線執(zhí)行引擎和機(jī)器學(xué)習(xí)平臺。很明顯,第三代數(shù)據(jù)平臺正在解決一些前幾代的一些空白,如實(shí)時(shí)數(shù)據(jù)分析,以及降低管理大數(shù)據(jù)基礎(chǔ)設(shè)施的成本。然而,它仍然具有許多導(dǎo)致上一代失敗的潛在特征。

架構(gòu)失敗模式

為了解決各代數(shù)據(jù)平臺帶來的潛在限制,讓我們看看它們的架構(gòu)和特征。在這篇文章中,我使用了互聯(lián)網(wǎng)媒體流媒體業(yè)務(wù)領(lǐng)域,如Spotify、SoundCloud、 Apple iTunes等作為例子來闡明一些概念。

集中式和整體式

在30,000英尺高度,數(shù)據(jù)平臺架構(gòu)如下圖1所示。集中式架構(gòu),其目標(biāo)是:

  • 從企業(yè)的各個(gè)角落提取數(shù)據(jù),從運(yùn)營、交易系統(tǒng)到經(jīng)營業(yè)務(wù)的領(lǐng)域,或者擴(kuò)展企業(yè)知識的外部數(shù)據(jù)提供商。例如,在流媒體業(yè)務(wù)中,數(shù)據(jù)平臺負(fù)責(zé)提取各種數(shù)據(jù):“媒體播放器性能”,“用戶與播放器的交互方式”,“他們演奏的歌曲”,“他們關(guān)注的藝術(shù)家”以及以及“標(biāo)簽和藝術(shù)家”,與藝術(shù)家的“金融交易”以及外部市場研究數(shù)據(jù)(例如“客戶統(tǒng)計(jì)”信息)。
  • 清理,豐富源數(shù)據(jù)并將其轉(zhuǎn)換為可滿足各種使用者需求的可信賴數(shù)據(jù)。在我們的示例中,其中一種轉(zhuǎn)換將用戶交互的點(diǎn)擊流變成了包含豐富用戶細(xì)節(jié)的有意義的會話。這試圖將用戶的旅程和行為重構(gòu)為聚合視圖。
  • 為具有不同需求的各種消費(fèi)者提供數(shù)據(jù)集。這包括從分析類消費(fèi)到數(shù)據(jù)挖掘以尋找洞察力,從基于機(jī)器學(xué)習(xí)的決策制定,到業(yè)績總結(jié)的商業(yè)智能報(bào)告。在流媒體的案例中,該平臺可以通過分布式日志如kafka提供有關(guān)全球媒體播放器準(zhǔn)實(shí)時(shí)的錯(cuò)誤和質(zhì)量信息,或提供正在播放的特定藝術(shù)家唱片的靜態(tài)匯總視圖,以推動金融支付計(jì)算給藝術(shù)家和唱片公司。
圖1:30,000英尺高度下整體數(shù)據(jù)平臺視圖

一個(gè)公認(rèn)的慣例是,整體數(shù)據(jù)平臺托管并擁有邏輯上屬于不同領(lǐng)域的數(shù)據(jù),例如“播放事件”,“銷售KPI”,“藝術(shù)家”,“專輯”,“標(biāo)簽”,“音頻”,“播客” ','音樂事件'等;來自大量不同領(lǐng)域域的數(shù)據(jù)。

在過去的十年中,我們已經(jīng)成功地將領(lǐng)域驅(qū)動的設(shè)計(jì)和受限制的上下文應(yīng)用于我們的業(yè)務(wù)交易系統(tǒng)(Operational system),而我們在很大程度上忽略了數(shù)據(jù)平臺中的領(lǐng)域概念。我們已經(jīng)從面向領(lǐng)域的數(shù)據(jù)所有權(quán)轉(zhuǎn)移到集中式的領(lǐng)域不可知數(shù)據(jù)所有權(quán)。我們以創(chuàng)建最大的單體(大數(shù)據(jù)平臺)而感到自豪。

Operational system 指的就是聯(lián)機(jī)交易的業(yè)務(wù)系統(tǒng)

圖2:集中數(shù)據(jù)平臺,沒有明確的數(shù)據(jù)域邊界和面向領(lǐng)域數(shù)據(jù)的所有權(quán)

這種集中式模型可以用于領(lǐng)域簡單、消費(fèi)案例種類較少的組織,但并不適用于領(lǐng)域豐富、來源眾多和消費(fèi)者多樣化的企業(yè)。

集中式數(shù)據(jù)平臺的架構(gòu)和組織結(jié)構(gòu)上存在兩個(gè)壓力點(diǎn),經(jīng)常導(dǎo)致其失?。?/p>

  • 無處不在的數(shù)據(jù)和源擴(kuò)散:隨著越來越多的數(shù)據(jù)變得無處不在,在一個(gè)平臺的控制下,在一處使用所有數(shù)據(jù)并進(jìn)行協(xié)調(diào)的能力將減弱。想象一下,僅在“客戶信息”領(lǐng)域,在組織邊界內(nèi)外都有越來越多的來源提供有關(guān)現(xiàn)有和潛在客戶的信息。我們需要在一個(gè)地方提取和存儲數(shù)據(jù)進(jìn)而從各種來源中獲取價(jià)值,這種假設(shè)將限制我們應(yīng)對數(shù)據(jù)來源??激增的能力。我認(rèn)識到,數(shù)據(jù)科學(xué)家和分析師等數(shù)據(jù)用戶需要以低開銷處理各種數(shù)據(jù)集,以及將業(yè)務(wù)交易類數(shù)據(jù)使用情況與出于分析目的而消費(fèi)的數(shù)據(jù)分開的需求。但是我建議,現(xiàn)有的集中式解決方案不是具有豐富域和不斷添加新數(shù)據(jù)源的大型企業(yè)的最佳選擇。

  • 組織的創(chuàng)新規(guī)劃和消費(fèi)者激增:組織對快速試錯(cuò)的需求引入了大量從平臺消費(fèi)數(shù)據(jù)的案例。這意味著為了滿足 測試和創(chuàng)新學(xué)習(xí)周期,聚合、投影和切片的轉(zhuǎn)換數(shù)量將不斷增加。長期以來,滿足數(shù)據(jù)消費(fèi)者需求的響應(yīng)時(shí)間太長一直是組織摩擦的一個(gè)問題,而在現(xiàn)代數(shù)據(jù)平臺架構(gòu)中仍然如此。

盡管我現(xiàn)在還不想給出我的解決方案,但我需要澄清的是,我并不是在提倡經(jīng)常隱藏在業(yè)務(wù)系統(tǒng)內(nèi)部的、分散的、孤立的、面向領(lǐng)域的數(shù)據(jù);難以發(fā)現(xiàn)、理解和使用的孤立領(lǐng)域數(shù)據(jù)。我不是在提倡建立多個(gè)分散的數(shù)據(jù)倉庫,這是多年積累的技術(shù)債務(wù)的結(jié)果。這是行業(yè)領(lǐng)導(dǎo)者表達(dá)的關(guān)注點(diǎn)。但是我認(rèn)為,對這些意外的無法訪問的數(shù)據(jù)孤島的回應(yīng)并不是建立一個(gè)集中式的數(shù)據(jù)平臺,然后由一個(gè)集中化的團(tuán)隊(duì)來擁有和管理來自所有領(lǐng)域的數(shù)據(jù)。正如我們在上面已學(xué)到和證明的那樣,它在組織上并不具備伸縮能力。

耦合的數(shù)據(jù)流水線分解

傳統(tǒng)數(shù)據(jù)平臺架構(gòu)的第二種失敗模式與我們?nèi)绾畏纸饧軜?gòu)有關(guān)。在10,000英尺處放大集中式數(shù)據(jù)平臺后,我們發(fā)現(xiàn)架構(gòu)分解是圍繞提取清理,聚合,服務(wù)等機(jī)械化功能的。組織的架構(gòu)師和技術(shù)領(lǐng)導(dǎo)者會根據(jù)平臺的增長來分解架構(gòu)。如如上一節(jié)所述,添加新的數(shù)據(jù)源或響應(yīng)新的消費(fèi)者要求平臺不斷發(fā)展。架構(gòu)師需要找到一種方法,通過將其分解來進(jìn)行擴(kuò)展架構(gòu)量子(architectural quanta)。如《構(gòu)建可進(jìn)化的架構(gòu)》中所述,架構(gòu)量子是具有高功能內(nèi)聚的可獨(dú)立部署的組件,其中包括系統(tǒng)正常運(yùn)行所需的所有結(jié)構(gòu)要素。將系統(tǒng)分解為架構(gòu)量子的動機(jī)是創(chuàng)建獨(dú)立的團(tuán)隊(duì),每個(gè)人都可以構(gòu)建和操作架構(gòu)量子。這些團(tuán)隊(duì)之間的并行工作可達(dá)到更高的操作擴(kuò)展性和速度。

考慮到前幾代數(shù)據(jù)平臺架構(gòu)的影響,架構(gòu)師將數(shù)據(jù)平臺分解為一系列數(shù)據(jù)處理階段。一個(gè)數(shù)據(jù)流水線在非常高抽象層定義了一個(gè)功能聚合,它圍繞數(shù)據(jù)處理的技即提取, 準(zhǔn)備,匯總服務(wù)等功能。

圖3:數(shù)據(jù)平臺的架構(gòu)分解

盡管此模型提供了一定程度的擴(kuò)展能力,但通過將團(tuán)隊(duì)分配到流水線的不同階段,它具有一個(gè)固有的局限性:使功能交付速度變慢。它在流水線的各個(gè)階段之間具有很高的耦合度,以提供獨(dú)立的功能或價(jià)值。這種分解與變化軸是正交的。

讓我們看一下我們的媒體流示例?;ヂ?lián)網(wǎng)流媒體平臺圍繞它們提供的媒體類型具有強(qiáng)大的領(lǐng)域結(jié)構(gòu)。他們通常以“歌曲”和“專輯”開始服務(wù),然后擴(kuò)展到“音樂事件”,“播客”,“廣播節(jié)目”,“電影”等。啟用單個(gè)新功能,例如“播客播放率”,要求更改流水線的所有組件。團(tuán)隊(duì)必須引入新的提取服務(wù),新的清理和準(zhǔn)備工作以及用于查看播客播放率的匯總。這要求在不同組件之間進(jìn)行同步,以及跨團(tuán)隊(duì)的發(fā)布管理。許多數(shù)據(jù)平臺提供了通用的和基于配置的提取服務(wù),這些服務(wù)可以應(yīng)對擴(kuò)展,例如輕松添加新資源或修改現(xiàn)有資源,以最大程度地減少引入新資源的開銷。但是從消費(fèi)者角度,這并沒有消除引入新數(shù)據(jù)集的端到端依賴性管理。盡管從表面上看,流水線架構(gòu)看起來好像我們已經(jīng)達(dá)到了流水線階段的架構(gòu)量子(architectural quantum),但實(shí)際上整個(gè)流水線(即單體式平臺)是適應(yīng)新功能的必須更改的最小單元:解鎖新數(shù)據(jù)集并將其用于新的或者現(xiàn)有的消費(fèi)。這限制了我們在響應(yīng)新的用戶或數(shù)據(jù)源時(shí)獲得更快速度和規(guī)模的能力。

圖4:引入或增強(qiáng)功能時(shí),架構(gòu)分解與更改軸正交,從而導(dǎo)致耦合和交付速度降低

孤立和高度專業(yè)化的所有權(quán)

當(dāng)今數(shù)據(jù)平臺的第三種失敗模式與我們?nèi)绾谓M織構(gòu)建和擁有該平臺的團(tuán)隊(duì)有關(guān)。當(dāng)我們足夠近地觀察構(gòu)建和操作數(shù)據(jù)平臺的人員的生活時(shí),我們發(fā)現(xiàn)的是一群與組織運(yùn)營部門隔離的高度專業(yè)的數(shù)據(jù)工程師;他們并不清楚數(shù)據(jù)源來自何處或在何處使用并付諸行動和決策。數(shù)據(jù)平臺工程師不僅在組織上處于孤立狀態(tài),而且根據(jù)他們在大數(shù)據(jù)工具方面的技術(shù)專長將他們分開并就劃分為一個(gè)團(tuán)隊(duì),他們通常缺乏業(yè)務(wù)和領(lǐng)域知識。

圖5:孤立的超專業(yè)數(shù)據(jù)平臺團(tuán)隊(duì)

我個(gè)人并不羨慕數(shù)據(jù)平臺工程師的生活。他們需要消費(fèi)來自數(shù)據(jù)源團(tuán)隊(duì)的數(shù)據(jù),而這些團(tuán)隊(duì)沒有動力提供有意義、真實(shí)和正確的數(shù)據(jù)。平臺工程師對生成數(shù)據(jù)的源域了解甚少,并且缺乏專業(yè)的領(lǐng)域知識。他們需要針對各種需求(操作性或分析性)提供數(shù)據(jù),但不清楚數(shù)據(jù)的應(yīng)用和使用方專家的具體訪問情況。

例如,在流媒體領(lǐng)域中,在數(shù)據(jù)源端,我們有跨職能的“媒體播放器”團(tuán)隊(duì),提供有關(guān)用戶如何與他們提供的特定功能進(jìn)行交互的信號,例如“播放歌曲事件”,“購買事件”,“音頻播放質(zhì)量”等;另一端是消費(fèi)者跨職能團(tuán)隊(duì),例如“歌曲推薦”團(tuán)隊(duì),“銷售團(tuán)隊(duì)”報(bào)告銷售KPI,“藝術(shù)家支付團(tuán)隊(duì)”,后者根據(jù)播放事件計(jì)算和已支付的藝術(shù)家,等等??杀氖牵挥谥虚g的數(shù)據(jù)平臺團(tuán)隊(duì)通過全力為所有來源和消費(fèi)者提供合適的數(shù)據(jù)。

實(shí)際上,我們發(fā)現(xiàn)源團(tuán)隊(duì)之間沒有聯(lián)系,沮喪的消費(fèi)者爭奪數(shù)據(jù)平臺團(tuán)隊(duì)積壓的工作優(yōu)先級以及超負(fù)荷的數(shù)據(jù)平臺團(tuán)隊(duì)。

我們創(chuàng)建了一個(gè)架構(gòu)和組織結(jié)構(gòu),但它無法擴(kuò)展,也無法實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)驅(qū)動型組織所承諾的價(jià)值。


下一個(gè)企業(yè)數(shù)據(jù)平臺架構(gòu)

它通過分布式數(shù)據(jù)網(wǎng)格(Data Mesh)包含了無處不在的數(shù)據(jù)。

那么,我們上面討論的失敗模式和特征的答案是什么?我認(rèn)為有必要進(jìn)行范式轉(zhuǎn)換。這個(gè)轉(zhuǎn)變是在技術(shù)交叉上的范式轉(zhuǎn)變,這些技術(shù)在大規(guī)模地構(gòu)建現(xiàn)代分布式體系結(jié)構(gòu)中起著重要作用;整個(gè)技術(shù)行業(yè)都普遍加速采用的技術(shù),并取得了成功的成果。

我建議,今后企業(yè)數(shù)據(jù)平臺架構(gòu)是分布式領(lǐng)域驅(qū)動的架構(gòu)、自助服務(wù)平臺設(shè)計(jì)以及數(shù)據(jù)產(chǎn)品思維的融合。

圖6:融合:為構(gòu)建下一個(gè)數(shù)據(jù)平臺進(jìn)行模式轉(zhuǎn)變

盡管這聽起來像是一句話中的許多流行語,但是這些技術(shù)中的每一種在現(xiàn)代化業(yè)務(wù)系統(tǒng)的技術(shù)基礎(chǔ)方面都產(chǎn)生了特定而令人難以置信的積極影響。讓我們深入研究如何將這些學(xué)科中的每一個(gè)應(yīng)用于數(shù)據(jù)世界,以擺脫多年舊數(shù)據(jù)倉庫架構(gòu)所采用的范式。

數(shù)據(jù)和分布式領(lǐng)域驅(qū)動架構(gòu)融合

面向領(lǐng)域的數(shù)據(jù)分解和所有權(quán)

埃里克·埃文斯(Eric Evans)的著作《領(lǐng)域驅(qū)動設(shè)計(jì)》深刻地影響了現(xiàn)代架構(gòu)思想,從而影響了組織建模。通過將系統(tǒng)分解為圍繞業(yè)務(wù)域功能構(gòu)建的分布式服務(wù),它給微服務(wù)架構(gòu)帶來很大影響。它從根本上改變了團(tuán)隊(duì)的組成方式,從而使團(tuán)隊(duì)可以獨(dú)立自主地?fù)碛蓄I(lǐng)域能力。

盡管在實(shí)現(xiàn)業(yè)務(wù)功能時(shí)我們采用了面向領(lǐng)域的分解和所有權(quán),但奇怪的是,在涉及數(shù)據(jù)時(shí),我們卻忽略了業(yè)務(wù)領(lǐng)域的概念。DDD在數(shù)據(jù)平臺架構(gòu)中最接近的應(yīng)用是,數(shù)據(jù)源業(yè)務(wù)系統(tǒng)發(fā)出對應(yīng)業(yè)務(wù)領(lǐng)域事件,然后單體數(shù)據(jù)平臺來接收它們。但是,超出提取點(diǎn)范圍,卻丟失了領(lǐng)域概念以及不同團(tuán)隊(duì)對領(lǐng)域域數(shù)據(jù)的所有權(quán)。

領(lǐng)域邊界上下文是設(shè)計(jì)數(shù)據(jù)集所有權(quán)的強(qiáng)大工具。Ben Stopford的Data Dichotomy 文章介紹了通過流共享領(lǐng)域數(shù)據(jù)集的概念。

為了實(shí)現(xiàn)單體數(shù)據(jù)平臺去中心化,我們需要改變我們對數(shù)據(jù)的看法,即本地性和所有權(quán)。與數(shù)據(jù)從領(lǐng)域流向集中擁有的數(shù)據(jù)湖或平臺不同,領(lǐng)域需要以一種易于使用的方式托管和服務(wù)它們的領(lǐng)域數(shù)據(jù)集。。

在我們的例子中,與其想象數(shù)據(jù)從媒體播放器流到某個(gè)集中的地方供集中的團(tuán)隊(duì)接收,不如想象一個(gè)播放器領(lǐng)域擁有并將其數(shù)據(jù)集服務(wù)于下游的任何團(tuán)隊(duì)以任何目的訪問。數(shù)據(jù)集實(shí)際駐留的物理位置以及它們是如何流動的,是“玩家域”的技術(shù)實(shí)現(xiàn)部分。物理存儲當(dāng)然可以是一個(gè)集中式的基礎(chǔ)設(shè)施,比如Amazon S3 bucket,但是播放器數(shù)據(jù)集的內(nèi)容和所有權(quán)仍然由生成它們的領(lǐng)域來決定。類似的,在我們的例子中,“推薦”領(lǐng)域可以選擇適合它的應(yīng)用程序的數(shù)據(jù)集的創(chuàng)建格式,如圖數(shù)據(jù)庫,同時(shí)消費(fèi)播放器數(shù)據(jù)集。如果有其它領(lǐng)域,如“新藝術(shù)家發(fā)現(xiàn)領(lǐng)域”,發(fā)現(xiàn)“推薦領(lǐng)域”圖數(shù)據(jù)有用,他們可以選擇拉取和訪問它。

這意味著當(dāng)我們將數(shù)據(jù)轉(zhuǎn)換成適合該特定域的形態(tài)時(shí),我們可能會在不同域中復(fù)制數(shù)據(jù),例如,時(shí)間序列播放事件到相關(guān)藝術(shù)家關(guān)系圖。

這就需要將我們的思維方式從推入式(通常是通過ETL,近些年通過事件流)轉(zhuǎn)移到跨所有領(lǐng)域的服務(wù)和提取模型。

面向領(lǐng)域的數(shù)據(jù)平臺中的架構(gòu)量子是一個(gè)領(lǐng)域,而不是流水線階段。

圖7:根據(jù)領(lǐng)域(數(shù)據(jù)源域,消費(fèi)者域和新創(chuàng)建的共享域)分解數(shù)據(jù)架構(gòu)和團(tuán)隊(duì)

面向數(shù)據(jù)源的領(lǐng)域數(shù)據(jù)

一些領(lǐng)域自然地與數(shù)據(jù)起源一致。源領(lǐng)域數(shù)據(jù)集代表了業(yè)務(wù)的事實(shí)和現(xiàn)實(shí)。源域數(shù)據(jù)集捕獲的數(shù)據(jù)集與它們的原始業(yè)務(wù)系統(tǒng)生成的現(xiàn)實(shí)數(shù)據(jù)映射非常緊密。在我們的例子中,業(yè)務(wù)事實(shí)如“用戶如何與服務(wù)進(jìn)行交互”或“入駐標(biāo)簽流程”導(dǎo)致了域數(shù)據(jù)集的創(chuàng)建,例如“用戶點(diǎn)擊流”,“音頻播放質(zhì)量流”和“入駐的唱片公司”。這些事實(shí)是眾所周知的,并且由數(shù)據(jù)起源處的業(yè)務(wù)系統(tǒng)生成。例如,媒體播放器系統(tǒng)最了解“用戶點(diǎn)擊流”。

在成熟且理想的情況下,業(yè)務(wù)系統(tǒng)及其團(tuán)隊(duì)或組織單位不僅負(fù)責(zé)提供業(yè)務(wù)功能,而且還負(fù)責(zé)將其業(yè)務(wù)域真實(shí)情況作為源域數(shù)據(jù)集提供出來。在企業(yè)規(guī)模上,領(lǐng)域概念和源系統(tǒng)之間從來沒有一對一的映射。通常有許多系統(tǒng)可以為屬于某個(gè)領(lǐng)域的數(shù)據(jù)提供服務(wù),其中一些是遺留數(shù)據(jù),另一些是容易更改的數(shù)據(jù)。因此,可能會有許多源對齊數(shù)據(jù)集,也就是現(xiàn)實(shí)數(shù)據(jù)集,最終需要被聚合成一個(gè)內(nèi)聚的域?qū)R數(shù)據(jù)集。

業(yè)務(wù)事實(shí)最好以商業(yè)領(lǐng)域事件的形式呈現(xiàn),可以作為帶有時(shí)間戳的事件的分布式日志進(jìn)行存儲,以供任何授權(quán)消費(fèi)者訪問。

除了定時(shí)事件之外,源數(shù)據(jù)域還應(yīng)該提供容易使用的源域數(shù)據(jù)集的歷史快照,這些快照在一個(gè)時(shí)間間隔內(nèi)聚合,緊密反映了它們域的變化間隔。例如,在一個(gè) “入駐標(biāo)簽”源域中,它顯示向流媒體業(yè)務(wù)提供音樂的藝人的標(biāo)簽,除了通過入駐標(biāo)簽過程生成的事件外,每月聚合入駐標(biāo)簽是一個(gè)合理的視圖。

注意,源對齊的域數(shù)據(jù)集必須與內(nèi)部源系統(tǒng)的數(shù)據(jù)集分開。領(lǐng)域數(shù)據(jù)集的性質(zhì)與業(yè)務(wù)系統(tǒng)用于完成其工作的內(nèi)部數(shù)據(jù)非常不同。它們有更大的容量,表示不可變的時(shí)間事實(shí),并且比它們的系統(tǒng)變化得更少。因此,實(shí)際的底層存儲必須適合大數(shù)據(jù),并與現(xiàn)有的業(yè)務(wù)數(shù)據(jù)庫分離?!皵?shù)據(jù)和自助服務(wù)平臺的設(shè)計(jì)融合”章節(jié)介紹如何創(chuàng)建大數(shù)據(jù)存儲和服務(wù)的基礎(chǔ)設(shè)施。

源域數(shù)據(jù)集是最基礎(chǔ)的數(shù)據(jù)集,并且更改頻率較低,因?yàn)闃I(yè)務(wù)事實(shí)并不經(jīng)常更改。預(yù)計(jì)這些域數(shù)據(jù)集將被永久捕獲并變得可用,以便隨著組織發(fā)展其數(shù)據(jù)驅(qū)動情報(bào)服務(wù),他們始終可以回到業(yè)務(wù)事實(shí),并創(chuàng)建新的匯總或預(yù)測。

請注意,源域數(shù)據(jù)集 在創(chuàng)建時(shí)緊密代表原始數(shù)據(jù),并且未針對特定使用者進(jìn)行擬合或建模。

源域數(shù)據(jù)集是最基礎(chǔ)的數(shù)據(jù)集,并且很少更改,因?yàn)闃I(yè)務(wù)事實(shí)不會經(jīng)常更改。這些領(lǐng)域數(shù)據(jù)集應(yīng)當(dāng)被長期地捕獲和提供,以便隨著組織發(fā)展其數(shù)據(jù)驅(qū)動和智能服務(wù),它們總是可以回到業(yè)務(wù)事實(shí),并創(chuàng)建新的聚合或投影。

請注意,源域數(shù)據(jù)集在創(chuàng)建時(shí)緊密地表示原始數(shù)據(jù),它不適合也不是為特定的消費(fèi)者而建模。

面向消費(fèi)者的共享域數(shù)據(jù)

一些領(lǐng)域與消費(fèi)密切相關(guān)。消費(fèi)者領(lǐng)域數(shù)據(jù)集和擁有它們的團(tuán)隊(duì)旨在滿足一組密切相關(guān)的用例。例如,“社交推薦域”側(cè)重于根據(jù)用戶之間的社交聯(lián)系提供推薦,創(chuàng)建適合此特定需求的域數(shù)據(jù)集;也許通過“用戶社交網(wǎng)絡(luò)的圖表示”。盡管此圖數(shù)據(jù)集對于推薦用例很有用,但對于“聽眾通知”域也可能有用,該域提供有關(guān)根據(jù)聽眾的類型發(fā)送不同的通知數(shù)據(jù),包括其社交網(wǎng)絡(luò)中的人正在聽的內(nèi)容。因此,“用戶社交網(wǎng)絡(luò)”有可能成為共享的和新定義的域數(shù)據(jù)集,供多個(gè)消費(fèi)者使用?!坝脩羯缃痪W(wǎng)絡(luò)”域團(tuán)隊(duì)致力于提供一個(gè)“用戶社交網(wǎng)絡(luò)”的始終精心設(shè)計(jì)的最新視圖。

消費(fèi)者對齊的領(lǐng)域數(shù)據(jù)集與源域數(shù)據(jù)集相比具有不同的性質(zhì)。它們在結(jié)構(gòu)上經(jīng)歷了更多更改,并且將源域事件轉(zhuǎn)換為適合特定訪問模型的聚合視圖和結(jié)構(gòu),例如我們上面看到的圖的例子。面向領(lǐng)域的數(shù)據(jù)平臺應(yīng)該能夠輕松地從源頭重新生成這些消費(fèi)者數(shù)據(jù)集。

分布式流水線作為領(lǐng)域內(nèi)部實(shí)現(xiàn)

盡管將數(shù)據(jù)集所有權(quán)從集中式平臺委托給領(lǐng)域,但是仍然需要清理、準(zhǔn)備、聚合和提供數(shù)據(jù),數(shù)據(jù)流水線的使用也是如此。在這種架構(gòu)中,數(shù)據(jù)流水線只是領(lǐng)域內(nèi)部復(fù)雜性和數(shù)據(jù)域的實(shí)現(xiàn),并在領(lǐng)域內(nèi)部進(jìn)行處理。結(jié)果,我們將看到數(shù)據(jù)流水線階段分布到每個(gè)領(lǐng)域中。

例如,源域需要包括對其域事件的清理、去重、豐富它們的領(lǐng)域事件以便其它領(lǐng)域可以使用它們,其它領(lǐng)域無需重復(fù)清理工作。每個(gè)領(lǐng)域數(shù)據(jù)集都必須為其提供的數(shù)據(jù)質(zhì)量建立服務(wù)水平目標(biāo)(SLO):及時(shí)性、錯(cuò)誤率等。例如,我們媒體播放器領(lǐng)域提供音頻“播放點(diǎn)擊流”可以包括清理和標(biāo)準(zhǔn)化其域中的數(shù)據(jù)流水線,從而提供去重后的的近實(shí)時(shí)“播放音頻單擊事件”,這些事件符合組織的編碼事件標(biāo)準(zhǔn)。

同樣,我們將看到集中式流水線的聚合階段遷移到了使用域的實(shí)現(xiàn)細(xì)節(jié)。


圖8:將流水線分散到領(lǐng)域中作為第二類關(guān)注點(diǎn),以及領(lǐng)域的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)

有人可能會說,這個(gè)模型可能會導(dǎo)致在每個(gè)領(lǐng)域中創(chuàng)建自己的數(shù)據(jù)處理流水線、技術(shù)堆棧和工具的這些重復(fù)工作。我將會在說稍后講到的章節(jié)“數(shù)據(jù)與平臺思維融合,自助共享數(shù)據(jù)基礎(chǔ)架構(gòu)作為平臺”中解決這個(gè)問題。

數(shù)據(jù)和產(chǎn)品思維融合

將數(shù)據(jù)所有權(quán)和數(shù)據(jù)流水線實(shí)現(xiàn)分散到業(yè)務(wù)領(lǐng)域,這引起了對分布式數(shù)據(jù)集的可訪問性、可用性和協(xié)調(diào)的重要關(guān)注。這是應(yīng)用產(chǎn)品思維和數(shù)據(jù)資產(chǎn)所有權(quán)知識能夠派上用處之地。

領(lǐng)域數(shù)據(jù)作為產(chǎn)品

在過去的十年中,業(yè)務(wù)系統(tǒng)領(lǐng)域已將產(chǎn)品思想融入到他們?yōu)榻M織其它部門提供的功能中。領(lǐng)域團(tuán)隊(duì)將這些功能作為API提供給組織中其他開發(fā)人員,作為創(chuàng)建更高價(jià)值和功能的構(gòu)建塊。這些團(tuán)隊(duì)致力于為他們的領(lǐng)域API創(chuàng)建最佳的開發(fā)人員體驗(yàn)。包括可發(fā)現(xiàn)且易于理解的API文檔,API測試沙箱以及密切跟蹤的質(zhì)量和采用KPI。

為了使分布式數(shù)據(jù)平臺成功,領(lǐng)域數(shù)據(jù)團(tuán)隊(duì)必須對他們提供的數(shù)據(jù)集應(yīng)用具有類似的嚴(yán)謹(jǐn)?shù)漠a(chǎn)品思維。將數(shù)據(jù)資產(chǎn)視為產(chǎn)品,并將組織的其余數(shù)據(jù)科學(xué)家、機(jī)器學(xué)習(xí)和數(shù)據(jù)工程師視為客戶。


圖9:領(lǐng)域數(shù)據(jù)集作為產(chǎn)品的特征

考慮我們的示例,互聯(lián)網(wǎng)流媒體業(yè)務(wù)。它的關(guān)鍵領(lǐng)域之一是“播放事件”,即誰在何時(shí)在何地播放了哪些歌曲。這個(gè)關(guān)鍵領(lǐng)域在組織中有不同的使用者;例如,對用戶體驗(yàn)以及可能的錯(cuò)誤感興趣的近實(shí)時(shí)用戶,以便在客戶體驗(yàn)下降或客戶支持電話打入的情況下可以快速響應(yīng)以恢復(fù)錯(cuò)誤。也有一些用戶更喜歡每日或每月歌曲播放事件匯總的歷史快照。

在這種情況下,我們的“播放的歌曲”領(lǐng)域?yàn)榻M織的其它部分提供了兩個(gè)不同的數(shù)據(jù)集作為產(chǎn)品。在事件流上公開的實(shí)時(shí)播放事件,以及在對象存儲中作為序列化文件公開的聚合播放事件。

任何技術(shù)產(chǎn)品(在本示例中是領(lǐng)域數(shù)據(jù)產(chǎn)品)的一項(xiàng)重要質(zhì)量就是使他們的消費(fèi)者滿意;在這個(gè)例子中是數(shù)據(jù)工程師、機(jī)器學(xué)習(xí)工程師或數(shù)據(jù)科學(xué)家。為了向用戶提供最佳的用戶體驗(yàn),領(lǐng)域數(shù)據(jù)產(chǎn)品需要具有以下基本特質(zhì):

可發(fā)現(xiàn)的

一款數(shù)據(jù)產(chǎn)品必須易于發(fā)現(xiàn)。常見的實(shí)現(xiàn)方式是為所有可用的數(shù)據(jù)產(chǎn)品提供一個(gè)注冊表,它包括一個(gè)數(shù)據(jù)目錄,以及它們的元信息(比如其所有者、來源、數(shù)據(jù)血緣、樣本數(shù)據(jù)集等)。這種集中式可發(fā)現(xiàn)性服務(wù)允許組織中的數(shù)據(jù)消費(fèi)者、工程師和科學(xué)家輕松找到他們感興趣的數(shù)據(jù)集。為了便于發(fā)現(xiàn),每個(gè)領(lǐng)域數(shù)據(jù)產(chǎn)品都必須在此集中式數(shù)據(jù)目錄中注冊。

注意,這里的視角從單個(gè)平臺提取并擁有數(shù)據(jù)轉(zhuǎn)變?yōu)槊總€(gè)領(lǐng)域以可發(fā)現(xiàn)的方式將其數(shù)據(jù)作為產(chǎn)品提供。

可尋址的

數(shù)據(jù)產(chǎn)品一旦被發(fā)現(xiàn),就應(yīng)該有一個(gè)惟一的地址,該地址遵循一個(gè)全局約定,以幫助其用戶以編程方式訪問它。根據(jù)數(shù)據(jù)的底層存儲和格式,組織可能對其數(shù)據(jù)采用不同的命名約定。考慮到易用性作為一個(gè)目標(biāo),在一個(gè)去中心化的架構(gòu)中,有必要制定通用的約定規(guī)范。不同的領(lǐng)域可能以不同的格式存儲和提供其數(shù)據(jù)集,事件可能通過諸如Kafka主題之類的流進(jìn)行存儲和訪問,列式數(shù)據(jù)集可能使用CSV文件或AWS S3存儲序列化Parquet文件。多種語言環(huán)境中的數(shù)據(jù)集可尋址性標(biāo)準(zhǔn)消除了查找和訪問信息時(shí)的摩擦。

可信賴的、真實(shí)的

沒有人會使用他們不信任的產(chǎn)品。在傳統(tǒng)的數(shù)據(jù)平臺中,可以接受提取并裝載有錯(cuò)誤、不能反映業(yè)務(wù)真相并且無法信任的數(shù)據(jù)。集中式數(shù)據(jù)流水線的大部分工作都集中在此,在提取數(shù)據(jù)后清理數(shù)據(jù)。

根本性的轉(zhuǎn)變要求數(shù)據(jù)產(chǎn)品的所有者圍繞數(shù)據(jù)的真實(shí)性、以及它在多大程度上反映了已經(jīng)發(fā)生的事件的真實(shí)性,或者產(chǎn)生的洞察的真實(shí)度,提供一個(gè)可接受的服務(wù)水平目標(biāo)。在創(chuàng)建數(shù)據(jù)產(chǎn)品時(shí),應(yīng)用數(shù)據(jù)清理和自動化數(shù)據(jù)完整性測試是提供可接受質(zhì)量水平的一些技術(shù)。將數(shù)據(jù)來源和數(shù)據(jù)血緣作為每個(gè)數(shù)據(jù)產(chǎn)品關(guān)聯(lián)的元數(shù)據(jù)提供,有助于消費(fèi)者進(jìn)一步信任數(shù)據(jù)產(chǎn)品以及適配其特定需求。

數(shù)據(jù)完整性(質(zhì)量)指標(biāo)的目標(biāo)值或范圍在領(lǐng)域數(shù)據(jù)產(chǎn)品之間有所不同。例如,“播放事件”領(lǐng)域可以提供兩種不同的數(shù)據(jù)產(chǎn)品,一種接近實(shí)時(shí)、準(zhǔn)確性較低,包括丟失或重復(fù)的事件,而另一種則具有較長的延遲和較高的事件準(zhǔn)確性。每個(gè)數(shù)據(jù)產(chǎn)品定義并確保其完整性和真實(shí)性的目標(biāo)級別(作為一組SLO)。

自描述的語義和語法

優(yōu)質(zhì)的產(chǎn)品不需要消費(fèi)者手持即可使用:它們可以獨(dú)立地發(fā)現(xiàn),理解和消費(fèi)。將數(shù)據(jù)集構(gòu)建為數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家使用起來摩擦最小的產(chǎn)品,需要對數(shù)據(jù)的語義和語法進(jìn)行良好的描述,理想情況下還需要樣本數(shù)據(jù)集作為范例。數(shù)據(jù)模式是提供自助數(shù)據(jù)資產(chǎn)的起點(diǎn)。

可互操作并由全局標(biāo)準(zhǔn)管理

分布式領(lǐng)域數(shù)據(jù)架構(gòu)中的主要關(guān)注點(diǎn)之一,是跨領(lǐng)域關(guān)聯(lián)數(shù)據(jù)并將其以精妙的、深刻的方式組合在一起的能力,連接、過濾、聚合等。跨領(lǐng)域有效關(guān)聯(lián)數(shù)據(jù)的關(guān)鍵是遵循某些標(biāo)準(zhǔn)和統(tǒng)一規(guī)則。此類標(biāo)準(zhǔn)化應(yīng)屬于全局治理,以實(shí)現(xiàn)多語言域數(shù)據(jù)集之間的互操作性。這種標(biāo)準(zhǔn)化工作的共同關(guān)注點(diǎn)是字段類型格式化、跨不同域識別多義詞、數(shù)據(jù)集地址約定、通用元數(shù)據(jù)字段,事件格式(例如CloudEvents等)。

例如,在流媒體業(yè)務(wù)中,“藝術(shù)家”可能出現(xiàn)在不同的領(lǐng)域中,并且在每個(gè)域中具有不同的屬性和標(biāo)識符。“播放事件流”域?qū)λ囆g(shù)家的識別可能與負(fù)責(zé)發(fā)票和付款的“藝術(shù)家支付”域的識別不同。但是,為了能夠在不同領(lǐng)域數(shù)據(jù)產(chǎn)品之間關(guān)聯(lián)藝術(shù)家的數(shù)據(jù),我們需要就如何將藝術(shù)家識別為一個(gè)多義詞達(dá)成共識。一種方法是考慮具有聯(lián)合實(shí)體的“藝術(shù)家”和“藝術(shù)家”的唯一全局聯(lián)合實(shí)體標(biāo)識符,類似于聯(lián)合身份的的管理方式。

全局管理的通信互操作性標(biāo)準(zhǔn)化是構(gòu)建分布式系統(tǒng)的基礎(chǔ)支柱之一。

安全并受全局訪問控制

無論架構(gòu)是否集中化,必須安全地訪問產(chǎn)品數(shù)據(jù)集。在去中心化的面向領(lǐng)域的數(shù)據(jù)產(chǎn)品的世界中,對每個(gè)域數(shù)據(jù)產(chǎn)品都以更精細(xì)的粒度應(yīng)用訪問控制。與業(yè)務(wù)交易領(lǐng)域類似,可以集中定義訪問控制策略,但在訪問每個(gè)單獨(dú)的數(shù)據(jù)集產(chǎn)品時(shí)應(yīng)用訪問控制策略。使用企業(yè)身份管理系統(tǒng)(SSO)基于角色的訪問控制策略定義是實(shí)現(xiàn)產(chǎn)品數(shù)據(jù)集訪問控制的便捷方法。

“數(shù)據(jù)和自助服務(wù)平臺的設(shè)計(jì)融合”章節(jié)描述了共享的基礎(chǔ)架構(gòu),可以輕松自動的賦予每個(gè)數(shù)據(jù)產(chǎn)品上述能力。

領(lǐng)域數(shù)據(jù)跨職能團(tuán)隊(duì)

將數(shù)據(jù)作為產(chǎn)品提供的領(lǐng)域需要增加新的技能:(a)數(shù)據(jù)產(chǎn)品所有者和(b)數(shù)據(jù)工程師

數(shù)據(jù)產(chǎn)品所有者圍繞數(shù)據(jù)產(chǎn)品的愿景和路線圖做出決策,關(guān)注消費(fèi)者的滿意度,并持續(xù)度量和改進(jìn)其領(lǐng)域所擁有和產(chǎn)生的數(shù)據(jù)的質(zhì)量和豐富程度。他負(fù)責(zé)領(lǐng)域數(shù)據(jù)集的生命周期,即何時(shí)更改、修改和退出數(shù)據(jù)和模式。他要在領(lǐng)域數(shù)據(jù)消費(fèi)者的競爭需求之間尋求平衡。

數(shù)據(jù)產(chǎn)品所有者必須為其數(shù)據(jù)產(chǎn)品定義成功標(biāo)準(zhǔn)和與業(yè)務(wù)相關(guān)的關(guān)鍵績效指標(biāo)(KPI)。例如,數(shù)據(jù)產(chǎn)品的消費(fèi)者成功發(fā)現(xiàn)和使用數(shù)據(jù)產(chǎn)品的提前期是可衡量的成功標(biāo)準(zhǔn)。

為了構(gòu)建和運(yùn)行領(lǐng)域的內(nèi)部數(shù)據(jù)流水線,團(tuán)隊(duì)必須包括數(shù)據(jù)工程師。這種跨職能團(tuán)隊(duì)的一個(gè)奇妙的副作用是不同技能的交叉?zhèn)魇?。我目前的行業(yè)觀察是,一些數(shù)據(jù)工程師雖然能夠使用其交易工具,但在構(gòu)建數(shù)據(jù)資產(chǎn)時(shí)缺乏軟件工程標(biāo)準(zhǔn)實(shí)踐,例如持續(xù)交付和自動化測試。同樣,正在構(gòu)建業(yè)務(wù)系統(tǒng)的軟件工程師通常沒有使用數(shù)據(jù)工程工具集的經(jīng)驗(yàn)。消除技能集豎井將創(chuàng)建可供組織更大更深的數(shù)據(jù)工程技能庫。我們觀察到DevOps運(yùn)動中同樣的交叉技能傳授,以及諸如SREs之類的新型工程師的誕生SRE

數(shù)據(jù)必須被視為任何軟件生態(tài)系統(tǒng)的基礎(chǔ)部分,因此軟件工程師和軟件通才(software generalists)必須將數(shù)據(jù)產(chǎn)品開發(fā)的經(jīng)驗(yàn)和知識添加到他們的工具帶中。類似地,基礎(chǔ)設(shè)施工程師需要增加管理數(shù)據(jù)基礎(chǔ)設(shè)施的知識和經(jīng)驗(yàn)。組織必須提供從通才到數(shù)據(jù)工程師的職業(yè)發(fā)展路徑。數(shù)據(jù)工程技能的缺乏導(dǎo)致局部優(yōu)化,正如“ 孤立的和超專業(yè)的所有權(quán)”一節(jié)所述,組建了集中式的數(shù)據(jù)工程團(tuán)隊(duì)。

圖10:具有明確數(shù)據(jù)產(chǎn)品所有權(quán)的跨功能域數(shù)據(jù)團(tuán)隊(duì)

數(shù)據(jù)和自助平臺設(shè)計(jì)融合

將數(shù)據(jù)所有權(quán)分配給領(lǐng)域的主要問題之一是在每個(gè)領(lǐng)域中操作數(shù)據(jù)流水線技術(shù)棧和基礎(chǔ)設(shè)施帶來的重復(fù)工作和技能。幸運(yùn)的是,將通用基礎(chǔ)設(shè)施構(gòu)建為平臺是一個(gè)眾所周知的問題,并且已經(jīng)得到解決。盡管不可否認(rèn)的是,工具和技術(shù)在數(shù)據(jù)生態(tài)系統(tǒng)中還不成熟。

將領(lǐng)域無關(guān)的基礎(chǔ)設(shè)施功能收集和提取到數(shù)據(jù)基礎(chǔ)設(shè)施平臺中,避免了重復(fù)設(shè)置數(shù)據(jù)流水線引擎、存儲和流基礎(chǔ)設(shè)施的工作。數(shù)據(jù)基礎(chǔ)設(shè)施團(tuán)隊(duì)可以擁有并提供域捕獲、處理、存儲和服務(wù)其數(shù)據(jù)產(chǎn)品所需的必要技術(shù)。

圖11:提取和收集與領(lǐng)域無關(guān)的數(shù)據(jù)流水線基礎(chǔ)設(shè)施,并將工具構(gòu)建到作為平臺的獨(dú)立數(shù)據(jù)基礎(chǔ)設(shè)施中

數(shù)據(jù)基礎(chǔ)設(shè)施構(gòu)建為平臺的關(guān)鍵是(a)不包含任何特定領(lǐng)域的概念或業(yè)務(wù)邏輯,使其與領(lǐng)域無關(guān),(b)確保平臺隱藏了所有底層的復(fù)雜性,并以自助服務(wù)的方式提供數(shù)據(jù)基礎(chǔ)設(shè)施組件。自助數(shù)據(jù)基礎(chǔ)架構(gòu)作為平臺向用戶(領(lǐng)域的數(shù)據(jù)工程師)提供的功能有一長串,以下是其中一些:

  • 可擴(kuò)展的多語言大數(shù)據(jù)存儲
  • 靜態(tài)和動態(tài)數(shù)據(jù)加密
  • 數(shù)據(jù)產(chǎn)品版本控制
  • 數(shù)據(jù)產(chǎn)品模式
  • 數(shù)據(jù)產(chǎn)品去標(biāo)識
  • 統(tǒng)一的數(shù)據(jù)訪問控制和日志
  • 數(shù)據(jù)流水線實(shí)施和編排
  • 數(shù)據(jù)產(chǎn)品發(fā)現(xiàn),目錄注冊和發(fā)布
  • 數(shù)據(jù)治理與標(biāo)準(zhǔn)化
  • 數(shù)據(jù)產(chǎn)品血緣
  • 數(shù)據(jù)產(chǎn)品監(jiān)控/報(bào)警/日志
  • 數(shù)據(jù)產(chǎn)品質(zhì)量指標(biāo)(收集和共享)
  • 內(nèi)存數(shù)據(jù)緩存
  • 聯(lián)合身份管理
  • 計(jì)算和數(shù)據(jù)局部性

自助數(shù)據(jù)基礎(chǔ)設(shè)施的成功標(biāo)準(zhǔn)是減少基礎(chǔ)設(shè)施上的“創(chuàng)建新數(shù)據(jù)產(chǎn)品的準(zhǔn)備時(shí)間”。 這導(dǎo)致了自動化,這是實(shí)現(xiàn)“數(shù)據(jù)產(chǎn)品”功能所必需的,正如“將域數(shù)據(jù)作為產(chǎn)品”章節(jié)中介紹。例如,通過配置和腳本自動化數(shù)據(jù)提取、數(shù)據(jù)產(chǎn)品創(chuàng)建腳本來放置腳手架、在目錄中自動注冊數(shù)據(jù)產(chǎn)品等等。

使用云基礎(chǔ)設(shè)施作為基礎(chǔ)可以降低按需訪問數(shù)據(jù)基礎(chǔ)架構(gòu)所需的運(yùn)營成本和工作量,但是并不能完全消除需要在業(yè)務(wù)上下文中用到的高級抽象。無論云提供商是誰,都有大量且不斷增長的數(shù)據(jù)基礎(chǔ)架構(gòu)服務(wù)可用于數(shù)據(jù)基礎(chǔ)架構(gòu)團(tuán)隊(duì)。


范式向數(shù)據(jù)網(wǎng)格轉(zhuǎn)移

已經(jīng)讀了很長時(shí)間,讓我們串起來看看。我們研究了當(dāng)前數(shù)據(jù)平臺的一些基本特征:集中式、整體式、高度耦合的流水線架構(gòu),被高度專業(yè)化的數(shù)據(jù)工程師豎井式的操作。我們介紹了一個(gè)無處不在的數(shù)據(jù)網(wǎng)格作為平臺構(gòu)建模塊;面向領(lǐng)域的分布式數(shù)據(jù)產(chǎn)品,由獨(dú)立的跨職能團(tuán)隊(duì)擁有,這些團(tuán)隊(duì)具有嵌入式數(shù)據(jù)工程師和數(shù)據(jù)產(chǎn)品所有者,使用通用數(shù)據(jù)基礎(chǔ)設(shè)施作為平臺來托管,準(zhǔn)備和服務(wù)其數(shù)據(jù)資產(chǎn)。

數(shù)據(jù)網(wǎng)格平臺是經(jīng)過精心設(shè)計(jì)的分布式數(shù)據(jù)架構(gòu),在集中管理和標(biāo)準(zhǔn)化下實(shí)現(xiàn)互操作性,并通過共享和統(tǒng)一的自助式數(shù)據(jù)基礎(chǔ)設(shè)施實(shí)現(xiàn)。我希望已經(jīng)闡述清楚的是,這絕不是一個(gè)由無法訪問數(shù)據(jù)所組成的支離破碎的孤島。

圖12:30,000英尺高度下的數(shù)據(jù)網(wǎng)格架構(gòu)

您可能會問,數(shù)據(jù)湖或數(shù)據(jù)倉庫在此架構(gòu)中適合什么位置?它們只是網(wǎng)格上的節(jié)點(diǎn)。我們很有可能不需要數(shù)據(jù)湖,因?yàn)楸4嬖紨?shù)據(jù)的分布式日志和存儲可用于從作為產(chǎn)品的、不同可尋址的、不可變的數(shù)據(jù)集中進(jìn)行探索。但是,如果我們確實(shí)需要更改數(shù)據(jù)的原始格式以進(jìn)行進(jìn)一步的探索(例如標(biāo)記),有此需求的領(lǐng)域可能會創(chuàng)建自己的數(shù)據(jù)湖或數(shù)據(jù)中心。

因此,數(shù)據(jù)湖不再是整個(gè)架構(gòu)的核心。我們將繼續(xù)對面向源的領(lǐng)域數(shù)據(jù)產(chǎn)品應(yīng)用數(shù)據(jù)湖的一些原則,例如使不可變數(shù)據(jù)可用于探索和分析使用。我們將繼續(xù)使用數(shù)據(jù)湖工具,但是,要么用于數(shù)據(jù)產(chǎn)品的內(nèi)部實(shí)現(xiàn),要么作為共享數(shù)據(jù)基礎(chǔ)設(shè)施的一部分。

實(shí)際上,這使我們回到了一切的起點(diǎn): 2010年,詹姆斯·迪克森(James Dixon)打算將一個(gè)數(shù)據(jù)湖用于單個(gè)領(lǐng)域,而多個(gè)數(shù)據(jù)領(lǐng)域?qū)⑿纬梢粋€(gè)“水花園”。

主要轉(zhuǎn)變是將領(lǐng)域數(shù)據(jù)產(chǎn)品視為第一類關(guān)注點(diǎn),而將數(shù)據(jù)湖工具和流水線視為第二類關(guān)注點(diǎn)-實(shí)現(xiàn)細(xì)節(jié)。這將當(dāng)前的思維模型從集中的數(shù)據(jù)湖轉(zhuǎn)變?yōu)榭梢院芎玫貐f(xié)同工作的數(shù)據(jù)產(chǎn)品生態(tài)系統(tǒng),即數(shù)據(jù)網(wǎng)格

相同的原則適用于用于業(yè)務(wù)報(bào)告和可視化的數(shù)據(jù)倉庫。它只是網(wǎng)格上的一個(gè)節(jié)點(diǎn),并且可能位于面向消費(fèi)者的網(wǎng)格邊緣。

我承認(rèn),盡管我看到數(shù)據(jù)網(wǎng)格實(shí)踐已在我的客戶的口袋中應(yīng)用,但到企業(yè)規(guī)?;牟捎萌匀挥泻荛L的路要走。我不認(rèn)為技術(shù)是這里的限制,我們今天使用的所有工具都可以容納多個(gè)團(tuán)隊(duì)的分配和所有權(quán)。特別是向批處理和流式處理工具統(tǒng)一的轉(zhuǎn)變,例如Apache Beam Google Cloud Dataflow,可以輕松地處理可尋址的多語言數(shù)據(jù)集。

諸如Google Cloud Data Catalog之類的數(shù)據(jù)目錄平臺,提供了分布式領(lǐng)域數(shù)據(jù)集集中的可發(fā)現(xiàn)性、訪問控制和治理。各種各樣云數(shù)據(jù)存儲選項(xiàng)使領(lǐng)域數(shù)據(jù)產(chǎn)品可以選擇適合自身的多語言存儲。

需求是真實(shí)的,工具已經(jīng)準(zhǔn)備好。組織的工程師和領(lǐng)導(dǎo)者應(yīng)當(dāng)認(rèn)識到,僅使用新的基于云的工具,現(xiàn)有的大數(shù)據(jù)范式和一個(gè)真正的大數(shù)據(jù)平臺或數(shù)據(jù)湖只會重復(fù)過去的失敗。

這種范式轉(zhuǎn)變需要一套新的管理原則以及一種新的語言

  • 服務(wù)而不是提取
  • 發(fā)現(xiàn)使用而不是提取加載
  • 發(fā)布事件流而不是通過集中式流水線集中進(jìn)行數(shù)據(jù)流動
  • 數(shù)據(jù)產(chǎn)品生態(tài)系統(tǒng)而不是集中式的數(shù)據(jù)平臺

讓我們將大數(shù)據(jù)整體分解成為一個(gè)協(xié)調(diào)的、協(xié)作的、分布式的數(shù)據(jù)網(wǎng)格生態(tài)系統(tǒng)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容