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

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


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

內(nèi)容目錄

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

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

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

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


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

它是集中的妓笙、單體的若河、領(lǐng)域不可知的,又稱(chēng)數(shù)據(jù)湖寞宫。
幾乎所有與我合作過(guò)的客戶(hù)都在計(jì)劃或建設(shè)他們的第三代數(shù)據(jù)和智能平臺(tái)萧福,同時(shí)也承認(rèn)了過(guò)去幾代人的失敗:

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

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

架構(gòu)失敗模式

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

集中式和整體式

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

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

一個(gè)公認(rèn)的慣例是赎懦,整體數(shù)據(jù)平臺(tái)托管并擁有邏輯上屬于不同領(lǐng)域的數(shù)據(jù),例如“播放事件”幻工,“銷(xiāo)售KPI”励两,“藝術(shù)家”,“專(zhuān)輯”囊颅,“標(biāo)簽”当悔,“音頻”傅瞻,“播客” ','音樂(lè)事件'等盲憎;來(lái)自大量不同領(lǐng)域域的數(shù)據(jù)嗅骄。

在過(guò)去的十年中,我們已經(jīng)成功地將領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)和受限制的上下文應(yīng)用于我們的業(yè)務(wù)交易系統(tǒng)(Operational system)饼疙,而我們?cè)诤艽蟪潭壬虾雎粤藬?shù)據(jù)平臺(tái)中的領(lǐng)域概念溺森。我們已經(jīng)從面向領(lǐng)域的數(shù)據(jù)所有權(quán)轉(zhuǎn)移到集中式的領(lǐng)域不可知數(shù)據(jù)所有權(quán)。我們以創(chuàng)建最大的單體(大數(shù)據(jù)平臺(tái))而感到自豪窑眯。

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

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

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

集中式數(shù)據(jù)平臺(tái)的架構(gòu)和組織結(jié)構(gòu)上存在兩個(gè)壓力點(diǎn)卷要,經(jīng)常導(dǎo)致其失旑跆:

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

  • 組織的創(chuàng)新規(guī)劃和消費(fèi)者激增:組織對(duì)快速試錯(cuò)的需求引入了大量從平臺(tái)消費(fèi)數(shù)據(jù)的案例苍息。這意味著為了滿(mǎn)足 測(cè)試和創(chuàng)新學(xué)習(xí)周期缩幸,聚合、投影和切片的轉(zhuǎn)換數(shù)量將不斷增加竞思。長(zhǎng)期以來(lái)表谊,滿(mǎn)足數(shù)據(jù)消費(fèi)者需求的響應(yīng)時(shí)間太長(zhǎng)一直是組織摩擦的一個(gè)問(wèn)題,而在現(xiàn)代數(shù)據(jù)平臺(tái)架構(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ù)倉(cāng)庫(kù),這是多年積累的技術(shù)債務(wù)的結(jié)果漂彤。這是行業(yè)領(lǐng)導(dǎo)者表達(dá)的關(guān)注點(diǎn)雾消。但是我認(rèn)為,對(duì)這些意外的無(wú)法訪問(wèn)的數(shù)據(jù)孤島的回應(yīng)并不是建立一個(gè)集中式的數(shù)據(jù)平臺(tái)挫望,然后由一個(gè)集中化的團(tuán)隊(duì)來(lái)?yè)碛泻凸芾韥?lái)自所有領(lǐng)域的數(shù)據(jù)立润。正如我們?cè)谏厦嬉褜W(xué)到和證明的那樣,它在組織上并不具備伸縮能力媳板。

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

