TheDataOpsManifesto

DataOps质量宣言

多年来,我们与各种规模、各种技术栈的数据团队一起工作,逐渐相信:质量只来自测试,而值得测试的质量是整个交付,不只是数据。完美的数据经过错误的代码、报表或模型,仍然是错误,你的客户分不出区别。我们当过那个天天催数据质量的人。我们盯着行数,心里祈祷。我们做过为期 12 个月的评估,产出一份文件,什么也没修好。我们做过没人打开的仪表板,也在早上 9 点从客户那里听说数据出了问题。我们想要一种方法:在每个环节证明质量,测试无需有人守在键盘前当英雄就能运行,并且能把证据交给有能力修复的人。DataOps 宣言说,质量至上。Data Journey 宣言说,让客户发现问题是不可接受的。这就是我们让两者落地的方式。

签署宣言

通过我们的工作,我们建立了以下价值观:

  • 自动化测试重于希望与手工检查
  • 持续实践重于一次性项目
  • 测量重于意见
  • 自动生成的测试重于手写规则
  • 测试覆盖率重于数据血缘图
  • 生产线上的质量检查站重于终点检验
  • 影响力与证据重于强制命令
  • 今天做到 70%重于某天做到完美

24 条原则,分为六组,外加一条。选择一条即可跳转。

1-4

证据

  1. 1

    只有测过的才算知道

    希望不是测试。业务评审不是,管道跑成绿色也不是。如果没有测试检查过它,你就不知道它是对的。

  2. 2

    测试数据,监控工具

    质量等于数据质量加上流程质量。如果刷新根本没运行,再完美的表也没用;作业显示绿色,也说明不了里面的数字。检查每一个工具的错误和运行时间。

  3. 3

    不做手工检查

    手工检查只在有人想起来时才会运行,而凌晨 2 点没人会想起来。数据每天都在到达,所以每个测试都要在每次加载时自动运行。Data Journey 宣言说得很直白:像躲瘟疫一样避免手工质量测试。

  4. 4

    先测量,再定标准

    先剖析数据,建立测试,让基线告诉你标准应该是什么。让委员会先写标准,之后的每个决定都会被拖延。没有测试结果,你只是又一个有意见的人。

5-6

人

  1. 5

    从一个人开始

    一个有动力的人加上一个免费工具,胜过一个有章程的指导委员会。找到那个天天催数据质量的人,把证据交给他。

  2. 6

    影响力就是工作本身

    发现缺陷的人,很少是产生缺陷的系统的负责人。源数据对它原本的用途来说已经够好,所以它的负责人没有理由去改。让修复变得容易点头。

7-9

测试

  1. 7

    让剖析结果来写测试

    为每张表手写几百个测试,永远写不完。自动生成它们,把你的 SQL 留给只有领域专家才知道的业务规则。

  2. 8

    测试是共享资源

    分析师、数据管理员、工程师和模型都会碰同一条规则,而其中只有一个有 Git 账号。把每个测试和每个结果放在同一个权威数据库里:人通过 UI 访问,代码通过 API 访问,模型通过 MCP 访问。只有一份权威副本,每次变更都进入 Git,以便比对、审查和回滚。

  3. 9

    今天的 70% 胜过某天的完美

    今天下午就上线一个能用的测试。每一轮都会让你更了解自己的数据,标准也会随之一轮轮改进。

10-13

评分与行动

  1. 10

    为重要的东西评分

    没有人会因为一个传真号码字段改变行为。为客户在意的数据元素评分,并为每个客户建立不同的评分。

  2. 11

    每个分数都能追溯到测试

    没有修复路径的分数只是噪音。仪表板上的每个数字都要能追溯到一个测试,由它指出问题,并证明修复有效。

  3. 12

    让行动变得容易

    每个仪表板都有一个具名的客户,和一个能修复数据的具名负责人。在他们已经在用的工单系统里,把问题、影响、复现方法和需要修改的内容交给他们。

  4. 13

    保留趋势线

    一个分数只是一个意见。六个月的分数,挂钩一个你的上级已经在关注的 KPI,就是一笔预算。从两个数字开始:生产环境中的错误数,以及上线一个变更所需的时间。当你要争取更多空间时,趋势线就是你拿出来的证据。

14-19

实践

  1. 14

    爱上你的错误

    每个缺陷都会让你更了解你的数据或流程。在质量圈里一起复盘,修复产生缺陷的那个步骤。怪步骤,不怪人。

  2. 15

    把交付条款写进测试

    数据契约就是双方都同意的一组测试。能运行的条款,胜过无法运行的承诺。

  3. 16

    证明迁移成功

    迁移承诺的是:新系统与旧系统承载同样的事实。测试两边并证明这一点,从行数到列值。

  4. 17

    减少噪音

    一个没人信任的告警比没有告警更糟。调整每个测试,直到每次失败都有意义,并把它发送给能采取行动的人。把每晚都会触发的测试降级,但绝不静音。

  5. 18

    生产环境也归你负责

    部署只是工作的一半,不是终点。总得有人看着生产线,那个人就是你。

  6. 19

    测试代理写出的东西

    一个 AI 代理几秒钟就能交付一个转换,却不会把整条管道记在脑子里。让它起草修复工单和自定义 SQL。它碰过的其他一切,在测试证明之前都算未经测试。

20-24

在每个环节证明质量

  1. 20

    测试… 在源头

    逐表、逐列地证明源数据适合用途。源头不归你所有,所以你的证据必须能说服它的负责人。

  2. 21

    测试… 在接入时

    监控每张表的新鲜度、数据量、结构变更和漂移。你不可能手工盯住 6,000 张表,异常检测可以。

  3. 22

    测试… 在生产中

    在每一层之间设置绊线,发现缺陷就让生产线停下来。不是每次失败都值得停线,所以要事先决定哪些必须停止,哪些只需警告。有人排查期间,生产环境继续使用最后一份已知正确的数据。

  4. 23

    测试… 在开发中

    部署前,用今天的代码去跑昨天生产数据的克隆或切片。重命名一列,就应该有红灯告诉你弄坏了下游哪张报表。在这里发现一个 bug,成本只有客户发现时的百分之一。

  5. 24

    测试… 无处不在,每次都做,全部自动化

    同一个空值检查,在四个地方做四份工作。跳过一个,你就会漏掉那个失败。覆盖每张表、每一列、每个工具,以及客户读到的每一个数字。不做手工测试。

从质量开始 DataOps

DataOps 宣言有 18 条原则,没有人能在某个星期一全部采纳。从自动化数据测试开始。这是成本最低的一步,也是客户最先感受到的一步。编排、CI/CD 和可观测性,全都依赖于知道数据是否正确。

签署 DataOps 质量宣言

如果你宁愿用自动化测试证明质量,而不是寄希望于它,请留下你的名字。

用开源工具实践这份宣言

DataOps TestGen

Profile your data and generate the quality tests automatically. Full coverage in minutes, with no hand-written rules to maintain.

Install TestGen

DataOps Process Observability

Watch every tool and every run from source to the dashboards that depend on it. Catch errors, late arrivals, and bottlenecks before your customer does.

Get Process Observability

阅读其他宣言

The DataOps Manifesto

18 principles for delivering analytics, plus one: start with data testing.

Read the DataOps Manifesto

The Data Journey Manifesto

22 principles for observing the paths your data takes, so you find the problem before your customer does.

Read the Data Journey Manifesto