Data Mesh 关键组件:数据产品如何改变企业运营?

2023-12-05 09:40:34 浏览数 (1)

在数据网格系列的上一篇文章中,我们研究了数据网格的四个原则。让我们更深入地探讨其中一个原则:数据即产品。我们将回顾什么是数据产品、它们如何改进数据发现和治理以及如何创建它们。

什么是数据产品?

数据产品是直接解决客户或业务问题的数据容器或数据单元。

作为可交付成果,数据产品可以像报告一样简单,也可以像新的机器学习模型一样复杂。数据产品还将包含消费所需的任何元数据,例如 API 合同和文档。

在数据网格架构中,数据域团队拥有自己的数据和所有相关流程。将数据产品视为领域团队的主要可交付成果。

数据产品的属性

那么,是什么让某些东西成为“数据产品”而不是一堆数据呢?

数据产品具有一组核心属性,使它们有别于简单的数据。数据产品应该是:

·可发现的

·可寻址

·值得信赖且诚实

·自我描述

·可互操作

·安全且受监管

让我们详细看看每个属性。

可发现的 数据产品应该很容易找到——例如,通过在数据目录中集中注册来跟踪整个公司的数据产品。

可发现性解决了在公司内查找相关的高质量数据的长期问题。Coveo 的一项调查发现,员工每天花费多达 3.6 小时搜索相关信息。对于每天花费 4.2 小时的 IT 专业人员来说,统计数据更糟。

提高数据可发现性可以减少或消除这种浪费的开销,并确保团队可以立即开始创建新的数据产品。例如,想要构建产品推荐引擎的团队可以使用可发现性工具(例如 dbt 的本机文档和沿袭功能)来查找组织保存过去客户订单的匿名数据集的位置。一旦发现,他们可以请求对数据集的许可,然后创建自己的数据管道以将其转换为他们需要的格式。

可寻址

可寻址意味着数据产品具有唯一的标记位置,数据团队可以从中检索资产。

寻址格式将根据资产的不同而有所不同。对于数据库表,这可能由服务器名称、端口号和模式/表路径组成。对于合作伙伴导出的数据,它可能是存储在 Amazon S3 存储桶中的Parquet或 CSV 文件。唯一的要求是该地址唯一地标识该资产,并且具有适当权限的任何人都可以按需检索该资产。

值得信赖且诚实

在一项针对 220 名数据治理专业人员的调查中,46% 的人表示对数据质量的担忧阻碍了数据的使用。即使员工可以找到数据,如果他们不信任它,他们也不会使用它。

数据产品可以通过提供有关数据的基本问题的自助式答案来帮助提高人们对数据的信心:

·谁拥有该数据集?

·更新频率是多少(例如,近实时、每天 x 次、每 24 小时、每周)以及最后一次更新是什么时候?

·数据所有者采取什么程序来清理和验证数据?

·数据经过测试了吗?

数据合同还通过确保数据产品满足特定的结构和标准来帮助增强数据产品的可信度。

自我描述

没有附带元数据的数据的一个局限性是,很难弄清楚它的含义或它存在的原因。相比之下,数据产品提供了一些机制来描述它们提供的数据、其格式、其预期业务目的以及任何其他相关的使用信息。

用于创建自描述数据产品的技术的一个很好的例子是dbt 数据模型。模型在 dbt 中的作用不仅仅是指定如何转换数据。他们还可以描述每个模型的数据以及它与公司其他模型的关系。这为其他希望在项目中利用数据的团队提供了关键信息。

另一个例子是数据模型合约。契约指定了数据模型遵循的一组约束。团队可以在需要进行重大更改时对合同进行版本控制,从而使相关团队有时间从旧模型过渡到新模型。

可互操作 公司内的数据产品应该是可互操作的——即提供与其他数据产品无缝协作的机制。这项工作的一部分涉及组织通用概念(例如“客户”、“产品”)的标准化。另一部分涉及定义应用程序编程接口(API)和数据格式,以实现跨团队和部门的数据交换。

安全且受监管

