构建数据网格分布式架构的四项原则

简介: 构建数据网格分布式架构的四项原则

Data Mesh 是最近随着微服务开始流行起来的数据架构,以一种分布式、可扩展、用户友好的方式管理数据,提供更好的数据洞察能力和更灵活的数据治理能力。原文:Data Mesh: The Four Principles of a Distributed Architecture[1]


数据网格(Data Mesh)是一个相对较新的术语,其本质上是最近数十年来关于数据架构[2]的思考、研究和实验的演进结果,下面我们会进一步介绍这一概念。


数据网格是由 Zhamak Dehghani 设计的分布式架构,他是 Next Tech 孵化器的董事、Thoughtworks 首席顾问和技术咨询委员会成员。


根据 Thoughtworks[3]的定义,数据网格旨在“解决传统集中式数据湖或数据平台架构的常见故障模式”,依赖于现代分布式架构和“自服务数据基础设施”。


数据网格的关键用例


数据网格的主要目的是帮助我们分析数据并从历史事实中获得价值[4],它可以灵活应对数据场景的频繁变化、数据源激增以及各种数据的转换和处理,可以根据对变化的反应速度灵活调整。


数据网格有很多用例:

  • 从分散的数据源构建虚拟数据目录
  • 帮助研发和 DevOps 团队直接运行不同来源的数据查询
  • 得益于数据网格的自服务平台基础设施,数据团队可以引入一种通用的、领域无关的、自动化的数据标准化方法。


接下来我们详细看一下支撑数据网格分布式架构的四个关键原则。


分布式架构的四个核心原则


这些原则本身并不新鲜,它们已经以这样或那样的形式存在了很长一段时间。然而,当我们把它们放在一起之后,得到的是(正如 Datameer 描述的那样[5])“一个连接分布式数据集以实现大规模数据分析的新架构范例”,允许不同的业务领域以用户友好的方式托管、共享和访问数据集。


image.png


1. 面向领域的去中心化数据所有权和体系架构


去中心化体系架构的趋势始于几十年前——由面向服务体系架构所驱动,然后出现了微服务。它能提供更大的灵活性,更好的可伸缩性,更容易并行工作,并允许功能的复用。与老式的单体数据湖和数据仓库(DWH,data warehouses)相比,数据网格提供了一种灵活得多的方法来管理数据。


在历史上,有多种不同的方式实现数据的去中心化,包括去中心化 DWH、联邦 DWHs[6],甚至 Kimball 的数据集市(DWH 的核心),这些方法都是面向域的[7],由独立的部门支持和实现。我们将这种方法应用于多个软件工程团队协同工作的情况,总体复杂度很高。


在一个财务咨询项目中,我们客户的分析部门根据所覆盖的财务领域被分成几个小组,这意味着大多数决策和分析数据集的创建可以在团队内部完成,而团队成员仍然可以读取全局数据集,使用通用工具集,遵循相同的数据质量、演示和发布的最佳实践。


2. 数据即产品


这意味着将广泛使用的产品思维应用到数据中,并在此过程中使数据成为一等公民,数据所有者将和开发团队一起支持运营。


创建数据集并保证其质量并不足以生产出数据产品,还需要便于用户查询、读取和理解,并且也应该遵循版本控制、监控、安全等全局性规则。


3. 自助式数据基础设施即平台


数据平台实际上是企业用于运行、维护和监控其服务的平台的扩展,但使用的技术栈截然不同。创建自助基础架构的原则是提供工具和用户友好的界面,以便有能力的开发人员能够开发数据分析产品。在没有这个平台之前,由于运维平台所涉及的范围非常广泛,使得开发数据分析产品非常困难。


4. 联邦计算治理


这是第一原则造成的必然结果。无论在何处部署分布式服务(例如微服务),都必须引入总体规划和规则来管理它们的操作,正如 Dehghani 所言,“在中央集权和地方分权之间保持平衡”至关重要。


本质上,这意味着整个平台有一个“共同点”,即所有数据产品都遵循一套共享的规则,在必要时为自主决策留下足够的空间,这最后一点是去中心化和集中化方法的关键区别。


数据网格的挑战


虽然数据网格提供了更好的可伸缩性,但和其他范式一样,不应被视为适用于所有场景的完美解决方案。与所有去中心化数据架构一样,它也面临着一些常见的挑战:


  • 确保跨团队的工具集和方法(在适用的地方)是一致的。
  • 尽量减少不同团队之间的重复工作和数据,而集中化的数据管理通常难以在公司范围内实现。
  • 协调数据和统一展示,跨多个数据产品读取互连数据的用户应该能够确保正确映射数据。
  • 通过全面的文档,使数据产品易于查找和理解。
  • 建立一致的监测、告警和日志记录。
  • 保护数据访问控制,特别是在数据产品之间存在多对多关系的地方。


