免费注册
数据网格架构-从工程角度看数据网格

数据网格架构-从工程角度看数据网格

作者: 低代码架构师Kaiwen
阅读数:184
更新时间:2024-02-23 20:34:49
数据网格架构-从工程角度看数据网格
id="why" class="title">为什么您可能需要数据网格

许多组织已经投资了一个中央数据湖和一个数据团队,希望基于数据来推动他们的业务。然而,在一些初步的快速获胜之后,他们注意到中央数据团队经常成为瓶颈. 团队无法足够快地处理管理层和产品负责人的所有分析问题。这是一个巨大的问题,因为及时做出数据驱动的决策对于保持竞争力至关重要。例如:在黑色周期间提供免费送货是个好主意吗?客户是否接受更长但更可靠的运输时间?产品页面更改如何影响结账率和退货率?

数据团队希望快速回答​​所有这些问题。然而,在实践中,他们遇到了困难,因为他们需要在操作数据库更改后花费太多时间来修复损坏的数据管道。在剩下的时间里,数据团队必须发现和理解必要的领域数据。对于每个问题,他们都需要学习领域知识以提供有意义的见解。获得所需的领域专业知识是一项艰巨的任务。

另一方面,组织也投资于领域驱动设计、自治领域团队(也称为流对齐团队或产品团队)和去中心化微服务架构。这些领域团队拥有并了解他们的领域,包括业务的信息需求。他们自行设计、构建和运行自己的 Web 应用程序和 API。尽管了解领域和相关信息需求,领域团队必须联系超负荷的中央数据团队以获得必要的数据驱动洞察力。

随着组织的最终成长,领域团队和中心数据团队的情况变得更糟。解决这个问题的一种方法是将数据的责任从中央数据团队转移到领域团队。这就是数据网格概念背后的核心思想: 面向领域的去中心化分析数据。数据网格架构使域团队能够对自己的跨域数据分析和互连数据,类似于微服务架构中的 API。

什么是数据网格?

 

术语数据网格Zhamak Dehghani 创造在 2019 年,基于捆绑知名概念的四个基本原则:

域所有权原则要求域团队对其数据负责 。根据这一原则,分析数据应围绕域组成,类似于与系统的有界上下文对齐的团队边界。遵循领域驱动的分布式架构,分析和运营数据所有权转移到领域团队,远离中央数据团队。

数据作为产品原则 将产品思维理念投射到分析数据上。这个原则意味着域之外的数据有消费者。领域团队负责通过提供高质量数据来满足其他领域的需求。基本上,域数据应该被视为任何其他公共 API。

自助数据基础设施平台 背后的理念是将平台思维应用于数据基础设施。一个专门的数据平台团队提供与领域无关的功能、工具和系统,为所有领域构建、执行和维护可互操作的数据产品。借助其平台,数据平台团队使领域团队能够无缝地使用和创建数据产品。

联邦治理原则通过标准化实现所有数据产品的互操作性,由治理行会在整个数据网格中推动。联邦治理的主要目标是创建一个遵守组织规则和行业法规的数据生态系统。

 

如何设计数据网格?

数据网格架构是一种分散的方法,使域团队能够自行执行跨域数据分析。其核心是具有负责团队及其运营和分析数据的域。领域团队摄取运营数据并构建分析数据模型以执行他们自己的分析。它使用分析数据来构建基于其他领域需求的数据产品。

领域团队与其他人就全球政策达成一致,例如联合治理协会中的互操作性、安全性和文档标准,以便领域团队知道如何发现、理解和使用数据网格中可用的数据产品。数据平台团队提供的与领域无关的自助数据平台,使领域团队能够轻松构建自己的数据产品并有效地进行自己的分析。支持团队指导领域团队如何对分析数据进行建模、使用数据平台以及构建和维护可互操作的数据产品。

数据网格核心组件架构

数据产品

数据产品通常是可以被其他域访问的已发布数据集,类似于 API。例如,Google BigQuery 表中的库存更新历史记录或 AWS S3 存储桶上带有采购订单的每日 JSON 文件。数据产品也可以采用其他形式,包括包含 KPI 和图表的 PDF 形式的销售报告,甚至是用于预测发货日期的机器学习模型作为 ONNX 文件。

为了发现、访问和使用数据产品,它使用元数据进行描述,包括所有权和联系信息、数据位置和访问、更新频率以及数据模型的规范。

领域团队负责数据产品在其整个生命周期内的操作。团队需要持续监控并确保数据质量和可用性。例如,保持数据不重复或对丢失的条目做出反应。

联邦治理

联合治理机构通常组织为一个公会,由参与数据网格的所有团队的代表组成。他们就全球政策达成一致,这是数据网格中的游戏规则。这些规则定义了领域团队必须如何构建他们的数据产品。

互操作性 政策是起点。它们允许其他领域团队以一致的方式使用数据产品。例如,全局策略可以将提供数据的标准方式定义为 AWS S3 上相应域团队拥有的存储桶中的 CSV 文件。