傳統(tǒng)數(shù)據(jù)平臺(tái)架構(gòu)的第二種失敗模式與我們?nèi)绾畏纸饧軜?gòu)有關(guān)桑腮。在10,000英尺處放大集中式數(shù)據(jù)平臺(tái)后,我們發(fā)現(xiàn)架構(gòu)分解是圍繞提取蛉幸,清理破讨,聚合服務(wù)等機(jī)械化功能的奕纫。組織的架構(gòu)師和技術(shù)領(lǐng)導(dǎo)者會(huì)根據(jù)平臺(tái)的增長(zhǎng)來(lái)分解架構(gòu)提陶。如如上一節(jié)所述,添加新的數(shù)據(jù)源或響應(yīng)新的消費(fèi)者要求平臺(tái)不斷發(fā)展匹层。架構(gòu)師需要找到一種方法隙笆,通過(guò)將其分解來(lái)進(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)量子的動(dòng)機(jī)是創(chuàng)建獨(dú)立的團(tuán)隊(duì)您访,每個(gè)人都可以構(gòu)建和操作架構(gòu)量子铅忿。這些團(tuán)隊(duì)之間的并行工作可達(dá)到更高的操作擴(kuò)展性和速度。

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

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

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

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

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

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

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

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

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

例如,在流媒體領(lǐng)域中蚊伞,在數(shù)據(jù)源端席赂,我們有跨職能的“媒體播放器”團(tuán)隊(duì),提供有關(guān)用戶(hù)如何與他們提供的特定功能進(jìn)行交互的信號(hào)时迫,例如“播放歌曲事件”氧枣,“購(gòu)買(mǎi)事件”,“音頻播放質(zhì)量”等别垮;另一端是消費(fèi)者跨職能團(tuán)隊(duì)便监,例如“歌曲推薦”團(tuán)隊(duì),“銷(xiāo)售團(tuán)隊(duì)”報(bào)告銷(xiāo)售KPI碳想,“藝術(shù)家支付團(tuán)隊(duì)”烧董,后者根據(jù)播放事件計(jì)算和已支付的藝術(shù)家,等等胧奔⊙芬疲可悲的是,位于中間的數(shù)據(jù)平臺(tái)團(tuán)隊(duì)通過(guò)全力為所有來(lái)源和消費(fèi)者提供合適的數(shù)據(jù)龙填。

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

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


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

它通過(guò)分布式數(shù)據(jù)網(wǎng)格(Data Mesh)包含了無(wú)處不在的數(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ù)平臺(tái)架構(gòu)是分布式領(lǐng)域驅(qū)動(dòng)的架構(gòu)街佑、自助服務(wù)平臺(tái)設(shè)計(jì)以及數(shù)據(jù)產(chǎn)品思維的融合

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

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

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

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

埃里克·埃文斯(Eric Evans)的著作《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》深刻地影響了現(xiàn)代架構(gòu)思想希俩,從而影響了組織建模。通過(guò)將系統(tǒng)分解為圍繞業(yè)務(wù)域功能構(gòu)建的分布式服務(wù)纲辽,它給微服務(wù)架構(gòu)帶來(lái)很大影響颜武。它從根本上改變了團(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ù)平臺(tái)架構(gòu)中最接近的應(yīng)用是,數(shù)據(jù)源業(yè)務(wù)系統(tǒng)發(fā)出對(duì)應(yīng)業(yè)務(wù)領(lǐng)域事件怠硼,然后單體數(shù)據(jù)平臺(tái)來(lái)接收它們鬼贱。但是,超出提取點(diǎn)范圍香璃,卻丟失了領(lǐng)域概念以及不同團(tuán)隊(duì)對(duì)領(lǐng)域域數(shù)據(jù)的所有權(quán)这难。

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

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

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

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

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

面向領(lǐng)域的數(shù)據(jù)平臺(tái)中的架構(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í)如“用戶(hù)如何與服務(wù)進(jìn)行交互”或“入駐標(biāo)簽流程”導(dǎo)致了域數(shù)據(jù)集的創(chuàng)建浑度,例如“用戶(hù)點(diǎn)擊流”寇窑,“音頻播放質(zhì)量流”和“入駐的唱片公司”。這些事實(shí)是眾所周知的箩张,并且由數(shù)據(jù)起源處的業(yè)務(wù)系統(tǒng)生成甩骏。例如,媒體播放器系統(tǒng)最了解“用戶(hù)點(diǎn)擊流”先慷。