总结


随着数据分析越来越多的成为社会日常运作的工具,组织必须超越单体数据架构,采用真正的数据驱动方法[8]的原则。而数据湖和数据仓库不够灵活,难以满足现代需求。


数据网格使数据对那些需要它的人来说更可用、更容易发现,同时又能够确保安全和可互操作。



Reference:

[1] https://medium.datadriveninvestor.com/data-mesh-the-four-principles-of-a-distributed-architecture-59514eba1e52

[2] https://eleks.com/services/data-science-services/?utm_source=medium&utm_medium=refferal&utm_campaign=Republ-BlockchainBusiness-Blog

[3] https://www.thoughtworks.com/radar/techniques/data-mesh

[4] https://labs.eleks.com/2021/02/data-science-project-life-cycle.html

[5] https://www.datameer.com/blog/data-mesh/

[6] https://www.zentut.com/data-warehouse/federated-data-warehouse-architecture/

[7] https://www.kimballgroup.com/1999/12/the-matrix/

[8] https://eleks.com/blog/dataops-efficient-data-ecosystem/


目录
相关文章
|
21天前
|
监控 安全 API
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
141 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
|
1天前
|
存储 Prometheus Cloud Native
分布式系统架构6:链路追踪
本文深入探讨了分布式系统中的链路追踪理论,涵盖追踪与跨度的概念、追踪系统的模块划分及数据收集的三种方式。链路追踪旨在解决复杂分布式系统中请求流转路径不清晰的问题,帮助快速定位故障和性能瓶颈。文中介绍了基于日志、服务探针和边车代理的数据收集方法,并简述了OpenTracing、OpenCensus和OpenTelemetry等链路追踪协议的发展历程及其特点。通过理解这些概念,可以更好地掌握开源链路追踪框架的使用。
54 41
|
12天前
|
设计模式 存储 算法
分布式系统架构5:限流设计模式
本文是小卷关于分布式系统架构学习的第5篇,重点介绍限流器及4种常见的限流设计模式:流量计数器、滑动窗口、漏桶和令牌桶。限流旨在保护系统免受超额流量冲击,确保资源合理分配。流量计数器简单但存在边界问题;滑动窗口更精细地控制流量;漏桶平滑流量但配置复杂;令牌桶允许突发流量。此外,还简要介绍了分布式限流的概念及实现方式,强调了限流的代价与收益权衡。
56 11
|
14天前
|
设计模式 监控 Java
分布式系统架构4:容错设计模式
这是小卷对分布式系统架构学习的第4篇文章,重点介绍了三种常见的容错设计模式:断路器模式、舱壁隔离模式和重试模式。断路器模式防止服务故障蔓延,舱壁隔离模式通过资源隔离避免全局影响,重试模式提升短期故障下的调用成功率。文章还对比了这些模式的优缺点及适用场景,并解释了服务熔断与服务降级的区别。尽管技术文章阅读量不高,但小卷坚持每日更新以促进个人成长。
43 11
|
15天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
51 11
|
17天前
|
自然语言处理 负载均衡 Kubernetes
分布式系统架构2:服务发现
服务发现是分布式系统中服务实例动态注册和发现机制,确保服务间通信。主要由注册中心和服务消费者组成,支持客户端和服务端两种发现模式。注册中心需具备高可用性,常用框架有Eureka、Zookeeper、Consul等。服务注册方式包括主动注册和被动注册,核心流程涵盖服务注册、心跳检测、服务发现、服务调用和注销。
52 12
|
29天前
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
16天前
|
Serverless 决策智能 UED
构建全天候自动化智能导购助手:从部署者的视角审视Multi-Agent架构解决方案
在构建基于多代理系统(Multi-Agent System, MAS)的智能导购助手过程中,作为部署者,我体验到了从初步接触到深入理解再到实际应用的一系列步骤。整个部署过程得到了充分的引导和支持,文档详尽全面,使得部署顺利完成,未遇到明显的报错或异常情况。尽管初次尝试时对某些复杂配置环节需反复确认,但整体流程顺畅。
|
24天前
|
缓存 Kubernetes 容灾
如何基于服务网格构建高可用架构
分享如何利用服务网格构建更强更全面的高可用架构
|
25天前
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
36 1

热门文章

最新文章