數據網格架構-從工程角度看數據網格

數據網格架構-從工程角度看數據網格

爲什麼(me)您可能(néng)需要數據網格

許多組織已經(jīng)投資了一個中央數據湖和一個數據團隊,希望基于數據來推動他們的業務。然而,在一些初步的快速獲勝之後(hòu),他們注意到中央數據團隊經(jīng)常成(chéng)爲瓶頸. 團隊無法足夠快地處理管理層和産品負責人的所有分析問題。這(zhè)是一個巨大的問題,因爲及時做出數據驅動的決策對(duì)于保持競争力至關重要。例如:在黑色周期間提供免費送貨是個好(hǎo)主意嗎?客戶是否接受更長(cháng)但更可靠的運輸時間?産品頁面(miàn)更改如何影響結賬率和退貨率?

數據團隊希望快速回答​​所有這(zhè)些問題。然而,在實踐中,他們遇到了困難,因爲他們需要在操作數據庫更改後(hòu)花費太多時間來修複損壞的數據管道(dào)。在剩下的時間裡(lǐ),數據團隊必須發(fā)現和理解必要的領域數據。對(duì)于每個問題,他們都(dōu)需要學(xué)習領域知識以提供有意義的見解。獲得所需的領域專業知識是一項艱巨的任務。

另一方面(miàn),組織也投資于領域驅動設計、自治領域團隊(也稱爲流對(duì)齊團隊或産品團隊)和去中心化微服務架構。這(zhè)些領域團隊擁有并了解他們的領域,包括業務的信息需求。他們自行設計、構建和運行自己的 Web 應用程序和 API。盡管了解領域和相關信息需求,領域團隊必須聯系超負荷的中央數據團隊以獲得必要的數據驅動洞察力。

随着組織的最終成(chéng)長(cháng),領域團隊和中心數據團隊的情況變得更糟。解決這(zhè)個問題的一種(zhǒng)方法是將(jiāng)數據的責任從中央數據團隊轉移到領域團隊。這(zhè)就是數據網格概念背後(hòu)的核心思想: 面(miàn)向(xiàng)領域的去中心化分析數據。數據網格架構使域團隊能(néng)夠對(duì)自己的跨域數據分析和互連數據,類似于微服務架構中的 API。

什麼(me)是數據網格?

 

術語數據網格Zhamak Dehghani 創造在 2019 年,基于捆綁知名概念的四個基本原則:

域所有權原則要求域團隊對(duì)其數據負責 。根據這(zhè)一原則,分析數據應圍繞域組成(chéng),類似于與系統的有界上下文對(duì)齊的團隊邊界。遵循領域驅動的分布式架構,分析和運營數據所有權轉移到領域團隊,遠離中央數據團隊。

數據作爲産品原則 將(jiāng)産品思維理念投射到分析數據上。這(zhè)個原則意味着域之外的數據有消費者。領域團隊負責通過(guò)提供高質量數據來滿足其他領域的需求。基本上,域數據應該被視爲任何其他公共 API。

自助數據基礎設施平台 背後(hòu)的理念是將(jiāng)平台思維應用于數據基礎設施。一個專門的數據平台團隊提供與領域無關的功能(néng)、工具和系統,爲所有領域構建、執行和維護可互操作的數據産品。借助其平台,數據平台團隊使領域團隊能(néng)夠無縫地使用和創建數據産品。

聯邦治理原則通過(guò)标準化實現所有數據産品的互操作性,由治理行會在整個數據網格中推動。聯邦治理的主要目标是創建一個遵守組織規則和行業法規的數據生态系統。

 

如何設計數據網格?

數據網格架構是一種(zhǒng)分散的方法,使域團隊能(néng)夠自行執行跨域數據分析。其核心是具有負責團隊及其運營和分析數據的域。領域團隊攝取運營數據并構建分析數據模型以執行他們自己的分析。它使用分析數據來構建基于其他領域需求的數據産品。

領域團隊與其他人就全球政策達成(chéng)一緻,例如聯合治理協會中的互操作性、安全性和文檔标準,以便領域團隊知道(dào)如何發(fā)現、理解和使用數據網格中可用的數據産品。數據平台團隊提供的與領域無關的自助數據平台,使領域團隊能(néng)夠輕松構建自己的數據産品并有效地進(jìn)行自己的分析。支持團隊指導領域團隊如何對(duì)分析數據進(jìn)行建模、使用數據平台以及構建和維護可互操作的數據産品。

數據網格核心組件架構

數據産品