在成熟且理想的情況下饮笛,業(yè)務(wù)系統(tǒng)及其團(tuán)隊(duì)或組織單位不僅負(fù)責(zé)提供業(yè)務(wù)功能,而且還負(fù)責(zé)將其業(yè)務(wù)域真實(shí)情況作為源域數(shù)據(jù)集提供出來(lái)论熙。在企業(yè)規(guī)模上福青,領(lǐng)域概念和源系統(tǒng)之間從來(lái)沒(méi)有一對(duì)一的映射。通常有許多系統(tǒng)可以為屬于某個(gè)領(lǐng)域的數(shù)據(jù)提供服務(wù)脓诡,其中一些是遺留數(shù)據(jù)无午,另一些是容易更改的數(shù)據(jù)。因此祝谚,可能會(huì)有許多源對(duì)齊數(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)行存儲(chǔ)穿仪,以供任何授權(quán)消費(fèi)者訪問(wèn)。

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

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

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

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

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

請(qǐ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ì)旨在滿(mǎn)足一組密切相關(guān)的用例。例如猾封,“社交推薦域”側(cè)重于根據(jù)用戶(hù)之間的社交聯(lián)系提供推薦澄耍,創(chuàng)建適合此特定需求的域數(shù)據(jù)集;也許通過(guò)“用戶(hù)社交網(wǎng)絡(luò)的圖表示”晌缘。盡管此圖數(shù)據(jù)集對(duì)于推薦用例很有用齐莲,但對(duì)于“聽(tīng)眾通知”域也可能有用,該域提供有關(guān)根據(jù)聽(tīng)眾的類(lèi)型發(fā)送不同的通知數(shù)據(jù)磷箕,包括其社交網(wǎng)絡(luò)中的人正在聽(tīng)的內(nèi)容选酗。因此,“用戶(hù)社交網(wǎng)絡(luò)”有可能成為共享的和新定義的域數(shù)據(jù)集岳枷,供多個(gè)消費(fèi)者使用芒填。“用戶(hù)社交網(wǎng)絡(luò)”域團(tuán)隊(duì)致力于提供一個(gè)“用戶(hù)社交網(wǎng)絡(luò)”的始終精心設(shè)計(jì)的最新視圖空繁。

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

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

盡管將數(shù)據(jù)集所有權(quán)從集中式平臺(tái)委托給領(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)域中菱属。

例如钳榨,源域需要包括對(duì)其域事件的清理、去重纽门、豐富它們的領(lǐng)域事件以便其它領(lǐng)域可以使用它們薛耻,其它領(lǐng)域無(wú)需重復(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)域中作為第二類(lèi)關(guān)注點(diǎn)僚楞,以及領(lǐng)域的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)

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

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

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

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

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

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


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

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

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

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

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

