DataMesh 原理及逻辑架构

本文概述了数据网格方法,基于四原则(数据所有权、数据作为产品、基础设施平台和联邦治理),强调了从传统数据湖向分布式架构的转变,以应对数据多样化和快速响应需求。文章旨在引导理解体系结构和组织变革,而非详述具体实施细节。

https://martinfowler.com/articles/data-mesh-principles.html

Our aspiration to augment and improve every aspect of business and life with data, demands a paradigm shift in how we manage data at scale. While the technology advances of the past decade have addressed the scale of volume of data and data processing compute, they have failed to address scale in other dimensions: changes in the data landscape, proliferation of sources of data, diversity of data use cases and users, and speed of response to change. Data mesh addresses these dimensions, founded in four principles: domain-oriented decentralized data ownership and architecture, data as a product, self-serve data infrastructure as a platform, and federated computational governance. Each principle drives a new logical view of the technical architecture and organizational structure.
我们希望通过数据来增强和改善业务和生活的各个方面,这要求我们在大规模管理数据的方式上进行范式转变。虽然过去十年的技术进步解决了数据量和数据处理计算的规模,但它们未能解决其他方面的规模:数据格局的变化、数据源的激增、数据用例和用户的多样性以及对变化的响应速度。数据网格解决了这些维度,建立在四个原则基础上:面向领域的分散数据所有权和体系结构、数据作为产品、自助数据基础架构作为平台以及联合计算治理。每项原则都推动了技术架构和组织结构的新逻辑视图。

The original writeup, How to Move Beyond a Monolithic Data Lake to a Distributed Data Mesh - which I encourage you to read before joining me back here - empathized with today’s pain points of architectural and organizational challenges in order to become data-driven, use data to compete, or use data at scale to drive value. It offered an alternative perspective which since has captured many organizations’ attention, and given hope for a different future. While the original writeup describes the approach, it leaves many details of the design and implementation to one’s imagination. I have no intention of being too prescriptive in this article, and kill the imagination and creativity around data mesh implementation. However I think it’s only responsible to clarify the architectural aspects of data mesh as a stepping stone to move the paradigm forward.

This article is written with the intention of a follow up. It summarizes the data mesh approach by enumerating its underpinning principles, and the high level logical architecture that the principles drive. Establishing the high level logical model is a necessary foundation before I dive into detailed architecture of data mesh core components in future articles. Hence, if you are in search of a prescription around exact tools and recipes for data mesh, this article may disappoint you. If you are seeking a simple and technology-agnostic model that establishes a common language, come along.

最初的文章《如何超越整体数据湖迁移到分布式数据网格》-我鼓励您在回到这里之前阅读它--同情当今的体系结构和组织挑战的痛点,以便成为数据驱动的,使用数据竞争,或使用规模数据驱动价值。它提供了另一种观点,此后引起了许多组织的注意,并给人们带来了对不同未来的希望。虽然最初的文章描述了这种方法,但它将设计和实现的许多细节留给了人们的想象。我无意在本文中过于规定,并扼杀围绕数据网格实现的想象力和创造力。然而,我认为,澄清数据网格的体系结构方面是推动范式向前发展的垫脚石。

这篇文章是为了后续行动而写的。它通过列举数据网格方法的基础原则以及这些原则驱动的高级逻辑体系结构来总结数据网格方法。在我在未来的文章中深入探讨数据网格核心组件的详细体系结构之前,建立高级逻辑模型是必要的基础。因此,如果您正在寻找关于数据网格的确切工具和食谱的处方,本文可能会让您失望。如果您正在寻找一个简单且与技术无关的模型,以建立一种共同语言,请一起来。

The great divide of data

What do we really mean by data? The answer depends on whom you ask. Today’s landscape is divided into operational data and analytical data. Operational data sits in databases behind business capabilities served with microservices, has a transactional nature, keeps the current state and serves the needs of the applications running the business. Analytical data is a temporal and aggregated view of the facts of the business over time, often modeled to provide retrospective or future-perspective insights; it trains the ML models or feeds the analytical reports.

The current state of technology, architecture and organization design is reflective of the divergence of these two data planes - two levels of existence, integrated yet separate. This divergence has led to a fragile architecture. Continuously failing ETL (Extract, Transform, Load) jobs and ever growing complexity of labyrinth of data pipelines, is a familiar sight to many who attempt to connect these two planes, flowing data from operational data plane to the analytical plane, and back to the operational plane.

https://martinfowler.com/articles/data-mesh-principles/data-planes.png

Figure 1: The great divide of data

我们说的数据到底是什么意思?答案取决于你问的是谁。今天的情况分为业务数据和分析数据。运营数据位于与微服务一起服务的业务功能后面的数据库中,具有事务性,保持当前状态,并满足运行业务的应用程序的需求。分析数据是业务事实随时间推移的时间和聚合视图,通常建模以提供回顾性或未来视角的见解;它训练ML模型或提供分析报告。

技术、体系结构和组织设计的当前状态反映了这两个数据平面的分歧--两个存在级别,集成但独立。这种分歧导致了一个脆弱的建筑。ETL(提取、转换、加载)作业不断失败,数据管道迷宫的复杂性不断增加,对于许多试图连接这两个平面、将数据从操作数据平面流动到分析平面,然后返回操作平面的人来说,是一个熟悉的景象。