數據産品通常是可以被其他域訪問的已發(fā)布數據集,類似于 API。例如,Google BigQuery 表中的庫存更新曆史記錄或 AWS S3 存儲桶上帶有采購訂單的每日 JSON 文件。數據産品也可以采用其他形式,包括包含 KPI 和圖表的 PDF 形式的銷售報告,甚至是用于預測發(fā)貨日期的機器學(xué)習模型作爲 ONNX 文件。

爲了發(fā)現、訪問和使用數據産品,它使用元數據進(jìn)行描述,包括所有權和聯系信息、數據位置和訪問、更新頻率以及數據模型的規範。

領域團隊負責數據産品在其整個生命周期内的操作。團隊需要持續監控并确保數據質量和可用性。例如,保持數據不重複或對(duì)丢失的條目做出反應。

聯邦治理

聯合治理機構通常組織爲一個公會,由參與數據網格的所有團隊的代表組成(chéng)。他們就全球政策達成(chéng)一緻,這(zhè)是數據網格中的遊戲規則。這(zhè)些規則定義了領域團隊必須如何構建他們的數據産品。

互操作性 政策是起(qǐ)點。它們允許其他領域團隊以一緻的方式使用數據産品。例如,全局策略可以將(jiāng)提供數據的标準方式定義爲 AWS S3 上相應域團隊擁有的存儲桶中的 CSV 文件。

接下來,必須有某種(zhǒng)形式的文檔來發(fā)現和理解可用的數據産品。一個簡單的策略可以是一個 wiki 頁面(miàn),其中包含一組預定義的元數據,例如數據産品的所有者、位置 URL 和 CSV 字段的描述。

以安全方式 訪問實際數據産品的統一方式可能(néng)是在 AWS IAM 中使用基于角色的訪問,由域團隊管理。

隐私和合 等全球政策也很常見。考慮保護個人身份信息 (PII) 或特定行業的法律要求。

分析數據

深入分析數據,我們可以看到導緻數據産品的數據流。運營數據通常作爲某種(zhǒng)原始和非結構化數據被攝取。

在預處理步驟中,原始數據被清理并結構化爲事(shì)件和實體。 事(shì)件很小、不可變且高度面(miàn)向(xiàng)領域,例如OrderPurchasedShipmentDelivered。 實體代表業務對(duì)象,例如貨物物品,其狀态随時間而變化。這(zhè)就是爲什麼(me)實體經(jīng)常被表示爲一個快照列表,即曆史,最新的快照是當前狀态。

在實踐中,我們經(jīng)常會看到手動輸入或導入的數據。例如,通過(guò)電子郵件作爲 CSV 文件或業務代碼的文本描述發(fā)送的預測數據。

來自其他團隊的數據被整合爲外部數據。當使用來自其他管理良好(hǎo)的團隊的數據産品時,這(zhè)種(zhǒng)集成(chéng)可能(néng)會以非常輕量級的方式實現。在從遺留系統導入數據的情況下,外部區域充當反腐敗層 .

發(fā)布的數據産品是通過(guò)聚合事(shì)件、實體、手冊和外部數據的子集而得出的。

攝取

領域團隊如何將(jiāng)他們的運營數據引入數據平台?根據領域驅動設計原則設計的軟件系統包含作爲可變實體/聚合和不可變領域事(shì)件的數據。

領域事(shì)件非常适合被攝取到數據平台中,因爲它們代表了相關的業務事(shì)實。如果有一個消息傳遞系統,則可以通過(guò)附加一個額外的消息消費者將(jiāng)域事(shì)件轉發(fā)到數據平台。數據可以實時采集、處理并轉發(fā)到數據平台。通過(guò)這(zhè)種(zhǒng)流式攝取,數據在到達時以小批量發(fā)送,因此可立即用于分析。由于領域事(shì)件已經(jīng)被很好(hǎo)地定義,除了 PII 數據的重複數據删除和匿名化之外,在清理和預處理方面(miàn)幾乎沒(méi)有什麼(me)可做的。有時,還(hái)建議定義和攝取包含僅與分析用例相關的信息的内部分析事(shì)件,這(zhè)樣就不必修改域事(shì)件。
流式攝取示例:Kafka Connect、Kafka Streams、AWS Lambda