接下来,必须有某种形式的文档来发现和理解可用的数据产品。一个简单的策略可以是一个 wiki 页面,其中包含一组预定义的元数据,例如数据产品的所有者、位置 URL 和 CSV 字段的描述。

以安全方式 访问实际数据产品的统一方式可能是在 AWS IAM 中使用基于角色的访问,由域团队管理。

隐私和合 等全球政策也很常见。考虑保护个人身份信息 (PII) 或特定行业的法律要求。

分析数据

深入分析数据,我们可以看到导致数据产品的数据流。运营数据通常作为某种原始和非结构化数据被摄取。

在预处理步骤中,原始数据被清理并结构化为事件和实体。 事件很小、不可变且高度面向领域,例如OrderPurchasedShipmentDelivered。 实体代表业务对象,例如货物物品,其状态随时间而变化。这就是为什么实体经常被表示为一个快照列表,即历史,最新的快照是当前状态。

在实践中,我们经常会看到手动输入或导入的数据。例如,通过电子邮件作为 CSV 文件或业务代码的文本描述发送的预测数据。

来自其他团队的数据被整合为外部数据。当使用来自其他管理良好的团队的数据产品时,这种集成可能会以非常轻量级的方式实现。在从遗留系统导入数据的情况下,外部区域充当反腐败层 .

发布的数据产品是通过聚合事件、实体、手册和外部数据的子集而得出的。

摄取

领域团队如何将他们的运营数据引入数据平台?根据领域驱动设计原则设计的软件系统包含作为可变实体/聚合和不可变领域事件的数据。

领域事件非常适合被摄取到数据平台中,因为它们代表了相关的业务事实。如果有一个消息传递系统,则可以通过附加一个额外的消息消费者将域事件转发到数据平台。数据可以实时采集、处理并转发到数据平台。通过这种流式摄取,数据在到达时以小批量发送,因此可立即用于分析。由于领域事件已经被很好地定义,除了 PII 数据的重复数据删除和匿名化之外,在清理和预处理方面几乎没有什么可做的。有时,还建议定义和摄取包含仅与分析用例相关的信息的内部分析事件,这样就不必修改域事件。
流式摄取示例:Kafka Connect、Kafka Streams、AWS Lambda

许多业务对象作为实体和聚合保存在 SQL 或 NoSQL 数据库中。它们的状态会随着时间而变化,并且最新的状态只保存在数据库中。具有状态的实体的有力候选者是文章价格客户数据装运状态。对于分析用例,通常需要同时拥有最新状态和一段时间内的状态历史。有几种摄取实体的方法。一种方法是生成并发布onCreate/onUpdate/onDelete 事件每次更改实体时都使用当前状态,例如通过添加 方面 实体监听器 . 然后可以使用流式摄取来摄取上述数据。当更改操作软件不可行时,可以使用更改数据捕获 (CDC)直接监听数据库更改并将其流式传输到数据平台。
CDC 流的示例:Debezium 

最后,可以设置将数据导出到文件并将其加载到平台中的传统预定ELT 或 ETL 作业,其缺点是没有实时数据,在导出之间没有所有阶段更改,并且需要整合导出的数据再次。但是,对于大型机等遗留系统来说,它们是一个可行的选择。

清洁数据

干净的数据是有效数据分析的基础。使用数据网格,域团队负责执行数据清理。他们了解自己的领域,并且可以确定需要处理其领域数据的原因和方式。

摄取到数据平台中的数据通常以其原始的原始和非结构化格式导入。使用列式数据库时,这可能是每个包含 CLOB 的事件的行事件负载的字段,可能是 JSON 格式。现在可以对其进行预处理以获取干净的数据:

  • 结构化:将非结构化和半结构化数据转换为分析数据模型,例如,通过将 JSON 字段提取到列中。
  • 缓解结构变化:当数据结构发生变化时,缓解它们,例如,通过用合理的默认值填充空值。
  • 重复数据删除:由于大多数分析存储系统都是仅追加的,因此无法更新实体和事件。删除所有重复条目。
  • 完整性:确保数据包含约定的时间段,即使在摄取期间存在技术问题。
  • 修复异常值:识别并纠正可能因错误而出现的无效数据。

从实现的角度来看,这些预处理步骤可以实现为投影原始数据的简单 SQL 视图。查询可以通过 公用表表达式 来组织(CTE)并且可以通过用户定义的功能 进行增强(UDF),例如,用于 JSON 处理。作为替代方案,清理步骤可以实现为对主题进行操作的 lambda 函数。可以使用dbt 等框架构建更复杂的管道或 Apache Beam 它提供了高级编程模型,但也需要掌握更多技能。

分析

为了获得洞察力,领域团队查询、处理和聚合他们的分析数据以及来自其他领域的相关数据产品。

SQL是大多数分析查询的基础。它提供了强大的功能来连接和调查数据。数据平台应该高效地执行连接操作,即使对于大型数据集也是如此。聚合用于对数据进行分组,窗口函数有助于跨多行执行计算。笔记本有助于建立和记录探索性发现。
示例:Jupyter 笔记本、Presto