最后,数据产品应利用联合计算治理来确保安全性和合规性。所有数据在静态和传输过程中都应加密存储,并通过强大的“零信任”权限模型进行保护。公司还应该制定全球规则和标准,对敏感数据(例如客户的个人身份信息(PII))进行分类和限制访问。

为什么我们需要数据产品? 将数据视为“数据产品”颠覆了大多数团队处理数据的方式。

传统上,该行业关注的是技术方面的数据(数据存储在哪里?如何处理?)。数据产品将重点放在人员、流程和交付业务价值上。重点较少放在用于交付数据的技术上,而更多地放在如何打包并交付给最终用户的方式上。

以这种方式思考数据可以解决大规模处理数据的三个长期问题。

可发现性

数据产品定义了记录、编目和发现数据的标准。如果没有这样的标准,公司最终会得到数 TB 的未充分利用的业务信息。这种所谓的“暗数据”可能占公司数据资产的一半以上。这些数据不仅不会产生收入,而且还会花费公司在存储和计算方面的资金来维护这些数据。

访问控制 数据产品可以帮助公司标准化敏感数据的访问控制机制。例如,在 dbt 中,您可以为数据模型指定公共、私有和受保护的访问级别。通过清楚区分公司感兴趣的数据和团队内部的数据,可以提供更高的安全性。

向后兼容性

如果没有数据产品,团队通常不会发布详细的文档或合同来指定他们向其他人公开哪些数据。这意味着,当他们进行更改时(例如,删除列、更改字符串中的数据格式),无法将此信息传达给下游消费者。这最终会破坏依赖于数据的报告和应用程序。

数据产品提供了围绕其数据结构的定义。这使得团队能够发布和支持其数据产品的多个版本。意外报告和管道错误的减少可以节省时间和金钱。

如何定义和部署数据产品

从架构上来说,数据产品由多个组件组成。其中最重要的是数据规范和数据契约。

数据规范是一个或多个人类和机器可读的文档,用于定义数据格式、数据定义、访问策略和数据转换。

数据契约是给定版本的数据产品的行为保证。您可以将它们视为面向服务的软件架构中的 API。

合约保证该版本的数据产品的输出将始终返回一致的结果。这是因为合约是一种机器可读的规范,可用于测试和验证。例如,集中式质量管理系统(例如,数据目录)可以在提交新数据产品时针对数据域团队的部分数据运行合同。

构成数据产品的其他资产包括:

·测试。根据代表性数据 验证模型有效性的代码。

·版本控制:利用 git 签入并跟踪数据定义、合同和数据管道代码的更改。这用于记录更改并在需要时回滚到以前的版本。

·数据存储:对象文件存储、RDMBS/NoSQL 数据库表、数据仓库、数据湖等,用于保存原始数据和转换后的数据。

·编排管道。转换数据、运行测试以及将更改部署到一个或多个环境的计算过程。

·额外的可交付成果。构成数据产品的任何其他工件,例如报告和指标。

在数据网格架构中,集中式数据平台团队通常会提供自助服务方法,使数据域团队能够提供新数据堆栈的元素并初始化其域。这确保每个团队都根据相同的标准并使用一致的工具集开发数据产品。

配置完成后,数据域团队将开发模型、权限、测试、ELT流程、报告和构成其数据产品的其他可交付成果。经过广泛的测试,团队将其初始版本发布到数据目录。注册包括数据模型、当前合同规范、数据产品的地址以及注册表所需的任何其他元数据等信息。

注册后,数据域团队将解决注册表检测到的任何安全和合规性问题。从那里,其他团队可以在他们的工作流程中发现和使用数据产品。

当数据团队需要引入重大更改时,它会创建具有新版本的新合约并将其发布到注册表。它还提供了废弃先前合同的“生命周期结束”日期。注册中心可以使用数据沿袭信息来通知下游数据产品的所有者即将发生的更改。

数据产品代表了一种新的、以消费者为导向的数据思维方式。通过将数据容器视为模块化、独立的可交付成果,公司可以增强数据发现、加强数据安全性并减少成本高昂的返工。这降低了创建新的数据驱动产品的障碍,并开辟了一个充满新商机的世界。

原文链接:https://www.getdbt.com/blog/key-components-of-data-mesh-creating-and-managing-data-products

0 人点赞