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