人类在视觉上感知数据、趋势和异常时,会更容易理解它们。有许多出色的数据可视化工具可以构建漂亮的图表、关键绩效指标概览、仪表板和报告。它们提供了一个易于使用的 UI 来向下钻取、过滤和聚合数据。
示例:Looker、Tableau、元数据库、Redash

对于更高级的见解,可以应用数据科学和机器学习方法。这些支持相关性分析、预测模型和其他高级用例。需要特殊的方法、统计和技术技能。
示例:scikit-learn、PyTorch、TensorFlow

数据平台

自助数据平台可能因每个组织而异。数据网格是一个新领域,供应商开始在其现有产品中添加数据网格功能。

从所需的能力来看,您可以区分分析能力和数据产品能力: 分析能力使领域团队能够构建分析数据模型并为数据驱动的决策执行分析。数据平台需要以自助服务的形式摄取、存储、查询和可视化数据的功能。典型的数据仓库和数据湖解决方案,无论是内部部署还是云提供商,都已经存在。主要区别在于每个领域团队都有自己的隔离区域。

更高级的数据网格数据平台还提供了额外的与领域无关的数据产品功能 用于创建、监控、发现和访问数据产品。自助数据平台应该支持领域团队,以便他们可以快速构建数据产品并在其隔离区域的生产中运行它。该平台应该支持领域团队发布他们的数据产品,以便其他团队可以发现它们。该发现需要所有去中心化数据产品的中心入口点。数据目录可以通过不同的方式实现:作为 wiki、git 存储库,或者甚至已经有供应商针对基于云的数据目录的解决方案,例如 Select Star、Google 数据目录或 AWS Glue 数据目录。然而,数据产品的实际使用情况,需要域团队访问、集成和查询其他域的数据产品。该平台应支持、监控和记录数据产品的跨域访问和使用。

更高级的数据平台支持策略自动化。这意味着,与其强制域团队手动确保不违反全局策略,不如通过平台自动执行策略。例如,所有数据产品在数据目录中具有相同的元数据结构,或者 PII 数据在数据摄取期间被自动删除。

有效地组合来自多个域的数据产品,即在几秒钟内进行大型跨域连接操作,确保开发人员的接受度和幸福感。这就是为什么查询引擎对数据平台的架构影响很大的原因. 具有单一查询语言并支持分离区域的共享平台是一个很好的开始方式,因为一切都是高度集成的。这可能是 Google BigQuery,其中包含可通过 Google 数据目录发现的多个项目中的表。在更加去中心化和分布式的数据网格中,像 Presto 这样的分布式查询引擎仍然可以在不导入数据的情况下执行跨域连接,但它们有其自身的局限性,例如,有限的下推要求需要传输所有底层列数据。

赋能团队

支持团队在组织内传播数据网格的想法。在开始采用数据网格时,需要进行大量的解释工作,并且支持团队可以充当数据网格的倡导者。他们帮助领域团队成为数据网格的正式成员。支持团队由在数据分析、数据工程和自助数据平台方面具有广泛知识的专家组成。

支持团队的成员在有限的时间跨度内(例如一个月)作为 内部顾问临时加入领域团队,以了解团队的需求,建立学习环境,提升团队成员的数据分析技能,并指导他们如何使用自助数据平台。他们不会自己创建数据产品。

在他们的咨询活动之间,他们分享学习材料,例如行走骨架、示例、最佳实践、教程,甚至播客。

发表评论

评论列表

暂时没有评论,有什么想聊的?

低代码数据平台BI大屏定制

低代码数据平台BI大屏定制

释放数据潜能,智慧展现新高度。定制低代码数据平台,打造个性化BI大屏,助您实现数据驱动决策。



热推产品-全域低代码平台

会Excel就能开发软件

全域低代码平台,可视化拖拉拽/导入Excel,就可以开发小程序、管理系统、物联网、ERP、CRM等应用

数据网格架构-从工程角度看数据网格最新资讯

分享关于大数据最新动态,数据分析模板分享,如何使用低代码构建大数据管理平台和低代码平台开发软件

大模型技术前沿:揭秘rerank3在大模型领域的应用与意义

一、引言:大模型技术前沿概览 1.1 大模型技术背景与发展趋势 1.1.1 大模型技术的定义与核心特征 大模型技术,作为人工智能领域的一项重要突破,通常指的是利用海量数据训

...
2024-08-28 08:43:50
Langchain中的RouterChain怎么样?全面解析其优势与应用场景

Langchain中的RouterChain怎么样?全面解析其优势与应用场景 一、RouterChain概述 1.1 RouterChain基本概念 RouterChain是Langchain框架中一个至关重要的组件,它扮演着任

...
2024-08-28 08:43:50
深度解析:Langchain中的RouterChain如何高效使用?

深度解析:Langchain中的RouterChain如何高效使用? 一、RouterChain基础概念与功能解析 1.1 RouterChain定义与核心作用 RouterChain在Langchain框架中扮演着至关重要的角

...
2024-08-28 08:43:50

速优云

让监测“简单一点”

×

☺️ 微信聊 -->

销售沟通:17190186096(微信同号)

售前电话:15050465281

微信聊 -->

速优物联PerfCloud官方微信