許多業務對(duì)象作爲實體和聚合保存在 SQL 或 NoSQL 數據庫中。它們的狀态會随着時間而變化,并且最新的狀态隻保存在數據庫中。具有狀态的實體的有力候選者是文章價格客戶數據裝運狀态。對(duì)于分析用例,通常需要同時擁有最新狀态和一段時間内的狀态曆史。有幾種(zhǒng)攝取實體的方法。一種(zhǒng)方法是生成(chéng)并發(fā)布onCreate/onUpdate/onDelete 事(shì)件每次更改實體時都(dōu)使用當前狀态,例如通過(guò)添加 方面(miàn) 實體監聽器 . 然後(hòu)可以使用流式攝取來攝取上述數據。當更改操作軟件不可行時,可以使用更改數據捕獲 (CDC)直接監聽數據庫更改并將(jiāng)其流式傳輸到數據平台。
CDC 流的示例:Debezium 

最後(hòu),可以設置將(jiāng)數據導出到文件并將(jiāng)其加載到平台中的傳統預定ELT 或 ETL 作業,其缺點是沒(méi)有實時數據,在導出之間沒(méi)有所有階段更改,并且需要整合導出的數據再次。但是,對(duì)于大型機等遺留系統來說,它們是一個可行的選擇。

清潔數據

幹淨的數據是有效數據分析的基礎。使用數據網格,域團隊負責執行數據清理。他們了解自己的領域,并且可以确定需要處理其領域數據的原因和方式。

攝取到數據平台中的數據通常以其原始的原始和非結構化格式導入。使用列式數據庫時,這(zhè)可能(néng)是每個包含 CLOB 的事(shì)件的行事(shì)件負載的字段,可能(néng)是 JSON 格式。現在可以對(duì)其進(jìn)行預處理以獲取幹淨的數據:

  • 結構化:將(jiāng)非結構化和半結構化數據轉換爲分析數據模型,例如,通過(guò)將(jiāng) JSON 字段提取到列中。
  • 緩解結構變化:當數據結構發(fā)生變化時,緩解它們,例如,通過(guò)用合理的默認值填充空值。
  • 重複數據删除:由于大多數分析存儲系統都(dōu)是僅追加的,因此無法更新實體和事(shì)件。删除所有重複條目。
  • 完整性:确保數據包含約定的時間段,即使在攝取期間存在技術問題。
  • 修複異常值:識别并糾正可能(néng)因錯誤而出現的無效數據。

從實現的角度來看,這(zhè)些預處理步驟可以實現爲投影原始數據的簡單 SQL 視圖。查詢可以通過(guò) 公用表表達式 來組織(CTE)并且可以通過(guò)用戶定義的功能(néng) 進(jìn)行增強(UDF),例如,用于 JSON 處理。作爲替代方案,清理步驟可以實現爲對(duì)主題進(jìn)行操作的 lambda 函數。可以使用dbt 等框架構建更複雜的管道(dào)或 Apache Beam 它提供了高級編程模型,但也需要掌握更多技能(néng)。

分析

爲了獲得洞察力,領域團隊查詢、處理和聚合他們的分析數據以及來自其他領域的相關數據産品。

SQL是大多數分析查詢的基礎。它提供了強大的功能(néng)來連接和調查數據。數據平台應該高效地執行連接操作,即使對(duì)于大型數據集也是如此。聚合用于對(duì)數據進(jìn)行分組,窗口函數有助于跨多行執行計算。筆記本有助于建立和記錄探索性發(fā)現。
示例:Jupyter 筆記本、Presto

人類在視覺上感知數據、趨勢和異常時,會更容易理解它們。有許多出色的數據可視化工具可以構建漂亮的圖表、關鍵績效指标概覽、儀表闆和報告。它們提供了一個易于使用的 UI 來向(xiàng)下鑽取、過(guò)濾和聚合數據。
示例:Looker、Tableau、元數據庫、Redash

對(duì)于更高級的見解,可以應用數據科學(xué)和機器學(xué)習方法。這(zhè)些支持相關性分析、預測模型和其他高級用例。需要特殊的方法、統計和技術技能(néng)。
示例:scikit-learn、PyTorch、TensorFlow

數據平台

自助數據平台可能(néng)因每個組織而異。數據網格是一個新領域,供應商開(kāi)始在其現有産品中添加數據網格功能(néng)。

從所需的能(néng)力來看,您可以區分分析能(néng)力和數據産品能(néng)力: 分析能(néng)力使領域團隊能(néng)夠構建分析數據模型并爲數據驅動的決策執行分析。數據平台需要以自助服務的形式攝取、存儲、查詢和可視化數據的功能(néng)。典型的數據倉庫和數據湖解決方案,無論是内部部署還(hái)是雲提供商,都(dōu)已經(jīng)存在。主要區别在于每個領域團隊都(dōu)有自己的隔離區域。

