?譯者 | 陳峻
審校 | 孫淑娟
不知您是否注意到,現(xiàn)代企業(yè)數(shù)據(jù)架構(gòu)的概念化設計,對于企業(yè)的數(shù)據(jù)掌控與“變現(xiàn)”能力,起著至關(guān)重要的作用。此處的現(xiàn)代企業(yè)架構(gòu)主要包括:微服務、云原生應用、事件驅(qū)動方案以及數(shù)據(jù)密集型解決方案等。
我們需要通過確定基礎架構(gòu)的安全性與性能要求,以實現(xiàn)各種工作負載在處理過程中的可擴展性和敏捷性。為此,您需要了解基本的數(shù)據(jù)模型、如何處理數(shù)據(jù)隱私的安全性、合規(guī)性、數(shù)據(jù)的體量及用戶需求等方面,是如何影響到數(shù)據(jù)架構(gòu)的設計決策的。
圖 1:數(shù)據(jù)架構(gòu)即企業(yè)架構(gòu)的基礎支柱
如圖1所示,數(shù)據(jù)驅(qū)動型企業(yè)往往設計和開發(fā)出一套完整的數(shù)據(jù)處理架構(gòu)。下面,我將和您討論各種適合于開發(fā)出滿足高效運行、準確可用、海量查詢等需求的企業(yè)數(shù)據(jù)架構(gòu)的基本要素。
1、多語言的持久性與數(shù)據(jù)庫即服務
最近的一項基于多種案例研究的數(shù)據(jù)架構(gòu)趨勢調(diào)查表明:現(xiàn)代企業(yè)需要通過多語言的持久性技術(shù),去集成現(xiàn)有架構(gòu)中的支持不同類型數(shù)據(jù)的存儲技術(shù),進而為橫跨不同類型的數(shù)據(jù)處理提供高性能的服務。如今,隨著云服務技術(shù)的普及,此類集成往往需要得到數(shù)據(jù)庫即服務(Database as a Service,DBaaS)的支持,并能夠從中獲得如下優(yōu)勢:
- 基于云的數(shù)據(jù)庫管理系統(tǒng)(例如:Amazon Aurora、Azure Cosmos DB以及Google Spanner)
- 高度擴展性
- 快速配置
- 云架構(gòu)中的增強安全性
- 適合大型企業(yè)設計
- 共享基礎設施
- 各種可用的監(jiān)控和性能調(diào)整工具
可見,這種基于多語言持久性的微服務架構(gòu),不但有助于開發(fā)出彈性、健壯和高性能的系統(tǒng),而且可以提供支持不同微服務的、不同類型的數(shù)據(jù)服務(參見圖 2)。
圖 2:使用多語言持久性的架構(gòu)示例
如圖2所示,企業(yè)可以利用微服務,在多語言持久性模型中,創(chuàng)建具有成本效益和敏捷的架構(gòu)。由于每個微服務都能夠處理不同體量和性能要求的數(shù)據(jù),因此基于此類數(shù)據(jù)的訪問要求,便可以選擇合適的數(shù)據(jù)庫,以滿足性能、可擴展性以及適合系統(tǒng)存儲的優(yōu)秀數(shù)據(jù)模型。
2、現(xiàn)代數(shù)據(jù)架構(gòu)中的數(shù)據(jù)建模
在傳統(tǒng)架構(gòu)開發(fā)中,數(shù)據(jù)建模并非一項簡單的任務。它需要從需求中導出數(shù)據(jù)特征元素,通過實體關(guān)系(Entity Relationship,ER)圖,描繪出實體之間的關(guān)系,并圍繞著數(shù)據(jù)元素,定義好數(shù)據(jù)的類型、約束以及檢驗等參數(shù)。因此,數(shù)據(jù)建模往往是根據(jù)各種需求,來定義數(shù)據(jù)定義語言(Data Definition Language,DDL)的腳本,在傳統(tǒng)的架構(gòu)中,作為一種跨越式(single-step)活動來完成的。
圖 3:現(xiàn)代企業(yè)數(shù)據(jù)的各個建模階段
如圖3所示,在現(xiàn)代企業(yè)的數(shù)據(jù)架構(gòu)中,數(shù)據(jù)建模通常被分為概念、邏輯和物理建模等多階段性的活動。在那些數(shù)據(jù)密集度高的數(shù)據(jù)驅(qū)動架構(gòu)中,數(shù)據(jù)建模往往是基礎性且關(guān)鍵性的步驟,當然,也是最為耗時的環(huán)節(jié)。在此類架構(gòu)開發(fā)中,數(shù)據(jù)建??梢员粍?chuàng)新式地分為三種不同的類型:
概念性數(shù)據(jù)模型(CDM)– 源自業(yè)務需求,可用于定義數(shù)據(jù)流中待處理的“內(nèi)容”。通常,CDM是由業(yè)務利益相關(guān)者(例如:顧問、業(yè)務所有者、應用程序分析師)和數(shù)據(jù)架構(gòu)師共同來定義的。
邏輯性數(shù)據(jù)模型(LDM)– 源自CDM,可用于深入研究實體之間的邏輯關(guān)系,并詳細說明實體的數(shù)據(jù)類型。由業(yè)務顧問和數(shù)據(jù)架構(gòu)師/工程師來定義,如何在數(shù)據(jù)流中處理數(shù)據(jù)。
物理性數(shù)據(jù)模型(PDM)— 基于LDM,通過定義數(shù)據(jù)藍圖,將其轉(zhuǎn)換為數(shù)據(jù)腳本,以便在實時環(huán)境中執(zhí)行。這是數(shù)據(jù)結(jié)構(gòu)的性能、事務性處理機制以及數(shù)據(jù)模型調(diào)優(yōu)的關(guān)鍵階段,通常由數(shù)據(jù)庫管理員或數(shù)據(jù)工程師來擔當。
3、數(shù)據(jù)智能
數(shù)據(jù)智能和數(shù)據(jù)分析是現(xiàn)代企業(yè)數(shù)據(jù)架構(gòu)中常見的技術(shù),可用于在NoSQL數(shù)據(jù)庫中,處理大數(shù)據(jù)以及數(shù)據(jù)密集型應用架構(gòu)。它往往會涉及到多種時下流行的技術(shù)解決方案。例如:使用云平臺,來解決敏捷性和可擴展性的需求;使用高級算法的AI/ML,來構(gòu)建數(shù)據(jù)處理的智能化以及使用大數(shù)據(jù)平臺,來處理數(shù)據(jù)的存儲和分析。
為了實現(xiàn)可視化分析,數(shù)據(jù)智能使用預測性智能,來對數(shù)據(jù)進行集中化處理。例如:在企業(yè)股票的趨勢分析場景中,AI/ML和深度學習模型,通過從各種來源讀取歷史數(shù)據(jù),其中涉及到數(shù)據(jù)的反饋,圖像、視頻流和音頻的提取與解釋以及數(shù)據(jù)處理結(jié)果的準備,并最終分析和預測出股票的走勢??梢哉f,數(shù)據(jù)智能的使用,有助于將數(shù)據(jù)更加直觀地解釋和呈現(xiàn)給包括業(yè)務和技術(shù)在內(nèi)的不同利益相關(guān)者角色。
當然,企業(yè)在開發(fā)數(shù)據(jù)智能解決方案時,也會經(jīng)常需要其數(shù)據(jù)庫系統(tǒng)具備自我管理的功能,以便數(shù)據(jù)庫能夠自行應對數(shù)據(jù)混亂等情況。業(yè)界稱之為“自治數(shù)據(jù)庫”。它也是將來的數(shù)據(jù)持久性系統(tǒng)的重要組成部分。
4、自治數(shù)據(jù)庫
作為IT應用的“大腦”,數(shù)據(jù)庫往往在應用的數(shù)據(jù)處理和引用中,扮演著中央存儲的角色。數(shù)據(jù)庫管理員(DBA)需要持續(xù)對數(shù)據(jù)庫進行調(diào)優(yōu)、災難備份與恢復、健康性檢查以及管理與監(jiān)控等維護。
而企業(yè)使用云平臺進行應用程序和數(shù)據(jù)庫的開發(fā)時,上述活動的安全性、性能以及成本效率就顯得更加重要了。為了減少重復性的工作量,并能夠更為主動性地實施各項維護操作,Oracle創(chuàng)造了所謂“自治數(shù)據(jù)庫”的概念。它使得DBA在管理數(shù)據(jù)庫平臺時,以最小量的人工干預,去執(zhí)行各項自動化任務。
5、數(shù)據(jù)網(wǎng)格
過去,我們往往趨向于將所有可能用到的數(shù)據(jù),都放置到一個龐大的邏輯數(shù)據(jù)存儲中。如今,我們則需要通過有效的數(shù)據(jù)分割和相應的解決方案,來構(gòu)建數(shù)據(jù)倉庫或數(shù)據(jù)湖。雖然數(shù)據(jù)湖能夠?qū)崿F(xiàn)高效的數(shù)據(jù)管理和分析,且迎合了敏捷的數(shù)據(jù)架構(gòu)需求,但是它缺少聯(lián)合或自治的數(shù)據(jù)訪問能力。
圖 4:數(shù)據(jù)網(wǎng)格架構(gòu)
如圖4所示,統(tǒng)一的數(shù)據(jù)解決方案需要一種數(shù)據(jù)存儲的微服務模式。正如服務網(wǎng)格能夠為服務之間的接口創(chuàng)建代理那樣,數(shù)據(jù)網(wǎng)格會參照此概念,為數(shù)據(jù)應用分析、儀表板提供以及數(shù)據(jù)查詢等使用場景,創(chuàng)建數(shù)據(jù)抽象和接口代理。數(shù)據(jù)網(wǎng)格架構(gòu)有助于企業(yè)開發(fā)出多維度的數(shù)據(jù)解決方案,以實現(xiàn)在統(tǒng)一的架構(gòu)中,同時處理操作數(shù)據(jù)平面(Operational Data Plane)和分析數(shù)據(jù)平面(Analytical Data Plane),而無需開發(fā)兩套不同的數(shù)據(jù)解決方案。
6、使用數(shù)據(jù)湖庫架構(gòu)的異構(gòu)式數(shù)據(jù)管理
隨著數(shù)據(jù)湖解決方案被廣泛使用,近年來數(shù)據(jù)湖倉的方案也被引入了數(shù)據(jù)分析和智能數(shù)據(jù)管理的場景中。通常,我們認為:數(shù)據(jù)倉庫處理的是關(guān)系型數(shù)據(jù)(即,原始數(shù)據(jù)的反饋)以及已處理的數(shù)據(jù)(即,在數(shù)據(jù)提取之后)。這些數(shù)據(jù)在被存儲之前,是以模式結(jié)構(gòu)(schema structure)的方式被組織的。也就是說,此類數(shù)據(jù)分析主要適用于已整理好的數(shù)據(jù)。正是因為數(shù)據(jù)倉庫處理的是基于模式結(jié)構(gòu)的數(shù)據(jù),因此它能夠滿足我們上文提到的各種數(shù)據(jù)智能、批處理以及實時數(shù)據(jù)可視化的需求。
不過,雖然它在查詢處理速度上比較快,但是其本身是一種昂貴的存儲形式與構(gòu)建過程。而數(shù)據(jù)湖庫架構(gòu)是一種混合的方法。它能夠使用如下方式,來處理和管理異構(gòu)的數(shù)據(jù):
- 數(shù)據(jù)湖
- 數(shù)據(jù)倉庫
- 用于中間態(tài)數(shù)據(jù)處理的專用存儲
- 用于更好的、數(shù)據(jù)處理策略的數(shù)據(jù)治理機制
- 數(shù)據(jù)完整性服務
由于數(shù)據(jù)湖庫架構(gòu)克服了數(shù)據(jù)湖和數(shù)據(jù)倉庫方案中的缺點,因此它在現(xiàn)代企業(yè)的數(shù)據(jù)處理環(huán)節(jié)中,越來越受到歡迎。例如:企業(yè)可以使用各個數(shù)據(jù)源的反饋,尋找潛在客戶以及市場機會。
同時,數(shù)據(jù)湖庫架構(gòu)也可以處理由內(nèi)向外的數(shù)據(jù)移動。也就是說,它既可以從存儲在數(shù)據(jù)湖中的數(shù)據(jù)里提取一組數(shù)據(jù),用于某個專項存儲意圖的分析或查詢活動;也能夠從數(shù)據(jù)倉庫到數(shù)據(jù)湖,按照由內(nèi)向外的數(shù)據(jù)移動方向,對完整的數(shù)據(jù)集進行分析。通過數(shù)據(jù)湖庫架構(gòu),我們還可以進行數(shù)據(jù)的海量并行處理(Massively Parallel Processing,MPP),如:各種數(shù)據(jù)倉庫和數(shù)據(jù)湖的融合應用以及高速的數(shù)據(jù)查詢。
7、小結(jié)
現(xiàn)代企業(yè)的海量數(shù)據(jù)需要存放在具有彈性、敏捷性且可擴展性的架構(gòu)中。而要想讓企業(yè)的數(shù)據(jù)具有更加高效的性能、卓越的運營、高可用性以及滿足安全與合規(guī)性要求,此類架構(gòu)往往離不開采用多語言的持久性、現(xiàn)代數(shù)據(jù)分階段建模、數(shù)據(jù)湖庫以及數(shù)據(jù)網(wǎng)格等技術(shù)和框架的構(gòu)建與集成。
原文鏈接:https://dzone.com/articles/modern-enterprise-data-architecture
譯者介紹
陳峻 (Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項目實施經(jīng)驗,善于對內(nèi)外部資源與風險實施管控,專注傳播網(wǎng)絡與信息安全知識與經(jīng)驗。?