【数据架构】分布式数据网格作为集中式数据单体的解决方案

2024-02-14 10:30

本文主要是介绍【数据架构】分布式数据网格作为集中式数据单体的解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

企业数据架构师不应构建大型集中式数据平台,而应创建分布式数据网格。 ThoughtWorks 的首席技术顾问 Zhamak Dehghani 在旧金山 QCon 的演讲和相关文章中表示,这种方法的改变需要范式转变。随着数据变得越来越普遍,传统的数据仓库和数据湖架构变得不堪重负,无法有效扩展。Dehghani 认为,分布式数据网格方法可以通过采用面向领域的数据所有权来克服这些固有的低效率。

“我建议下一个企业数据平台架构是分布式域驱动架构、自助平台设计和数据产品思维的融合。”

她的演讲包括一些现实世界的例子,但主要集中在新的管理原则上,伴随着新的语言来支持这种心态。例如,服务过度摄取,发现和使用过度提取和加载。

Dehghani 看到了传统数据平台架构中的三种故障模式。首先,它们是中心化的、单一的;将所有类型的数据放在一起可能适用于小型组织,但对于拥有大量数据源和不同数据消费者的企业最终会失败。

其次,是 Dehghani 描述为“耦合管道分解”的问题。几代架构师已经将数据平台架构分解为“数据处理步骤的管道”。这些管道步骤与变化轴正交,新功能需要对所有步骤进行更新。

孤立和超专业的所有权是最终的失败模式。集中式架构自然会创建提供数据的数据源团队和检索处理数据的消费者团队的类别。中间是数据和机器学习专家。虽然两个外部小组是面向领域的,但中央团队必须与领域无关。

86de3e826b6c5b0edc913d3f50613757.png

Dehghani 将这些挑战与 N 层单体的挑战进行了比较,其中新的客户需求需要修改所有层。微服务更好地与变化的元素保持一致,但需要不同的设计方法。成功实施数据网格架构需要类似的、戏剧性的思维转变。

“为了分散整体数据平台,我们需要扭转我们对数据、数据的位置和所有权的看法。域不需要将数据从域流到集中拥有的数据湖或平台,而是需要托管和服务其域数据集以一种易于消费的方式。”

所设想的架构侧重于将域数据产品作为一流的组件,每个组件都由了解该域的团队拥有相应的所有权。单一的、僵化的数据管道不再是主要的设计关注点,数据也没有明确地划分为源和消费模式。分散的团队能够使用他们需要的数据,并且可以将他们的输出提供回网格中以供其他团队使用。

要使这样的架构成功,数据产品必须是可发现的、可寻址的、可信赖的、自描述的、可互操作的、安全的,并受全局访问控制的约束。这些特征是各个数据产品所有者的责任,并得到联合治理和提供数据基础设施的平台的帮助。

efe69afe6fcaac15dfb5b021b6f1d3a6.png

  • Image Credit: Zhamak Dehghani

数据仓库和数据湖仍然可以存在于这种架构中,但它们只是网格中的另一个节点,而不是一个集中的单体。 如果团队仍然需要由数据仓库和湖泊来完成的功能,那么他们应该可以自由地接受它。同样,微服务和多语言解决方案的采用也存在相关性。

Dehghani 的 QCon 演示文稿“数据平台架构中的数据网格范式转变”将在未来几周内发布。她的文章《如何从单一数据湖迁移到分布式数据网格》现已发布。她还将成为 InfoQ 播客的嘉宾。

本文https://jiagoushi.pro/distributed-data-mesh-solution-centralized-data-monoliths
讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto】或者加QQ群【792862318】
公众号

【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
f02fbf48cb2b9a57e00a89c33684fac8.png
微信小号

【cea_csa_cto】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

3d91c8088e143dc8bdf6e3c881a2ba3a.png

QQ群

【792862318】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

6d60e978b68417791f96e0cd09c77461.png

视频号【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

a9f6dc90f1a71b869aa0c9a1f340ec7d.png

知识星球向大咖提问,近距离接触,或者获得私密资料分享。

3f86a595dcfafadbb534eaf92d3d1c98.png

喜马拉雅路上或者车上了解最新黑科技资讯,架构心得。【智能时刻,架构君和你聊黑科技】
知识星球认识更多朋友,职场和技术闲聊。知识星球【职场和技术】
微博【智能时刻】智能时刻
哔哩哔哩【超级架构师】

6a8228c90e1326b4dd78cae12e30043d.png

抖音【cea_cio】超级架构师

e0e65d57ed0724add64263900519fe7e.png

快手【cea_cio_cto】超级架构师

ca70f693efa2ccdf11b1ac3c9bc2e975.png

小红书【cea_csa_cto】超级架构师

bb8b6ae69dc12330676c82aed5165b7d.png




谢谢大家关注,转发,点赞和点在看。

这篇关于【数据架构】分布式数据网格作为集中式数据单体的解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708254

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

JAVA实现亿级千万级数据顺序导出的示例代码

《JAVA实现亿级千万级数据顺序导出的示例代码》本文主要介绍了JAVA实现亿级千万级数据顺序导出的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 前提:主要考虑控制内存占用空间,避免出现同时导出,导致主程序OOM问题。实现思路:A.启用线程池