什么是数据合同?

数据合同,定义

数据合同是数据生产者和数据消费者之间的正式协议,规定了数据质量、结构、语义和可用性。制定和执行这些协议有助于企业强化数据驱动的决策能力

 

与传统商业合同一样,数据合同包含管理一方向另一方交付内容的条款和条件。在数据合同中,这可能包括数据质量规则架构定义、服务级别协议、数据生产者信息和服务器信息等组成部分。

然而,数据合同的真正不同之处在于,它们是用代码编写的,因此,这些协议可通过自动化而非手动流程来执行。

业内将数据合同对数据工程的影响类比为应用程序编程接口 (API)软件开发的影响。API 定义的规则使软件应用程序能够相互通信,而数据合同定义的规则则使数据消费者能够成功整合和使用各类来源的数据。

正如 API 有效提升了生产力并加快软件开发的创新步伐,成功推行数据合同也能为企业和数据用户带来诸多益处。

其中最关键的作用是防范数据管道故障。如果没有数据合同,上游数据生产环节发生变更,可能会给下游用户带来灾难性后果。数据合同可以确保此类重大变更在影响数据消费者之前,就被及时发现并处理。

数据合同的其他优势包括优化数据质量、完善数据治理并提升可扩展性。数据合同还为数据产品数据网格架构提供基础支撑,助力业务用户在整个组织内挖掘数据并释放数据价值。

目前有多种工具和平台可协助企业制定并执行数据合同,包括数据质量工具和数据治理平台。

为什么数据合同很重要?

脆弱易损的数据管道是许多数据工程师面临的一大难题。一项研究发现,超过半数的工程师每月至少会遇到一次甚至多次数据系统管道故障。1

正如一位数据架构师所言,很多数据管道都只是靠临时方式勉强维系。一旦出现故障,就会严重影响决策工作与人工智能 (AI) 相关项目的推进。

数据合同可以直击管道故障的常见诱因,也就是数据生产者和数据消费者之间的数据不一致,以此规避上述问题。当数据生产者提供的新数据无法满足消费者预期时,就会出现数据不一致的问题。消费者往往需要依靠特定数据类型、架构及其他约束来匹配自身用例。

IBM 终身冠军 Jean-Georges Perrin 表示,下游使用者难免会“对所获取数据的稳定性心存疑虑”。“想要建立信任,数据生产者或数据所有者必须作出承诺并予以兑现。”Perrin 写道

无论是针对数据质量、数据校验、访问权限还是数据架构的相关承诺,都可通过推行数据合同来落地保障。当数据生产者和数据消费者就数据要求达成共识并明确界定规则后,就能在数据质量问题影响下游工作流之前提前规避。

数据合同在 AI 工作流中发挥着愈发重要的作用,因为保障模型训练与数据分析所用数据的合规性,是实现精准预测的关键。

“系统中的数据质量得到提升,也就不会出现劣币循环的问题。”Perrin 说道。

数据生产者和数据消费者:主要区别和角色

由于数据生产者与消费者之间的数据不一致是催生数据合同的主要原因,因此深入了解这两类群体及其在数据生态系统中的职责十分有必要。

  • 数据生产者大多为软件工程师,他们在开发应用程序的过程中完成数据采集与存储工作。这些数据通常包含客户订单等交易类信息,这类数据在架构、体量、内容等方面往往差异极大。2

  • 数据消费者分为技术类使用者与非技术类使用者。前者包括数据工程师、数据科学家以及其他数据团队人员,他们借助编程语言处理、分析数据并搭建数据管道;后者即业务人员,依靠处理后的数据制定决策。

数据消费者需要依靠数据生产者提供数据,支撑下游业务开展。但这种依存关系,本身并不能让双方建立稳固的协作关系。这是因为数据生产者通常会按照适配自身应用程序的格式存储数据,并不会主动考虑下游使用者的数据管理需求。

因此,软件工程师在更新应用程序和代码时,往往不会考量这些变更会对最终交付给数据消费者的数据造成何种影响。

当这类变更毫无预兆时,即使是从 1,000 列的数据表中删除一列这类微小调整,也会给数据消费者带来混乱。这类所谓的重大变更会中断数据流,影响数据集的兼容性。

最终会出现脚本运行异常、仪表板数据失效或失真等问题,工作人员与 AI 智能体也无法获取支撑核心决策和业务运转的可靠数据。