一款數(shù)據(jù)產(chǎn)品必須易于發(fā)現(xiàn)汽煮。常見(jiàn)的實(shí)現(xiàn)方式是為所有可用的數(shù)據(jù)產(chǎn)品提供一個(gè)注冊(cè)表,它包括一個(gè)數(shù)據(jù)目錄棚唆,以及它們的元信息(比如其所有者暇赤、來(lái)源、數(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ù)目錄中注冊(cè)。

注意瓜喇,這里的視角從單個(gè)平臺(tái)提取并擁有數(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è)全局約定望众,以幫助其用戶(hù)以編程方式訪問(wèn)它。根據(jù)數(shù)據(jù)的底層存儲(chǔ)和格式伞辛,組織可能對(duì)其數(shù)據(jù)采用不同的命名約定烂翰。考慮到易用性作為一個(gè)目標(biāo)蚤氏,在一個(gè)去中心化的架構(gòu)中甘耿,有必要制定通用的約定規(guī)范。不同的領(lǐng)域可能以不同的格式存儲(chǔ)和提供其數(shù)據(jù)集竿滨,事件可能通過(guò)諸如Kafka主題之類(lèi)的流進(jìn)行存儲(chǔ)和訪問(wèn)佳恬,列式數(shù)據(jù)集可能使用CSV文件或AWS S3存儲(chǔ)序列化Parquet文件。多種語(yǔ)言環(huán)境中的數(shù)據(jù)集可尋址性標(biāo)準(zhǔn)消除了查找和訪問(wèn)信息時(shí)的摩擦姐呐。

可信賴(lài)的殿怜、真實(shí)的

沒(méi)有人會(huì)使用他們不信任的產(chǎn)品。在傳統(tǒng)的數(shù)據(jù)平臺(tái)中曙砂,可以接受提取并裝載有錯(cuò)誤头谜、不能反映業(yè)務(wù)真相并且無(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ù)清理和自動(dòng)化數(shù)據(jù)完整性測(cè)試是提供可接受質(zhì)量水平的一些技術(shù)乖菱。將數(shù)據(jù)來(lái)源和數(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ǎng)的延遲和較高的事件準(zhǔn)確性皮官。每個(gè)數(shù)據(jù)產(chǎn)品定義并確保其完整性和真實(shí)性的目標(biāo)級(jí)別(作為一組SLO)脯倒。

自描述的語(yǔ)義和語(yǔ)法

優(yōu)質(zhì)的產(chǎn)品不需要消費(fèi)者手持即可使用:它們可以獨(dú)立地發(fā)現(xiàn),理解和消費(fèi)捺氢。將數(shù)據(jù)集構(gòu)建為數(shù)據(jù)工程師和數(shù)據(jù)科學(xué)家使用起來(lái)摩擦最小的產(chǎn)品藻丢,需要對(duì)數(shù)據(jù)的語(yǔ)義和語(yǔ)法進(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ù)并將其以精妙的缺狠、深刻的方式組合在一起的能力,連接萍摊、過(guò)濾挤茄、聚合等”荆跨領(lǐng)域有效關(guān)聯(lián)數(shù)據(jù)的關(guān)鍵是遵循某些標(biāo)準(zhǔn)和統(tǒng)一規(guī)則穷劈。此類(lèi)標(biāo)準(zhǔn)化應(yīng)屬于全局治理,以實(shí)現(xiàn)多語(yǔ)言域數(shù)據(jù)集之間的互操作性踊沸。這種標(biāo)準(zhǔn)化工作的共同關(guān)注點(diǎn)是字段類(lèi)型格式化歇终、跨不同域識(shí)別多義詞、數(shù)據(jù)集地址約定逼龟、通用元數(shù)據(jù)字段评凝,事件格式(例如CloudEvents等)。

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

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

安全并受全局訪問(wèn)控制

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

“數(shù)據(jù)和自助服務(wù)平臺(tái)的設(shè)計(jì)融合”章節(jié)描述了共享的基礎(chǔ)架構(gòu)恋拍,可以輕松自動(dòng)的賦予每個(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)者的滿(mǎn)意度,并持續(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)者的競(jìng)爭(zhēng)需求之間尋求平衡默怨。

數(shù)據(jù)產(chǎn)品所有者必須為其數(shù)據(jù)產(chǎn)品定義成功標(biāo)準(zhǔn)和與業(yè)務(wù)相關(guān)的關(guān)鍵績(jī)效指標(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)魇诤勖省N夷壳暗男袠I(yè)觀察是,一些數(shù)據(jù)工程師雖然能夠使用其交易工具送浊,但在構(gòu)建數(shù)據(jù)資產(chǎn)時(shí)缺乏軟件工程標(biāo)準(zhǔn)實(shí)踐梦谜,例如持續(xù)交付和自動(dòng)化測(cè)試。同樣,正在構(gòu)建業(yè)務(wù)系統(tǒng)的軟件工程師通常沒(méi)有使用數(shù)據(jù)工程工具集的經(jīng)驗(yàn)改淑。消除技能集豎井將創(chuàng)建可供組織更大更深的數(shù)據(jù)工程技能庫(kù)碍岔。我們觀察到DevOps運(yùn)動(dòng)中同樣的交叉技能傳授,以及諸如SREs之類(lèi)的新型工程師的誕生SRE朵夏。

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

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

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

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

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

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

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

  • 可擴(kuò)展的多語(yǔ)言大數(shù)據(jù)存儲(chǔ)
  • 靜態(tài)和動(dòng)態(tài)數(shù)據(jù)加密
  • 數(shù)據(jù)產(chǎn)品版本控制
  • 數(shù)據(jù)產(chǎn)品模式
  • 數(shù)據(jù)產(chǎn)品去標(biāo)識(shí)
  • 統(tǒng)一的數(shù)據(jù)訪問(wèn)控制和日志
  • 數(shù)據(jù)流水線實(shí)施和編排
  • 數(shù)據(jù)產(chǎn)品發(fā)現(xiàn),目錄注冊(cè)和發(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)致了自動(dòng)化,這是實(shí)現(xiàn)“數(shù)據(jù)產(chǎn)品”功能所必需的劲妙,正如“將域數(shù)據(jù)作為產(chǎn)品”章節(jié)中介紹湃鹊。例如,通過(guò)配置和腳本自動(dòng)化數(shù)據(jù)提取镣奋、數(shù)據(jù)產(chǎn)品創(chuàng)建腳本來(lái)放置腳手架币呵、在目錄中自動(dòng)注冊(cè)數(shù)據(jù)產(chǎn)品等等。

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


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

已經(jīng)讀了很長(zhǎng)時(shí)間妻柒,讓我們串起來(lái)看看扛拨。我們研究了當(dāng)前數(shù)據(jù)平臺(tái)的一些基本特征:集中式、整體式举塔、高度耦合的流水線架構(gòu)绑警,被高度專(zhuān)業(yè)化的數(shù)據(jù)工程師豎井式的操作。我們介紹了一個(gè)無(wú)處不在的數(shù)據(jù)網(wǎng)格作為平臺(tái)構(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è)施作為平臺(tái)來(lái)托管北启,準(zhǔn)備和服務(wù)其數(shù)據(jù)資產(chǎn)。

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

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

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

因此晨横,數(shù)據(jù)湖不再是整個(gè)架構(gòu)的核心洋腮。我們將繼續(xù)對(duì)面向源的領(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)品視為第一類(lèi)關(guān)注點(diǎn),而將數(shù)據(jù)湖工具和流水線視為第二類(lèi)關(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ù)倉(cāng)庫(kù)美旧。它只是網(wǎng)格上的一個(gè)節(jié)點(diǎn)渤滞,并且可能位于面向消費(fèi)者的網(wǎng)格邊緣。

我承認(rèn)榴嗅,盡管我看到數(shù)據(jù)網(wǎng)格實(shí)踐已在我的客戶(hù)的口袋中應(yīng)用妄呕,但到企業(yè)規(guī)模化的采用仍然有很長(zhǎng)的路要走嗽测。我不認(rèn)為技術(shù)是這里的限制绪励,我們今天使用的所有工具都可以容納多個(gè)團(tuán)隊(duì)的分配和所有權(quán)。特別是向批處理和流式處理工具統(tǒng)一的轉(zhuǎn)變唠粥,例如Apache Beam Google Cloud Dataflow疏魏,可以輕松地處理可尋址的多語(yǔ)言數(shù)據(jù)集。

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

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

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

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末飒房,一起剝皮案震驚了整個(gè)濱河市搁凸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌狠毯,老刑警劉巖坪仇,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異垃你,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)惜颇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)皆刺,“玉大人,你說(shuō)我怎么就攤上這事凌摄∠鄱辏” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵锨亏,是天一觀的道長(zhǎng)痴怨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)器予,這世上最難降的妖魔是什么浪藻? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮乾翔,結(jié)果婚禮上爱葵,老公的妹妹穿的比我還像新娘。我一直安慰自己反浓,他們只是感情好萌丈,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雷则,像睡著了一般辆雾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上月劈,一...
    開(kāi)封第一講書(shū)人閱讀 49,046評(píng)論 1 285
  • 那天度迂,我揣著相機(jī)與錄音,去河邊找鬼艺栈。 笑死英岭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的湿右。 我是一名探鬼主播诅妹,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼毅人!你這毒婦竟也來(lái)了吭狡?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤丈莺,失蹤者是張志新(化名)和其女友劉穎划煮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體缔俄,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弛秋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年器躏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟹略。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡登失,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挖炬,到底是詐尸還是另有隱情揽浙,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布意敛,位于F島的核電站馅巷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏草姻。R本人自食惡果不足惜钓猬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碴倾。 院中可真熱鬧逗噩,春花似錦、人聲如沸跌榔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)僧须。三九已至纲刀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間担平,已是汗流浹背示绊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暂论,地道東北人面褐。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像取胎,于是被迫代替她去往敵國(guó)和親展哭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345