您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 开发技术 > 正文

现代企业数据架构的关键要素

发表于:2022-11-21 作者:陈峻 来源:51CTO技术栈

​译者 | 陈峻

审校 | 孙淑娟

不知您是否注意到,现代企业数据架构的概念化设计,对于企业的数据掌控与“变现”能力,起着至关重要的作用。此处的现代企业架构主要包括:微服务、云原生应用、事件驱动方案以及数据密集型解决方案等。

我们需要通过确定基础架构的安全性与性能要求,以实现各种工作负载在处理过程中的可扩展性和敏捷性。为此,您需要了解基本的数据模型、如何处理数据隐私的安全性、合规性、数据的体量及用户需求等方面,是如何影响到数据架构的设计决策的。

图片

图 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项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。​