第十六章:數據治理之數據架構:數據模型和數據流轉關系

本章我們說一下數據架構,說到數據架構,就很自然的想到企業架構、業務架構、軟件架構,因為個人并沒有對這些內容進行深入了解,所以這里不做比對是否有相似或者共通的地方,僅僅來說一下我理解的數據架構。

1、什么是架構

要說數據架構,先說說什么是架構,怎么定義架構這個詞?

架構的本質是對復雜系統的解耦與重組。

“把一個整體(完成人類生存的所有工作)切分成不同的部分(分工),由不同角色來完成這些分工,并通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合為一個整體,并完成這個整體所需要的目標,這就是架構。”

提煉關鍵詞有三個:切分成不同的部分、不同部分之間相互溝通、完成整體所需的目標。

用日常生活中的"分工協作"思想來理解:當面對一個龐大整體(例如建造城市、設計操作系統)時,通過結構化拆分將整體分解為具有明確邊界的功能模塊(例如建筑中的地基/框架/管道,軟件中的前端/后端/數據庫),定義各模塊的職責范圍與交互規則,最終通過標準化接口實現模塊間的有機協作。

架構的價值體現在三個方面:

  • 效率提升:通過專業化分工提升各模塊的執行效率。
  • 風險隔離:單一模塊的變更不會導致系統性崩塌。
  • 持續演進:模塊化設計使局部創新成為可能。

2、什么是數據架構

理解了架構,我們再說說數據架構。在說什么是數據架構之前,先說下為什么要有數據架構。

現實里某個事物的龐大復雜,所以需要架構,同樣,企業內不同業務產生的數據,特別龐大、復雜,就需要數據架構。

數據是由業務產生。在業務的運行過程產生的數據,被記錄到數據庫不同的表中,此時的數據已經相當于被打散了再進行的記錄,不能直觀的反應出數據對應的業務了。數據架構就需要將已經被打散的數據,重新進行劃分、組合來反映業務情況。

通過數據反映業務,自然也就能夠數字化的衡量業務、評估業務、優化業務、發現新的業務機會。也就是讓業務變的可量化了。

這個過程中,需要做兩件事情,一件就是這個業務有多少個模塊,也就是給切分成不同的部分。

第二件,就是不用模塊之間的聯系,也就是讓不同部分之間相互溝通。

使用數據領域的術語的話,第一件事就是確定數據模型。第二件事就是明確數據流轉。

所有,個人定義什么是數據架構?數據架構就是數據模型以及數據流轉關系

3、數據架構設計需要的理論知識

要設計一個好的數據架構,需要兩方面的理論知識。

一方面是對于業務的理解,另一方面就是數據建模理論的知識了。

  • 對于業務的理解:

    對于業務的理解,在維度業務篇【業務:最熟悉的“陌生人”】中已經進行了介紹。里面詳細的介紹了業務的宏觀上的、和微觀上的理解。詳細的信息可以再回過頭去看一看。

  • 數據建模理論的知識:

    數據建模的理論知識,就有是一個比較大的領域了。這方面的知識也完全不是一兩句話能夠說清楚的。

    不過,推薦一本相關書籍《Star Schema 完全參考手冊》,當然,數據倉庫建模相關的書很多,個人只參考過這個,覺得很好

4、數據架構的目的

在第一節【什么是架構】中,我們提煉了架構的第三個關鍵詞是“完成整體所需的目標”。

那么數據架構的目的是什么?

數據架構的目的是讓數據中臺加工好的數據,能夠更加高效、順暢的使用。

如果架構設置的不合理,數據能不能用,答案一定是可以的。數據都在,多關聯幾次,增加一些邏輯,可能最終結果也能實現。

如果架構合理那,就不需要復雜的關聯,可以快速的獲取到需要的數據,節省資源,提升效率,讓數據的運轉更加高效、順暢。

而且,不合理的架構,在效率提升、風險隔離、持續演進,這些好架構能夠獲得的優點,也都不存在了。

5、數據模型設計--如何有效切分

業務本身是復雜的,如何對這個復雜的業務進行切分,其實就是一個數據模型設計的過程,也就是數據建模的過程。