更高級的數據網格數據平台還(hái)提供了額外的與領域無關的數據産品功能(néng) 用于創建、監控、發(fā)現和訪問數據産品。自助數據平台應該支持領域團隊,以便他們可以快速構建數據産品并在其隔離區域的生産中運行它。該平台應該支持領域團隊發(fā)布他們的數據産品,以便其他團隊可以發(fā)現它們。該發(fā)現需要所有去中心化數據産品的中心入口點。數據目錄可以通過(guò)不同的方式實現:作爲 wiki、git 存儲庫,或者甚至已經(jīng)有供應商針對(duì)基于雲的數據目錄的解決方案,例如 Select Star、Google 數據目錄或 AWS Glue 數據目錄。然而,數據産品的實際使用情況,需要域團隊訪問、集成(chéng)和查詢其他域的數據産品。該平台應支持、監控和記錄數據産品的跨域訪問和使用。

更高級的數據平台支持策略自動化。這(zhè)意味着,與其強制域團隊手動确保不違反全局策略,不如通過(guò)平台自動執行策略。例如,所有數據産品在數據目錄中具有相同的元數據結構,或者 PII 數據在數據攝取期間被自動删除。

有效地組合來自多個域的數據産品,即在幾秒鍾内進(jìn)行大型跨域連接操作,确保開(kāi)發(fā)人員的接受度和幸福感。這(zhè)就是爲什麼(me)查詢引擎對(duì)數據平台的架構影響很大的原因. 具有單一查詢語言并支持分離區域的共享平台是一個很好(hǎo)的開(kāi)始方式,因爲一切都(dōu)是高度集成(chéng)的。這(zhè)可能(néng)是 Google BigQuery,其中包含可通過(guò) Google 數據目錄發(fā)現的多個項目中的表。在更加去中心化和分布式的數據網格中,像 Presto 這(zhè)樣的分布式查詢引擎仍然可以在不導入數據的情況下執行跨域連接,但它們有其自身的局限性,例如,有限的下推要求需要傳輸所有底層列數據。

賦能(néng)團隊

支持團隊在組織内傳播數據網格的想法。在開(kāi)始采用數據網格時,需要進(jìn)行大量的解釋工作,并且支持團隊可以充當數據網格的倡導者。他們幫助領域團隊成(chéng)爲數據網格的正式成(chéng)員。支持團隊由在數據分析、數據工程和自助數據平台方面(miàn)具有廣泛知識的專家組成(chéng)。

支持團隊的成(chéng)員在有限的時間跨度内(例如一個月)作爲 内部顧問臨時加入領域團隊,以了解團隊的需求,建立學(xué)習環境,提升團隊成(chéng)員的數據分析技能(néng),并指導他們如何使用自助數據平台。他們不會自己創建數據産品。

在他們的咨詢活動之間,他們分享學(xué)習材料,例如行走骨架、示例、最佳實踐、教程,甚至播客。

數據分析模闆分享、大數據管理平台最新動态、怎麼(me)基于大數據管理平台和低代碼平台開(kāi)發(fā)軟件等

大數據管理平台最新資訊

數據中台主要實現哪些功能(néng)?

數據中台是一種(zhǒng)技術平台,它支持用戶從數據源到數據應用的完整流程。它具有連接數據,整合數據,提供數據和分析數據等多種(zhǒng)功能(néng),可以幫助企業改善數據管理,提高數據價值,

數據中台是什麼(me)意思?

數據中台是指將(jiāng)數據抽取、存儲、轉換和展示等功能(néng)集成(chéng)到一個系統中,以實現對(duì)數據的有效管理和分析的一種(zhǒng)軟件系統。它是一種(zhǒng)用于數據挖掘和數據分析的工具,將(jiāng)數據從不同的

農業農村大數據有哪些應用?

随着科技的發(fā)展,大數據應用在農業農村可謂是注入了新的活力。農業農村大數據應用是指通過(guò)大數據技術,利用大數據計算分析,將(jiāng)農業農村信息數據和農業農村管理決策系統結合

立刻聯系

溝通數據網格架構-從工程角度看數據網格需求

溝通需求->确定需求->設計方案->合作簽約-實施交付

數據網格架構-從工程角度看數據網格推薦産品列表

數據網格架構-從工程角度看數據網格相關解決方案

×

歡迎訪問速優雲官網!

咨詢電話:17190186096

掃碼加顧問微信 -->

速優雲PerfCloud官方微信