通过在数据生产者与数据消费者之间订立明确协议,数据合同能够打破双方之间的信息孤岛,规避数据不一致问题,保障数据管道稳定运行。

数据合同包括哪些内容?

正如业内从业者所言,数据合同将隐性约定转化为显性保障,详细界定了数据生产者需要向数据消费者交付的数据内容,以及对应的交付标准。数据合同的关键要素包括:

  • 基础信息
  • 模式
  • 数据质量
  • 支持渠道
  • 定价
  • 团队
  • 角色
  • 服务级别协议 (SLA)
  • 基础架构和服务器

基础信息

基础信息部分(也称作背景信息)涵盖合同的各项基本内容。具体包含唯一标识符、合同版本(例如 1.0 或 2.0)、合同状态(例如“有效”或“已停用”)、数据使用目标以及数据使用相关法律约束。

模式

模式定义详细说明了数据的组织形式。它针对各类数据类型,明确对象(表、文档等数据结构)、对象属性(如表中的列)以及时间戳、字符串长度限制等元数据。模式注册表是用于统一管理各类模式的集中存储库,可为数据合同的落地提供支撑。

数据质量

数据合约定义了相关规则与参数,以保障数据质量。合同可针对多项数据质量指标作出规范,包括准确性、完整性、有效性以及空值数量。此外,自定义规则可配合数据质量工具完成质量检测工作。

支持渠道

数据合同可以为在数据合同方面需要帮助的数据消费者列出支持来源,例如 Slack 频道、Teams 频道、Discord 聊天、电子邮件分发列表和网站。

定价

数据合同的定价部分列出了数据消费者使用数据产品所需支付的费用。它可以包括所使用的货币以及可用于计算成本的计量单位(如兆字节或吉字节)。

团队

在一些较早的数据合同模板中,团队部分被称为“利益相关者”,数据合同的团队部分包含了拥有数据的团队成员及其与数据合同的关系信息。

角色

数据合同的角色部分列出了为数据消费者提供不同类型的数据集访问权限(例如读取或写入权限)的角色。

服务级别协议 (SLA)

数据合同包括服务级别协议的描述,该协议定义了提供商应达到的性能水平。例如,SLA 章节可能会列出数据可用时间与保留时长的相关保证。

基础架构和服务器

指定数据的服务器(例如 Kafka、Microsoft SQL、Google BigQuery 或 IBM Db2)可以让数据消费者发现数据,同时为平台工程师提供自动化访问所需的信息。此部分还可以包含有关不同环境的信息,例如开发和生产。

除了核心数据合同价值外,利益相关者还可以为数据合同添加自定义属性以满足其具体需求。热门数据合同模板的最新版本还能记录属性之间的关系、引用外部合同以及访问预定义数据质量规则库以进行一致的质量检查。

数据合同的格式是什么?

数据合同与其他合同的显着区别在于,它们并非以通俗易懂的语言编写。相反,它们通常用 YAML 或 JSON 编写,这些语言是人类和机器可读的数据序列化语言。(对于不熟悉编码序列化语言的用户,可以在 Excel 中编写数据合同,并通过开源工具 Data Contract CLI 转换为 YAML 文件。)

使用序列化语言编写数据合同的优势在于,它可以用自动化取代繁琐的手动流程。机器可读的数据合同可以整合到数据平台和执行工具中。组织可以部署这些解决方案来测试数据集是否遵守数据合同规则,以便在问题导致管道故障之前解决问题。

数据合同是如何设计的?

许多数据合同基于开放数据合同标准版 (ODCS)。顾名思义,ODCS 是一个用于标准化数据合同的开源框架。该标准由采用 Apache 2.0 许可的 Linux Foundation AI & Data 沙盒项目 Bitol 定义,并可在 GitHub 上获取。

该倡议的支持者表示,它有助于促进创新,因为它允许组织实施支持其数据架构的数据合同,而无需承担供应商锁定的风险。

数据合同有哪些优点?

数据合同可以解决数据管道中的多个痛点,为组织解锁数据资产的价值。数据合同的优势包括:

提高数据质量

业界有这样一句共识,被衡量的事物才能被有效管理。在数据合同中设定准确性有效性、及时性和其他数据质量指标的标准可以提高所交付数据的质量,同时减少延迟。

提高依赖关系的透明度

数据合同可描绘互连任务之间的关系或依赖关系。通过澄清此类依赖关系,数据生产者可以避免进行重大更改。

改进变更管理