之前在五大維度【業務篇】中介紹了建模的四個步驟,第一步就是:確定業務流。

這個業務流切分最好做到,高內聚,低耦合

高內聚的目的就是為了專業化,這樣子業務域的運作效率就高,松耦合的目的是子業務域之間的溝通成本最好低一點,這樣整體的運作效率就越高。

至于,如何做到“高內聚,低耦合”,就需要基于對業務的了解,不同的人有不同的劃分形式了。

6、數據流轉關系--如何有效流轉

切分只是完成了數據架構的第一步,切分后還需要確保切分后的各個部分能夠高效的溝通,這依賴數據流的合理設計,數據流可以用于描述不同層級模型的映射關系,無論是主題域、還是業務環節。 體現了數據在流程和IT系統上流動的全景視圖,其至少需要達成以下目標:

1、明確數據實體在哪個源頭產生。這個確定數據在哪個源頭,我們在【數據源】模塊介紹的時候,也說過。 2、數據實體出現在業務流的哪個環節 3、數據實體出現在哪個流轉系統

在模型層面,如果想讓數據有效流轉,還有一點比較關鍵就是粒度的選擇,確定好不同劃分的部門的粒度,才能確保數據的順暢關聯流動。

7、數據架構和業務需求的先后關系

上面說了那么多數據架構的好處,但是回到實際中,馬上會讓你有一種“理想很豐滿,現實很骨感”的感覺。

我們理想的狀態是,對業務數據進行一個完整的數據架構設計,模型設計完整合理,數據流轉方便高效,實際上這里面有兩個變量。

  • 第一個變量:業務的變化

    假如我們做好了數據架構,先不說是一個完整的數據架構還是局部的。此時業務大調整。原本的業務數據庫里面的數據記錄邏輯都調整了。這時候,架構怎么辦?再調整架構。業務再變那?這就變成一個永遠追逐的過程了。

    應對這個變量沒有什么好辦法。只能說數據架構適用于業務相對穩定,系統不會有大調整的公司。如果是新興公司,就不要提穩定架構了。

  • 第二個變量:需求的先后

    拋開第一點變量,假設我們業務穩定了,就可以完全做一個全局的數據架構了嗎?

    這時候就又有一個需求先后的變量,或者說投入產出的問題。

    建立完整的全局數據架構一定是耗時、耗力的。這么大的消耗暫時沒有需求,而且也不明確什么時候能有需求。而完全按照需求來一個,做一個那?那么勢必會將模型做的比較零散。

    應對這個問題,個人認為就是先將核心的業務進行完整建模,邊緣的業務隨著需求來不斷的增加。這個過程需要架構足夠強壯,也需要建模發布有完善的審核流程。

8、五大維度說明

  • 組織:

    組織需要注意的是,一個領域的數據架構,需要有一個領域的審核,確定新的數據模型能夠合理。這個角色一般也是數據BP來負責。

  • 政策:

    政策主要是需要讓業務部門能夠配合數據中臺的人進行業務的了解和梳理。明確業務流程,和表對應關系等等信息。為架構設計提供業務信息。

  • 工具:

    搭建架構的過程就是一個建模的過程。雖然市面上又各種建模工具,但是個人認為沒有紙筆+Excel好用。

    可能也是我在做數倉建模的時候,主要就是按照這種形式來的。沒有辦法想象出來一個更好的工具了,看這就是局限性。沒有辦法知道,自己不知道的東西。

    數據建模的過程就是業務信息梳理的過程,梳理業務之后的四步建模:條線劃分,粒度選擇、維度確認、事實確認。以及不同模型間的數據流轉,等等信息都以個人經驗,線下文檔等形式保留。數據庫表都是最終產物,中間的過程沒有記錄,一方面沒有辦法做知識沉淀,知識誰人走,很容易變成從頭再來。另一方面,沒辦法有效升級迭代。 所以,需要有一個系統將這些數據中臺的潛在的巨大信息、知識能夠給保留、記錄出來。供后續的學習,以及架構升級做參考。

  • 業務:

    “數據是業務的映射”。將已經被打散的數據,重新映射會業務,首先需要知道,你的業務是什么樣子,所以在數據架構,這個模塊,業務的理解是尤為重要的。沒有深入的業務理解,自然也就不會有好的模塊切分。沒有好的模塊切分,模塊間的流轉關系也就不會自然順暢了。

  • 數據:?在架構領域,就不像前兩個模塊【數據源】【數據目錄】一樣完全不需要了解數據。這里就需要對數據進行探查,關聯了。因為在數據流轉過程中,需要能夠明確流轉是的關聯關系是否合理。

