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