数据合同受版本控制,这意味着创建合同的新版本以反映重要变更。这可以帮助生产者以“安全”的方式引入修改,例如架构变更,让消费者有时间适应这些变化,从而降低管道突然中断的风险。

加强合作

数据合同的签订过程有利于数据生产者和消费者之间的沟通与达成共识。合同一旦制定完成,即可作为继续合作的基础,因为版本控制可以适应不断变化的数据和需求。

加强问责体系

数据合同描述了利益相关者与数据之间的关系,包括谁拥有数据、哪些角色可以访问数据以及用户如何获得支持。合同有助于明确谁负责什么,以进一步落实问责制。

数据治理

数据合同可以视为一种数据治理工具,因为它们反映并执行了关键的治理目标,例如在整个数据生命周期中确保数据质量、安全性和可用性。

更轻松的可扩展性

通过支持数据治理和协作,数据合同可以帮助组织和业务部门成功共享数据,即使数据量以前所未有的速度增长。

AI Academy

数据管理是生成式 AI 的秘诀吗?

深入了解为什么高质量数据对于成功使用生成式 AI 至关重要。

数据合同、数据产品和数据网格

在围绕数据产品和数据网格的讨论中,经常会提到数据合同。这是有充分理由的,数据合同在支持这两种技术中发挥着关键作用。

我们先从数据产品开始。一个数据产品是一个可重复使用的独立包,它将数据元数据语义和模板结合在一起,以支持不同的业务用例。数据合同可以作为数据产品的“质量控制”,确保其中的数据一致、可靠且格式正确。

Perrin 用家族式术语描述数据产品和数据合同之间的关系:“数据合同和数据产品就像密不可分的表兄弟,始终协同工作,始终保持一致,始终确保顺利运行。”

数据合同对数据产品的重要意义,也使得它们对数据网格的功能至关重要。数据网格是一种去中心化的数据架构,按业务领域组织数据,例如市场营销、销售或客户服务。

在数据网格架构中,域数据生产者使用数据产品,使业务用户能够从组织的不同部分查找并使用数据。因此,当数据合同保障了数据产品的性能时,它们就支持了整个数据网格的成功。

如何实施和执行数据合同?

《数据合同》一书中,数据专家 Chad Sanderson、Mark Freeman 和 B.E. Schmidt 描述了以下数据合同的运作流程。3

  • 数据消费者会明确自身的数据需求,以满足业务目标。

  • 技术数据消费者将业务需求转化为对数据的技术要求。

  • 数据消费者根据这些要求向数据生产者请求数据合同。

  • 数据生产者确定请求是否可行。

  • 数据合同以代码形式编写,例如 YAML。

  • 当数据生产者需要更改数据资产时,他们会创建拉取请求(一种向存储库提出更改的方法)。

  • 基于数据合同的检查作为 CI/CD 管道的一部分,对请求的变更进行检查,以确保不违反合同条款。

  • 如果变更违反合同,数据生产者会收到警报,触发相应措施以解决违规问题。

数据合同解决方案

组织可以从各种工具和平台中进行选择,来创建和管理数据合同。这类工具包括:

  • 序列化和反序列化数据的开源项目,如 Apache Avro 和 Google Protocol Buffers (protobuf)

  • 数据质量和测试工具,例如 Great Expectations 和 dBT

  • 用于检查模式兼容性的模式注册表,如 Confluent 的注册表

  • 具备数据沿袭追踪和数据目录等功能的数据治理平台

组织的独特需求和现有的数据堆栈可以帮助确定哪些数据合同解决方案或解决方案组合最能支持其数据合同。

作者

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

相关解决方案
IBM® watsonx.data 集成

通过简化的用户体验,将原始数据转化为 AI 就绪数据,支持整合任意类型的数据。

深入了解 watsonx.data integration
数据集成解决方案

利用 IBM 数据集成解决方案,创建弹性、高性能和成本优化的数据管道,以满足您的生成式 AI 计划、实时分析、仓库现代化和运营需求。

深入了解数据集成解决方案
数据和 AI 咨询服务

通过制定适当的战略、数据、安全和治理措施,成功实现 AI 的规模化应用。

深入了解数据和 AI 咨询服务
采取后续步骤

通过多种方式(包括批量处理、实时流和复制)整合结构化和非结构化数据,以免您将时间和金钱浪费在工具切换上。

  1. 深入了解 IBM watsonx.data integration
  2. 深入了解数据集成解决方案
脚注