現在開始漸漸接觸數據本身了,后續模塊會更加深入的去研究數據本身。

9、總結

數據架構,有一個對應的崗位名稱是數據架構師。這個崗位可大可小。說他大是因為,確實一個好的架構很影響數據的使用體驗。說他小是因為,正因為數據架構是需要深入業務、了解業務的,深入一線的工作,了解細節。

一個合理的架構,就是一次被打散的數據的重生,直接從數據中高效、順暢地獲取業務信息。通過數據反應業務,通過數字衡量業務,讓業務變的可量化了。

數據架構的本質到底是什么 by 傅一平

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82314.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Day126 | 靈神 | 二叉樹 | 層數最深的葉子結點的和

Day126 | 靈神 | 二叉樹 | 層數最深的葉子結點的和 1302.層數最深的葉子結點的和 1302. 層數最深葉子節點的和 - 力扣(LeetCode) 思路: 這道題用層序遍歷的思路比較好想,就把每層的都算一下,然后返回最后一層的和就…

PCIE 4.0 vs PCIE 5.0固態硬盤——區別、科普與選購場景全解析

隨著數字內容和高性能計算需求的爆發,固態硬盤(SSD)已成為PC、游戲主機和工作站不可或缺的核心硬件。面對市面上層出不窮的新一代SSD產品,大家最常見的一個疑惑:**PCIe 4.0和PCIe 5.0固態硬盤,到底有啥區別…

vue pinia 獨立維護,倉庫統一導出

它允許您跨組件/頁面共享狀態 持久化 安裝依賴pnpm i pinia-plugin-persistedstate 將插件添加到 pinia 實例上 pinia獨立維護 統一導出 import { createPinia } from pinia import piniaPluginPersistedstate from pinia-plugin-persistedstateconst pinia creat…

Dify源碼學習

