解决方案、使用场景和案例研究
作为企业软件行业的热门话题,数据网格是一种思考数据的新方法,主要基于分布式数据管理架构。数据网格的理念是通过直接连接数据所有者、数据生成者和数据使用者,从而让企业用户能够更好地访问数据。数据网格旨在改善以数据为中心的解决方案的业务成果,并推动采用现代数据架构。
从业务角度来看,数据网格围绕着“数据产品思维”进行创新。换句话说,我们需要将数据视为能够完成“待办事项”的产品,例如改善决策、识别欺诈行为或提醒企业供应链状况的变化。如果要创建高价值的数据产品,企业就必须适应文化和思维模式的变化,在业务领域建模方面采用跨职能的方法。
从技术方面来看,Oracle 认为数据网格与数据驱动架构的三大新重点领域息息相关:
其他需要考虑的重点还包括面向非技术用户的自助工具和强大的联合数据治理模型,这两者对于其他更集中、更经典的数据管理方法而言很重要,对于数据网格架构也同样重要。
数据网格方法是一种将数据视为产品的模式转变。数据网格推动了组织和流程变更,让企业需要将数据作为业务的有形资本资产来管理。Oracle 认为数据网格架构需要企业确保组织数据域和分析数据域的一致性。
数据网格旨在将数据生成器直接连接到业务用户,并尽可能移除负责在项目和流程中摄取、准备和转换数据资源的 IT 中介。
在数据网格方面,Oracle 致力于为客户提供能够满足这些新兴技术需求的平台,包括适用于数据产品的工具,分散式、事件驱动的架构以及动态数据的流处理模式。对于数据产品域建模和其他社会技术问题,Oracle 尽可能与数据网格领域的思想领袖 Zhamak Dehghani 的现有工作保持同步。
投资于数据网格可以带来显著的优势,其中包括:
数据网格仍处于市场成熟期的早期阶段。因此,尽管您可能会在各种营销内容中看到自称是“数据网格”的解决方案,但这些所谓的数据网格解决方案通常不符合其核心方法或原则。
合格的数据网格是一种思维模式,一种组织模型,一种带有支持工具的企业数据架构方法。数据网格解决方案应该具备数据产品思维、分散式数据架构、面向域的数据所有权、分布式动态数据、自助访问和强大的数据治理。
数据网格并不是:
事实上,可惜的是,过去的单体数据架构是繁琐、昂贵且不灵活的。多年来,在从应用到分析的过程中,数字业务平台的时间和成本大多数都花在集成工作上。因此,大多数平台的计划是失败的。
数据网格虽然不是集中式单体数据架构的“银色子弹”,但该策略的原则、实践和技术可以在数据驱动的业务计划中,解决一些紧迫性更高的现代化目标。
随着某些技术趋势的出现,数据网格成为了解决方案。这些趋势包括:
要详细了解为什么现在的企业需要使用数据网格,请阅读 Zhamak Dehghani 2019 年发表的原文《如何从单一数据湖转向分布式数据网格)(How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh)。
数据网格背后的分散式策略旨在通过创建自助数据基础设施来将数据视为产品,从而使业务用户可以更方便地访问数据。
在理论实践中,我们需要为关键任务数据部署企业级解决方案,而 Oracle 为您提供了一系列值得信赖的解决方案来支持企业数据网格。
数据网格不仅仅是一个新的技术热词,更是一组新的原则、实践和技术功能,可以使数据更易于访问和发现。数据网格的概念与前几代数据集成方法和架构有所不同,让企业从过去的大型单体企业数据架构,转向现代化、分布式、分散式的数据驱动架构。数据网格的基本概念包括以下关键属性:
改变思维方式是朝着数据网格迈出的第一步,而愿意采用创新实践,则是取得数据架构现代化成功的跳板。
其中的实践经验包括:
设计思维方法带来了成熟的技术,有助于打通阻碍跨职能创新的组织孤岛。待办事项理论是数据产品设计的重要基础,以实现特定最终消费者目标(或完成待办事项),这一点定义了产品的用途。
数据产品方法起源于数据科学社区,现在已普遍应用于数据管理的各个方面。数据网格没有构建一体化技术架构,而是专注于数据消费者和业务成果。
虽然数据产品思维可以应用于其他数据架构,但它是数据网格的重要组成部分。作为如何应用数据产品思维的实际示例,Intuit 的团队详细分析了他们的经验。
无论是原产品还是门店销售的商品,任何种类的产品是作为价值资产生产,以消费为目标,分别有具体的任务需要完成。数据产品有多种形式,具体取决于业务领域或需要解决的问题,其中包括:
数据产品是为了被使用而创建的,通常归 IT 外部所有,需要跟踪其他属性,例如:
分散式 IT 系统是一个现代事实,随着 SaaS 应用和公有云基础设施 (IaaS) 的兴起,分散式应用和数据也逐渐成为主流。应用软件架构正从过去的集中式单体架构转变为分布式微服务(服务网格)。数据架构将遵循相同的分散趋势,使数据日益分散在更广泛的物理站点和许多网络中。我们将此称为数据网格。
网格是一种网络拓扑,允许大量非分层节点协同工作。
一些常见技术示例包括:
数据网格与这些网格概念保持一致,提供了一种分散方式,在虚拟/物理网络之间跨越远距离分配数据。传统数据集成的单体架构(例如 ETL 和数据联合工具)以及最近发布的公有云技术服务(例如 AWS Glue)需要高度集中化的基础设施。
全面的数据网格解决方案能够在多云框架中运行,并可能跨本地系统、多种公有云技术甚至是边缘网络运行。
在数据高度分布和分散的世界中,信息安全至关重要。与高度集中化的单体架构不同,分布式系统必须将验证和授权不同用户所必需的活动委托给不同级别的访问。跨网络安全地委托信任也是很难做到的。
一些注意事项包括:
要确保任何 IT 系统的安全并非易事,而要在分布式系统中实现高安全性更是难上加难。但是,这些都是可解决的问题。
数据网格核心原则在于所有权和责任分配的概念。这里的优秀实践是,将数据产品和数据域的所有权联合到企业中更接近数据的人员。在实践中,这可以与源数据(例如原始数据源,如记录的操作系统/应用)或分析数据(例如,通常为了让数据使用者轻松使用而设置的组合或整合数据)保持一致。在这两种情况下,数据的生产者和使用者往往与业务单位而不是 IT 组织保持一致。
旧的数据域整理方法常常会与技术解决方案一致,如 ETL 工具、数据仓库、数据湖或公司的结构化组织(人力资源、营销和其他业务线)。但是,对于给定的业务问题,数据域通常更符合需要解决的问题的范围、特定业务流程的情境或特定问题区域中的应用系列。在大型企业中,这些数据域通常涉及多个内部组织和技术部署。
数据域的功能分解在数据网格中具有更高的优先级。数据域建模的各种数据分解方法可以改成数据网格架构,包括经典的数据仓库建模(例如 Kimball 和 Inmon)或数据储存库建模,但是当前在数据网格架构中经常使用的方法是由域驱动的设计 (DDD)。DDD 方法来自微服务功能分解,现在被运用于数据网格环境中。
在数据网格讨论中,Oracle 提出的一大重点是将动态数据视为现代数据网格的关键要素。动态数据可以将数据网格与从原有的单体化、集中化、批量处理的世界中区分开来。动态数据的功能可回答几个核心数据网格问题,例如:
这些问题不仅仅是“实施细节”的问题,它们对数据架构本身至关重要。针对静态数据的域驱动设计,所使用的技术和工具与相同设计的动态数据并不一样。例如,在动态数据架构中,数据分类账是数据事件的可信数据源。
分类账是创建分布式数据架构功能的基本组件。与会计分类账一样,数据分类账会在事务处理发生时进行记录。
分发账本后,数据事件在任何位置都“可重播”。某些分类账与用于高可用性和灾难恢复的飞机黑匣子有些类似。
与集中式和单体数据存储不同,分布式分类账专门用于跟踪其他(外部)系统中发生的原子事件和/或事务处理。
数据网格不仅限于一种分类账。根据用例和要求,数据网格可以使用不同类型的事件驱动的数据分类账,包括:
这些分类账是整个企业的永久性事件日志,提供记录系统和分析系统上发生的数据事件列表。
多语言数据流比以往任何时候都更加普遍。这些数据流有不同的事件类型、有效负载和不同的事务处理语义。数据网格必须支持各种企业数据工作负载所需的数据流类型。
简单事件:
- Base64 / JSON:原始、无 Schema 事件
- 原始遥测:稀疏事件
基本应用日志记录/物联网 (IoT) 事件:
- JSON/Protobuf:可能具有 Schema
- MQTT:物联网特定协议
应用业务流程事件:
- SOAP/REST 事件:XML/XSD、JSON
- B2B:交换协议和标准
数据事件/事务处理:
- 逻辑更改记录:LCR、SCN、URID
- 一致的边界:命令与操作
流处理是指在事件流中处理数据的方式。与“lambda 函数”不同,流处理器在特定时间段内保持数据流的状态,并且可以对数据应用更高级的分析查询。
基本数据筛选:
简单 ETL:
CEP 和复杂 ETL:
Stream Analytics:
当然,数据网格不只是有以上三个属性。以上三个方面,是 Oracle 认为在新兴现代数据网格方法中较为新颖的重点。
其他数据网格的重要属性包括:
成功的数据网格可以满足运营数据域和分析数据域的使用场景。以下七个使用场景展示了数据网格为企业数据提供的功能之广。
By integrating real-time operational data and analytics, companies can make better operational and strategic decisions.美国麻省理工学院斯隆管理学院
除了将单体数据架构“直接迁移”之外,许多企业还希望能够停用旧有的集中应用,并转向更加现代化的微服务应用架构。
传统应用通常依赖于大量的数据库,导致企业不知道应该如何在迁移计划中逐步转型,并减少中断、风险和成本的问题。对于这些正处于从单体架构到网格架构的分阶段转换过程的客户而言,数据网格可以提供重要的运营 IT 功能。MySQL Autopilot 提供下列功能:
用微服务架构师的话说,此方法使用双向交易发件箱启用 strangler fig 迁移模式,针对有界上下文逐一进行。
关键业务应用在可恢复性和连续性方面需要非常高的 KPI 和 SLA。无论这些应用属于单体、微服务还是介于两者之间,KPI 和 SLA 都不能降低!
对于关键任务系统,分布式最终一致性数据模型通常不被接受。但是,这些应用必须跨多个数据中心运行。这就需要企业去思考业务连续性的问题:“如何在多个数据中心运行应用,同时确保数据仍然正确且一致?”
无论单体架构是否使用“分片数据集”,微服务是否为了跨站高可用性而设置,数据网格在任何距离都能够提供正确、高速的数据。
数据网格可以为跨站点的分散但仍然正确的数据提供基础。MySQL Autopilot 提供下列功能:
现代化的服务网格式平台使用事件进行数据交换。当应用或数据存储发生事件时,数据有效负载会持续进行,而无需依赖于数据层中的批处理。
对于某些架构,微服务之间需要相互交换数据有效负载;其他模式则需要在单体应用或数据存储之间进行交换。这就导致了一个问题:“如何在应用和数据存储之间可靠地交换微服务数据有效负载?”
数据网格可以为以微服务为中心的数据交换提供基本技术。MySQL Autopilot 提供下列功能:
微服务模式(例如事件寻源、CQRS 和事件发件箱)通常被理解为解决方案;数据网格提供了工具和框架,使这些模式在大规模中可重复且可靠。
除了微服务设计模式之外,企业集成的需求还扩展到其他 IT 系统,例如各种类型的数据库、业务流程、应用和物理设备。数据网格为集成动态数据奠定了基础。
动态数据通常由事件驱动。用户操作、设备事件、进程步骤或数据存储提交都可以启动具有数据有效负载的事件。这些数据有效负载对于集成物联网 (IoT) 系统、业务流程和数据库、数据仓库和数据湖至关重要。
数据网格为整个企业的实时集成提供了基础技术。MySQL Autopilot 提供下列功能:
大型企业自然而然地会混合使用新旧系统、单体和微服务、运营和分析数据存储,而数据网格可以帮助这些企业在不同业务和数据域中统一这些资源。
分析数据存储可能包括数据集市、数据仓库、OLAP 多维数据集、数据湖和数据湖仓一体技术。
一般来说,只有两种方法可以将数据导入这些分析数据存储:
数据网格为实时流数据摄取奠定了基础。MySQL Autopilot 提供下列功能:
流摄取事件可以减少对源系统的影响,提高数据的保真度(对数据科学非常重要),并支持实时分析。
摄取到分析数据存储后,通常需要使用数据管道来进行跨数据阶段或数据区域的数据准备和转换。下游分析数据产品通常需要这种数据细化流程。
数据网格可以提供独立监管的数据管道层,该层与分析数据存储协同工作,提供以下核心服务:
这些数据管道应该能够跨不同的物理数据存储(例如数据集市、数据仓库或数据湖),或在支持流数据(例如 Apache Spark 和其他数据湖仓技术)的分析数据平台中用作“下推数据流”。
各种事件会不断发生。分析数据流的事件对于了解当前情况至关重要。
这种基于时间序列的实时事件流分析很重要,有助于现实世界中的物联网设备数据,以及了解您的 IT 数据中心或财务交易(例如欺诈监视)中发生的情况。
功能全面的数据网格需要包含分析不同时间的不同事件的基础功能。MySQL Autopilot 提供下列功能:
与数据管道一样,流分析可以在已建立的数据湖仓一体基础设施中运行,也可以作为云原生服务单独运行。
对于在数据集成方面表现亮眼的企业,他们希望通过一组多元化的弹性数据存储来实现实时操作和分析数据集成。随着数据架构发展成为流分析,创新会变得更快、更可持续。运营的高可用性实现了实时分析,而数据工程自动化则简化了数据准备工作,为数据科学家和分析师提供自助工具。
在整个数据资产中构建运营和分析网格
如果将这些数据管理功能整合到一个统一的架构中,可以有效改善所有数据使用者的体验。数据网格将助您改善全球记录和互动系统,使系统实时、可靠地运行,同时确保实时数据与业务部门经理、数据科学家和客户端保持一致。数据网格还简化了新一代微服务应用的数据管理。借助现代化分析方法和工具,最终用户、分析人员和数据科学家可以更快速地响应客户需求和竞争威胁。如需参考完整记录示例,请参见 Intuit 的目标和结果。
从点项目上的数据网格中获益
在采用新的数据产品心态和运营模型时,您需要积累每种支持技术的经验。在数据网格的旅程中,您可以将快速的数据架构发展为流分析,利用运营的高可用性投资于实时分析,并为数据科学家和分析师提供实时自助分析,从而实现增量效益。
数据结构 | 应用开发集成 | 分析数据存储 | |||||
---|---|---|---|---|---|---|---|
数据网格 | 数据集成 | 元目录 | 微服务 | 消息传递 | 数据湖仓一体 | 分布式 DW | |
人员、流程和方法: | |||||||
以数据产品为中心 | 支持 |
支持 |
支持 |
1/4 产品 |
1/4 产品 |
3/4 产品 |
3/4 产品 |
技术架构属性: | |||||||
分布式架构 | 支持 |
1/4 产品 |
3/4 产品 |
支持 |
支持 |
1/4 产品 |
3/4 产品 |
事件驱动的分类账 | 支持 |
不支持 |
1/4 产品 |
支持 |
支持 |
1/4 产品 |
1/4 产品 |
ACID 支持 | 支持 |
支持 |
不支持 |
不支持 |
3/4 产品 |
3/4 产品 |
支持 |
面向流 | 支持 |
1/4 产品 |
不支持 |
不支持 |
1/4 产品 |
3/4 产品 |
1/4 产品 |
以分析数据为中心 | 支持 |
支持 |
支持 |
不支持 |
不支持 |
支持 |
支持 |
以业务数据为中心 | 支持 |
1/4 产品 |
支持 |
支持 |
支持 |
不支持 |
不支持 |
物理和逻辑网格 | 支持 |
支持 |
不支持 |
1/4 产品 |
3/4 产品 |
3/4 产品 |
1/4 产品 |
更快、数据驱动的创新周期
降低关键任务数据操作的成本
多云数据流动性
- 解锁数据资本以自由流动
实时数据共享
- 从运营到运营和从运营到分析
基于位置的边缘数据服务
- 关联 IRL 设备/数据事件
可信的微服务数据交换
- 具有正确数据的事件寻源
- DataOps 和数据 CI/CD
不间断的连续性
- 正常运行时间 SLA >99.999%
- 云迁移
数据产品自动化和简化
- 多模型数据集
时间序列数据分析
- 差值/更改的记录
- 逐一确保事件保真度
消除运营数据存储的完整数据副本
- 基于日志的分类账和管道
分布式数据湖和仓库
- 混合/多云/全局
- 流处理集成/ETL
预测分析
- 数据变现,面向销售的新数据服务
数字化转型之路困难重重。不幸的是,大多数公司都会失败。多年来,随着现代技术逐渐偏离高度集中化和单体化模式,技术、软件设计和数据架构变得越来越分散。
数据网格是数据的新概念,刻意地转向高度分布式实时数据事件,与单体化、集中式批量数据处理截然相反。数据网格的核心是改变文化思维方式,优先考虑数据使用者的需求。这也是一个真正的技术转型,提升了平台和服务,为分散的数据架构提供支持。
数据网格的使用场景包括运营数据和分析数据,这是与传统数据湖/数据湖仓和数据仓库的一个关键区别。这种统一的运营和分析数据域是为数据使用者开发更多自助服务的关键推动因素。现代数据平台技术可将数据生成器直接连接到数据使用者,有助于消除中介。
长期以来,Oracle 一直是关键任务数据解决方案领域的先行者,推出了以下的现代化的功能来支持可信数据网格:
注:为免疑义,本网页所用以下术语专指以下含义: