終于有人把數(shù)據(jù)架構講明白了
01數(shù)據(jù)架構的起源
追根溯源是一個數(shù)據(jù)人的底層思維邏輯,因此,我們先說一說數(shù)據(jù)架構的起源(來源也行,一個意思)。
其實,我們現(xiàn)在IT行業(yè)經常說的軟件架構、系統(tǒng)架構、XX架構的核心思想都是從建筑行業(yè)學來的,架構的英文單詞“Architecture”其本身就是“建筑學、建筑物、結構構造”的意思。
在DAMA-DMBOK2中指出“數(shù)據(jù)架構”是“企業(yè)架構”的一個重要的組成部分。
而提到企業(yè)架構,它是起源于IBM公司系統(tǒng)雜志的一篇文章“A framework for information systems architecture”,這篇文章的作者John Zachman,是業(yè)內公認的企業(yè)架構理論的首創(chuàng)者,而他提出企業(yè)架構的理論就是我們熟知的“Zachman框架”!
簡單理解,建筑學就是研究如何將一堆磚頭、水泥、鋼筋等建筑材料按照一定的結構搭建起來,形成滿足人們生活、工作所需的各式建筑物。實際上,Zachman老先生的企業(yè)架構思想也是源自于“建筑學”,其本質的原理都是從現(xiàn)狀向目標遷移的過程。因此,企業(yè)架構包含了當前架構、目標架構、遷移計劃和IT路線圖。
關于企業(yè)架構,除了Zachman框架之外,還有聯(lián)邦企業(yè)架構框架(FEA)、國防部架構框架 (DODAF)、UDPM、UAF等,當然還有非常流行的——Togaf框架。每個企業(yè)架構框架的管理原則都涉及推動有關業(yè)務戰(zhàn)略及其如何通過 IT 實現(xiàn)未來目標。通常,企業(yè)架構是由四個基本的相互關聯(lián)的專業(yè)領域構成:
- 業(yè)務架構:定義了組織的業(yè)務戰(zhàn)略、企業(yè)治理、組織機構和關鍵業(yè)務流程;
- 應用架構:為要部署的應用系統(tǒng)之間的交互以及它們與組織核心業(yè)務流程的關系提供藍圖,并為集成業(yè)務功能公開的服務接口;
- 數(shù)據(jù)架構:描述了組織的邏輯和物理數(shù)據(jù)資產以及相關數(shù)據(jù)管理資源的結構;
- 技術架構:描述了支持部署核心任務關鍵型應用程序所需的硬件、軟件和網絡基礎設施;
02數(shù)據(jù)架構的演進
作為企業(yè)架構的組成,數(shù)據(jù)架構在不同時代,其形態(tài)也是不一樣,它是隨著信息技術的不斷發(fā)展而向前演進的。
1. 單體應用架構時代
在信息化早期(上世紀80年代),企業(yè)信息化初步建設,信息系統(tǒng)以單體應用為主,例如:早期的財務軟件、OA辦公軟件等。這個時期還沒有數(shù)據(jù)管理的概念還在萌芽期,數(shù)據(jù)架構比較簡單,主要就是數(shù)據(jù)模型、數(shù)據(jù)庫設計,滿足系統(tǒng)業(yè)務使用即可。
2. 數(shù)據(jù)倉庫時代
隨著信息系統(tǒng)使用,系統(tǒng)的數(shù)據(jù)也逐步積累起來。這時候,人們發(fā)現(xiàn)數(shù)據(jù)對企業(yè)是有價值的,但是割裂的系統(tǒng)導致了大量信息孤島的產生,嚴重影響了企業(yè)對數(shù)據(jù)的利用。于是,一種面向主題的、集成的、用于數(shù)據(jù)分析的全新架構誕生了,它就是數(shù)據(jù)倉庫。
與傳統(tǒng)關系數(shù)據(jù)庫不同,數(shù)據(jù)倉庫系統(tǒng)的主要應用是OLAP(On-Line Analytical Processing),支持復雜的分析操作,側重決策支持,并且提供直觀易懂的查詢結果。這個階段,數(shù)據(jù)架構不僅關注數(shù)據(jù)模型,還關注數(shù)據(jù)的分布和流向。
3. 大數(shù)據(jù)時代
大數(shù)據(jù)技術的興起,讓企業(yè)能夠更加靈活高效地使用自己的數(shù)據(jù),從數(shù)據(jù)中提取出更多重要的價值。與此同時,在大數(shù)據(jù)應用需求的驅動下,各類大數(shù)據(jù)架構也在不斷發(fā)展和演進著,從批處理到流處理,從大集中到分布式,從批流一體到全量實時。
1)傳統(tǒng)大數(shù)據(jù)架構
之所以叫傳統(tǒng)大數(shù)據(jù)架構,是因為其解決的是數(shù)據(jù)倉庫、BI應用的性能瓶頸問題,數(shù)據(jù)分析業(yè)務沒有發(fā)生任何變化,主要是技術上的升級。傳統(tǒng)大數(shù)據(jù)架構從結構上與數(shù)據(jù)倉庫基本一致,還是分為三個部分:數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)輸出與展示。
▲圖:傳統(tǒng)大數(shù)據(jù)架構,來源:51CTO 栗子哥《從傳統(tǒng)大數(shù)據(jù)架構到Lambda架構到Kappa架構》
相比傳統(tǒng)數(shù)據(jù)倉庫,傳統(tǒng)大數(shù)據(jù)架構是基于hadoop的各類組件構建的,例如:數(shù)據(jù)存儲用HDFS,數(shù)據(jù)采集用Sqoop、Flume、Kafka等,數(shù)據(jù)處理用MapReduce、Hive、Spark等,大數(shù)據(jù)技術的應用使得數(shù)據(jù)處理的性能得到了巨大提升。
2)Lambda架構
Lambda是大數(shù)據(jù)架構中舉足輕重的一個大數(shù)據(jù)架構,Lambda的數(shù)據(jù)通道分為兩條分支:實時流和離線。實時流依照流式架構,保障了其實時性,而離線則以批處理方式為主,保障了最終一致性。Lambda 架構總共由三層系統(tǒng)組成:批處理層(Batch Layer),速度處理層(Speed Layer),以及用于響應查詢的服務層(Serving Layer)。
▲圖:Lambda架構,來源:51CTO 栗子哥《從傳統(tǒng)大數(shù)據(jù)架構到Lambda架構到Kappa架構》
Lambda 架構靈活,可以適用多種應用場景,但在也存在著一些不足,實時層和離線層模塊冗余、維護復雜。
3)Kappa架構
Kappa架構在Lambda 的基礎上進行了優(yōu)化,將實時和流部分進行了合并,將數(shù)據(jù)通道以消息隊列進行替代。Kappa架構解決了Lambda 架構需要維護兩套分別跑在批處理和實時計算系統(tǒng)上面的代碼的問題,全程用流系統(tǒng)處理全量數(shù)據(jù)。
▲圖:Kappa架構,來源:51CTO 栗子哥《從傳統(tǒng)大數(shù)據(jù)架構到Lambda架構到Kappa架構》
大數(shù)據(jù)時代,我們以上介紹的幾種大數(shù)據(jù)架構,雖然名字中都含有“數(shù)據(jù)架構”四個字,但是和我們今天要講的數(shù)據(jù)架構還不完全是一回事,大數(shù)據(jù)架構準確來說,應該叫大數(shù)據(jù)技術架構,而數(shù)據(jù)架構是用來承接業(yè)務的,技術是其實現(xiàn)手段。
技術架構會影響數(shù)據(jù)架構,但不論技術如何變遷,數(shù)據(jù)架構的本質并沒有變,它始終都是數(shù)據(jù)模型、數(shù)據(jù)流向、數(shù)據(jù)分布和數(shù)據(jù)處理方式的綜合體現(xiàn)。
03數(shù)據(jù)管理中的數(shù)據(jù)架構
關于數(shù)據(jù)架構的定義其實在業(yè)內并沒有形成統(tǒng)一的認知,不同人對于數(shù)據(jù)架構的理解或許都是不同的,這一點我們其實可以從幾個權威的數(shù)據(jù)管理體系中窺見一二。
1. DAMA-DMBOK2中的數(shù)據(jù)架構
在DAMA的數(shù)據(jù)管理知識體系指南(DMBOK2)中對數(shù)據(jù)架構的定義是:“識別企業(yè)的數(shù)據(jù)需求(無論數(shù)據(jù)結構如何),并設計和維護總藍圖以滿足這些需求。使用總藍圖來指導數(shù)據(jù)集成、控制數(shù)據(jù)資產,并使數(shù)據(jù)投資與業(yè)務戰(zhàn)略保持一致”。其主要包含兩個部分:企業(yè)數(shù)據(jù)模型、數(shù)據(jù)流設計、數(shù)據(jù)價值鏈、實施路線圖。
圖:Dama數(shù)據(jù)架構,來源《DAMA數(shù)據(jù)管理知識體系指南2.0》
- 企業(yè)數(shù)據(jù)模型:企業(yè)數(shù)據(jù)模型是一個整體的、企業(yè)級的、獨立實施的概念或邏輯數(shù)據(jù)模型,為企業(yè)提供通用的、一致的數(shù)據(jù)視圖。企業(yè)數(shù)據(jù)模型包括數(shù)據(jù)實體(如業(yè)務概念),數(shù)據(jù)實體間的關系、關鍵業(yè)務規(guī)則和一些關鍵屬性,它為所有數(shù)據(jù)和數(shù)據(jù)相關的項目奠定了基礎。
- 數(shù)據(jù)流設計:定義數(shù)據(jù)庫、應用、平臺和網絡(組件)之間的需求和主藍圖。這些數(shù)據(jù)流展示了數(shù)據(jù)在業(yè)務流程、不同存儲位置、業(yè)務角色和技術組件間的流動。
- 數(shù)據(jù)價值鏈:DMBOK2中沒有明確交代,筆者理解就是基于企業(yè)核心業(yè)務價值鏈的數(shù)據(jù)分布和流向,與數(shù)據(jù)流設計是一致的。
- 實施路線圖:描述了架構3~5年的發(fā)展路徑。考慮到實際情況和技術評估,路線圖和業(yè)務需求共同將目標架構變?yōu)楝F(xiàn)實。企業(yè)架構實施路線圖包括:高層次里程碑事件、所需資源、成本評估、業(yè)務能力工作流劃分。
2. DCMM中的數(shù)據(jù)架構
在國標《數(shù)據(jù)管理能力成熟度評估模型(DCMM)》中,數(shù)據(jù)架構是DCMM的8大領域之一,它對數(shù)據(jù)架構的定義是:“通過組織數(shù)據(jù)模型定義數(shù)據(jù)需求,指導數(shù)據(jù)資產的分布控制和整合,部署數(shù)據(jù)的共享和應用環(huán)境,以及元數(shù)據(jù)管理的規(guī)范”。
在DCMM中,數(shù)據(jù)架構包含了數(shù)據(jù)模型、數(shù)據(jù)分布、數(shù)據(jù)集成與共享、元數(shù)據(jù)管理四個部分內容。
- 數(shù)據(jù)模型:使用結構化的語言將收集到的組織業(yè)務經營、管理和決策中使用的數(shù)據(jù)需求進行綜合分析,按照模型設計規(guī)范將需求重新組織。數(shù)據(jù)模型包括:主題域模型、概念模型、邏輯模型和物理模型。
- 數(shù)據(jù)分布:針對組織級數(shù)據(jù)模型中的數(shù)據(jù)定義,明確數(shù)據(jù)在系統(tǒng)、組織和流程等方面的分布關系,定義數(shù)據(jù)類型,明確權威數(shù)據(jù)源,為數(shù)據(jù)相關工作提供參考和規(guī)范。
- 數(shù)據(jù)集成共享:建立組織內各應用系統(tǒng)、各部門之間的集成共享機制,通過組織內部數(shù)據(jù)集成共享相關制度、標準、技術等方面的管理,促進組織內部數(shù)據(jù)的互聯(lián)互通。
- 元數(shù)據(jù)管理:主要是關于元數(shù)據(jù)的創(chuàng)建、存儲、整合與控制等一整套流程的集合。
3. 華為的數(shù)據(jù)之道
在《華為數(shù)據(jù)之道》一書以及華為很多公開材料中,并沒有明確給出數(shù)據(jù)架構,而是給出了信息架構的概念:“是指以結構化的方式描述在業(yè)務運作和管理決策中所需要的各類信息及其關系的一套整體組件規(guī)范?!?/span>
從定義上看,華為給出的信息架構和我們所說的數(shù)據(jù)架構是十分相識的,它包括了數(shù)據(jù)資產目錄、數(shù)據(jù)標準、數(shù)據(jù)模型、數(shù)據(jù)分布四個部分。
▲圖:信息架構,來源《華為數(shù)據(jù)治理之旅》
- 數(shù)據(jù)資產目錄:通過分層結構的表達,實現(xiàn)對數(shù)據(jù)的分類和定義,建立數(shù)據(jù)模型的輸入,形成完善的企業(yè)資產地圖,也在一定程度上為企業(yè)數(shù)據(jù)治理、業(yè)務變革提供了指引?;跀?shù)據(jù)資產目錄可以識別數(shù)據(jù)管理責任,解決數(shù)據(jù)問題爭議,幫助企業(yè)更好地對業(yè)務變革進行規(guī)劃設計,避免重復建設。
- 數(shù)據(jù)標準:數(shù)據(jù)標準定義公司層面需共同遵守的屬性層數(shù)據(jù)含義和業(yè)務規(guī)則,是公司層面對某個數(shù)據(jù)的共同理解,這些理解一旦確定下來,就應作為企業(yè)層面的標準在企業(yè)內被共同遵守。
- 數(shù)據(jù)模型:是從數(shù)據(jù)視角對現(xiàn)實世界特征的模擬和抽象,根據(jù)業(yè)務需求抽取信息的主要特征,反映業(yè)務信息(對象)之間的關聯(lián)關系。
- 數(shù)據(jù)分布:定義了數(shù)據(jù)產生的源頭及在各流程和IT系統(tǒng)間的流動情況。
DAMA的DMBOK2、國標的DCMM、華為的數(shù)據(jù)之道是當下業(yè)界認可的三個主流據(jù)管理體系??梢钥吹?,在這三個體系中關于數(shù)據(jù)架構的定義和內容都不相同。那么,您認為的數(shù)據(jù)架構應該是什么?或者說,您認為以上三個數(shù)據(jù)管理系統(tǒng)中,哪個數(shù)據(jù)架構更合理、更符合企業(yè)管數(shù)、用數(shù)的?
接下來,我們聊聊數(shù)據(jù)架構的底層邏輯!
04數(shù)據(jù)架構的底層邏輯
在遙遠的原始社會,人類過著穴居野處的生活,為了適應自然,抵御猛獸,原始社會的人類會利用一些大樹或者直接在地上用樹枝樹葉搭建一些簡易的房子或柵欄。這個時候,人類建筑架構的思維模式已經開始萌芽。從原始部落的穴居野處、茅屋蓬蓽,到如今的鋼筋水泥、高樓林立,建筑架構的發(fā)展,本質是一部人類對居住環(huán)境的功能和性能不斷追求的發(fā)展史。
相比建筑業(yè),IT行業(yè)還是一個年輕的行業(yè),它的一些理論體系都是從傳統(tǒng)行業(yè)中引進而來的,包括我們今天聊的“架構”。架構思維的底層邏輯是將一個復雜的系統(tǒng),從多個維度分解為多個架構元素,并定義這些元素之間的接口和交互關系、集成機制。
按照“熵增定律”,架構的本質就是就是對系統(tǒng)進行有序化重構,不斷減少系統(tǒng)的“熵”,使系統(tǒng)不斷進化。而這里,所謂的“熵”就是構成軟件的相關架構元素:組件、結構、功能、流程、數(shù)據(jù)、接口等。
架構的本質是不斷減少系統(tǒng)的“熵”,數(shù)據(jù)架構也一樣。數(shù)據(jù)架構的底層邏輯具有一定的數(shù)據(jù)資源規(guī)劃的內涵,是對企業(yè)數(shù)據(jù)進行結構化、有序化治理,讓企業(yè)從數(shù)據(jù)孤島走向數(shù)據(jù)共享,讓企業(yè)數(shù)據(jù)能夠更好的被管理、流動和使用,充分釋放數(shù)據(jù)價值。
基于這一底層邏輯,我們就不難理解DAMA、DCMM和華為在數(shù)據(jù)架構定義和內容上,雖然有所差異,但本質是一樣的。
在DAMA的數(shù)據(jù)管理體系中,數(shù)據(jù)架構最核心的是數(shù)據(jù)模型和數(shù)據(jù)流,而數(shù)據(jù)架構的設計、數(shù)據(jù)主價值鏈,數(shù)據(jù)架構實施都是圍繞數(shù)據(jù)模型和數(shù)據(jù)流的梳理、設計和落地而展開的。
在DCMM體系中,數(shù)據(jù)架構除了數(shù)據(jù)模型和數(shù)據(jù)分布(數(shù)據(jù)流)還包含了數(shù)據(jù)集成共享和元數(shù)據(jù)管理,這兩個也數(shù)據(jù)管理中比較大的領域,放在數(shù)據(jù)架構中略顯突兀。但是,數(shù)據(jù)模型、數(shù)據(jù)分布是通過元數(shù)據(jù)落地的,而數(shù)據(jù)集成共享也是數(shù)據(jù)模型并且集成的過程也反映了一定的數(shù)據(jù)流向,因此DCMM的核心其實還是數(shù)據(jù)模型和數(shù)據(jù)流向。
在華為數(shù)據(jù)之道中,沒有提數(shù)據(jù)架構而是信息架構。如果我們基于“DIKW模型”,在理解了“數(shù)據(jù)-信息-知識-智慧”的基礎之上,其實更容易理解華為的信息架構。
在筆者看來,華為信息架構是對數(shù)據(jù)架構的進一步提煉,是在數(shù)據(jù)管理實踐的視角給出的定義。如果說,其他兩套體系的數(shù)據(jù)架構偏理論和技術,那華為給出的信息架構則偏實踐和業(yè)務,但其基礎的內容仍然沒變,還是數(shù)據(jù)模型和數(shù)據(jù)分布。
在企業(yè)的數(shù)據(jù)項目實踐中,數(shù)據(jù)架構連接了企業(yè)的數(shù)據(jù)管理現(xiàn)狀和未來要實現(xiàn)的目標,筆者認為不必糾結哪套體系的數(shù)據(jù)架構理論更嚴謹、邏輯更合理,而要將重點放在數(shù)據(jù)目標的實現(xiàn)上,“能抓住老鼠的那只貓就是好貓!”