<think>嗯,用户现在问的是DataMesh和BigQuery的关系,看来ta已经跳过了之前的基础知识问题,直接聚焦到具体技术对比了。用户之前问过DataMesh需要哪些基础知识,但现在显然进入了更落地的技术选型阶段——可能是个有实战经验的开发者或架构师,正在评估技术栈。 从提问方式看,用户特意提到“参考站内引用”,但实际没有具体引用内容,说明ta可能误操作了。不过ta强调要参考历史问答,说明希望延续之前的专业深度。有趣的是,用户两次提问都带着对比思维:上次问DataMesh基础(隐含vs传统数仓),这次直接点名BigQuery(vs云数仓)。 关于这两者关系,需要分三层解释:首先是概念定位差异(架构范式vs具体产品),然后是互补可能性(DataMesh模式在BigQuery上的实现),最后是竞合点(BigQuery联邦查询可能弱化DataMesh的部分必要性)。用户应该需要知道“什么场景该用谁/怎么组合”。 特别注意用户上次回复里我提过“云计算知识”和“数据湖仓”,这次BigQuery正是典型代表。要关联之前的观点:DataMesh需要云环境,而BigQuery就是云数仓方案。可以强调“BigQuery能成为DataMesh中的关键存储节点”这个点。 技术细节上需要区分清楚:BigQuery的表≠DataMesh的数据产品。前者是物理存储单位,后者是包含代码、SLA、元数据的业务单元。比如在BigQuery里建个表,如果不配血缘监控和访问策略,就只是传统数据集,不是DataMesh产品。 用户可能真正想问的是:“我有BigQuery了还需要搞DataMesh吗?”这取决于组织规模——小团队用BigQuery联邦查询就能跨项目共享数据,但超500人的企业可能就需要DataMesh来解决数据所有权问题。这点应该在回答中埋下伏笔。 </think>理解您的问题核心:**DataMesh 是一种数据架构范式,而 BigQuery 是 Google Cloud 提供的具体数据仓库产品**。两者的关系可总结为 **“理念与实践工具”** 的结合:DataMesh 提供方法论框架,BigQuery 可作为其技术支撑。以下是详细分析: --- ### 一、核心定位差异 | **维度** | **DataMesh** | **BigQuery** | |----------------|----------------------------------|----------------------------------| | **本质** | 分布式数据架构范式 | 云原生企业级数据仓库(SaaS) | | **关注点** | 组织协作模式、数据主权、治理框架 | 高性能查询、存储扩展性、SQL 引擎 | | **构成要素** | 领域所有权、数据产品、自助平台等 | 列式存储、分布式执行引擎、BI 集成| --- ### 二、DataMesh 如何利用 BigQuery? BigQuery 可作为 DataMesh 架构中的 **核心基础设施组件**,尤其在以下环节: 1. **领域数据产品的存储层** 各领域团队可将自治数据以 BigQuery 数据集(`Dataset`)形式存储,物理隔离但逻辑统一管理。 ```sql -- 领域团队A创建独立数据集 CREATE SCHEMA `project_a.dataset_finance` OPTIONS(location="us-central1"); ``` [^1] 2. **联邦查询枢纽** BigQuery 的联邦查询能力(`EXTERNAL_QUERY`)支持跨多种数据源(如 Cloud SQL、S3)联合分析,天然适配 DataMesh 的分布式数据源整合需求: ```sql SELECT * FROM EXTERNAL_QUERY( "connection_id", "SELECT * FROM remote_mysql_table" ); ``` [^2] 3. **统一计算引擎** 通过 BigQuery 的弹性计算资源,各领域团队无需自建计算集群即可执行大规模 ETL 或分析任务,符合 DataMesh **“平台即产品”** 的核心原则。 --- ### 三、DataMesh 对 BigQuery 的增强 BigQuery 提供技术能力,而 DataMesh 赋予其**组织级协同逻辑**: | **BigQuery 原生能力** | **DataMesh 增强维度** | |---------------------------|----------------------------------| | 独立数据集(Dataset) | 映射为领域数据产品的物理边界 | | 基于 IAM 的权限控制 | 扩展为领域数据产品的策略治理模型 | | 数据血缘基础功能 | 集成到全局数据产品目录的元数据流 | | 查询计算资源池 | 支持跨领域 SLA 的资源配额管理 | > ✅ **典型案例**:零售企业将用户行为(领域A)、库存(领域B)、交易(领域C)数据分别存储在 BigQuery 独立数据集中,通过 DataMesh 治理框架定义跨域联合分析规范,避免传统数仓的中心化建模瓶颈。[^3] --- ### 四、关键协同价值 1. **成本优化** BigQuery 按需计费 + DataMesh 领域自治,可避免“全量数据集中存储”导致的冗余成本。 **计算公式**: $$ \text{总成本} = \sum_{i=1}^{n} \left( \text{存储成本}_i + \text{查询成本}_i \right) \times \text{领域优先级权重} $$ [^4] 2. **敏捷性提升** 领域团队直接操作 BigQuery 数据集(如 Schema 变更、Pipeline 部署),响应速度从周级降至小时级。 3. **治理标准化** BigQuery 的审计日志(`INFORMATION_SCHEMA`)与 DataMesh 的元数据目录结合,实现字段级血缘追溯: ```sql SELECT * FROM `region-us`.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS; ``` --- ### 五、注意事项 1. **权限边界** BigQuery 项目级权限需映射到 DataMesh 领域所有权模型,避免跨域越权访问。 2. **冷热数据分层** 高频访问的 DataMesh 产品数据建议使用 BigQuery 分区表,归档数据可接入 BigLake 降低成本。 3. **元数据同步** 需额外工具(如 Data Catalog)将 BigQuery 元数据注入 DataMesh 全局目录。 --- **总结**: DataMesh 不是替代 BigQuery 的工具,而是**最大化释放其价值的架构方法论**。BigQuery 提供技术底座支撑 DataMesh 的分布式实践,而 DataMesh 帮助 BigQuery 从单一存储引擎升级为企业级数据协同平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值