文章目錄 1 大模型基本原理1.1 model_context_tokens、max_tokens和prompt_tokens1.1.1 三者之間的關系1.1.2 總結對比 2 Dify源代碼2.0 前后端代碼跑起來【0】準備開發環境【1】下載代碼【2】運行后端(1)Start the docker-compose stack(2&a…

連接表、視圖和存儲過程

1. 視圖 1.1. 視圖的概念 視圖(View):虛擬表,本身不存儲數據,而是封裝了一個 SQL 查詢的結果集。 用途: 只顯示部分數據,提高數據訪問的安全性。簡化復雜查詢,提高復用性和可維護…

微信小程序中,解決lottie動畫在真機不顯示的問題

api部分 export function getRainInfo() {return onlineRequest({url: /ball/recruit/getRainInfo,method: get}); }data存儲json數據 data:{rainJson:{} }onLoad方法獲取json數據 onLoad(options) {let that thisgetRainInfo().then((res)>{that.setData({r…

從加密到信任|密碼重塑車路云一體化安全生態

目錄 一、密碼技術的核心支撐 二、典型應用案例 三、未來發展方向 總結 車路云系統涉及海量實時數據交互,包括車輛位置、傳感器信息、用戶身份等敏感數據。其安全風險呈現三大特征: 開放環境威脅:V2X(車與萬物互聯&#xff0…

光譜相機在地質勘測中的應用

一、?礦物識別與蝕變帶分析? ?光譜特征捕捉? 通過可見光至近紅外(400-1000nm)的高光譜分辨率(可達3.5nm),精確識別礦物的“光譜指紋”。例如: ?銅礦?:在400-500nm波段反射率顯著低于圍…

理論篇三:如何編寫自定義的Webpack Loader或Plugin插件

在 Webpack 中,自定義 Loader 和 Plugin 是擴展構建能力的關鍵方式。以下是它們的實現方法和核心邏輯,通過代碼示例和步驟拆解幫助你快速掌握。 一、自定義 Loader 1. Loader 的本質 作用:將非 JS 文件轉換為 Webpack 能處理的模塊。特點:純函數,接收源文件內容,返回處理…

【算法】力扣體系分類

第一章 算法基礎題型 1.1 排序算法題 1.1.1 冒泡排序相關題 冒泡排序是一種簡單的排序算法,它重復地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換&#xff0c…

C11 日期時間處理案例

文章目錄 顯示當前日期時間得到當前日期時間的17位數字形式(YYYYmmddHHMMSSsss)從日期時間字符串得到time_t 類型時間戳從時期時間字符串得到毫秒單位的時間戳得到當前日期時間以毫秒為單位的時間戳一個綜合案例 所有例子在VS2019上編譯運行通過 顯示當前日期時間 #include &…

Python 訓練營打卡 Day 34

GPU訓練及類的call方法 一、GPU訓練 與day33采用的CPU訓練不同,今天試著讓模型在GPU上訓練,引入import time比較兩者在運行時間上的差異 import torch # 設置GPU設備 device torch.device("cuda:0" if torch.cuda.is_available() else &qu…

Ubuntu22.04 系統安裝Docker教程

1.更新系統軟件包 #確保您的系統軟件包是最新的。這有助于避免安裝過程中可能遇到的問題 sudo apt update sudo apt upgrade -y 2.安裝必要的依賴 sudo apt install apt-transport-https ca-certificates curl software-properties-common -y 3.替換軟件源 原來/etc/apt/s…

深入解析前端 JSBridge:現代混合開發的通信基石與架構藝術

引言:被低估的通信革命 在移動互聯網爆發式增長的十年間,Hybrid App(混合應用)始終占據著不可替代的地位。作為連接 Web 與 Native 的神經中樞,JSBridge 的設計質量直接決定了應用的性能上限與開發效率。本文將突破傳…

ES 面試題系列「三」

1、在設計 Elasticsearch 索引時,如何考慮數據的建模和映射? 需要根據業務需求和數據特點來確定索引的結構。首先要分析數據的類型,對于結構化數據,如數字、日期等,要明確其數據格式和范圍,選擇合適的字段…

HTML5快速入門-常用標簽及其屬性(三)

HTML5快速入門-常用標簽及其屬性(三) 文章目錄 HTML5快速入門-常用標簽及其屬性(三)音視頻標簽&#x1f3a7; <audio> 標簽 — 插入音頻使用 <source> 提供多格式備選&#xff08;提高兼容性&#xff09;&#x1f3a5; <video> 標簽 — 插入視頻&#x1f3b5…

Qt文件:XML文件

XML文件 1. XML文件結構1.1 基本結構1.2 XML 格式規則1.3 XML vs HTML 2. XML文件操作2.1 DOM 方式&#xff08;QDomDocument&#xff09;讀取 XML寫入XML 2.2 SAX 方式&#xff08;QXmlStreamReader/QXmlStreamWriter&#xff09;讀取XML寫入XML 2.3 對比分析 3. 使用場景3.1 …

day24Node-node的Web框架Express

1. Express 基礎 1.1 什么是Express node的web框架有Express 和 Koa。常用Express 。 Express 是一個基于 Node.js 的快速、極簡的 Web 應用框架,用于構建 服務器端應用(如網站后端、RESTful API 等)。它是 Node.js 生態中最流行的框架之一,以輕量、靈活和易用著稱。 …

uniapp實現的簡約美觀的票據、車票、飛機票模板

采用 uniapp 實現的一款簡約美觀的票據模板&#xff0c;純CSS、HTML實現&#xff0c;用戶完全可根據自身需求進行更改、擴展&#xff1b;支持web、H5、微信小程序&#xff08;其他小程序請自行測試&#xff09;&#xff0c; 可到插件市場下載嘗試&#xff1a; https://ext.dclo…

esp32+IDF V5.1.1版本編譯freertos報錯

error: portTICK_RATE_MS undeclared (first use in this function); did you mean portTICK_PERIOD_MS 解決方法: 使用命令 idf.py menuconfig 打開配置界面配置freeRtos 使能configENABLE_BACKWARD_COMPATIBLITY