DataOps:当「运维」的对象是数据
DataOps:当「运维」的对象是数据
1. 这一章讲什么
这是全书的收官章,回答书名里「数据科学视角」的那一半:DevOps 管应用的生命周期;数据密集型应用——YouTube、Spotify、Google Maps、Flipkart 这个量级——的核心资产和核心麻烦都是数据,它们的生命周期(采集→存储→处理→消费)需要同样一套协作、自动化、监控的纪律,这就是 DataOps。章末把镜头拉远,盘点整个 DevOps 家族变体。
2. 顶层全景
数据生命周期: 数据源与采集(批 vs 流)→ 存储与处理(数仓/数据湖/湖仓;批处理 vs 流处理)→ 消费(报表/推荐/告警 → 数据产品)
DataOps 四血源: Agile(迭代交付数据) + TQM(人人对数据质量负责) + 精益(只处理要处理的数据) + DevOps(自动化与 CI/CD)
DevOps 家族: DevOps(应用) → DataOps(数据) / DevSecOps(安全) / MLOps(模型) / GitOps(声明式部署) / FinOps(成本)3. 核心原理
3.1 什么算「数据密集型」:量级的差别,不是种类的差别
书里用一对电商对比切题:ABC.com(不到 50 个商品)和 Flipkart(1.5 亿件商品、80 多个品类、35 PB 数据、几百个微服务和数据管道)做的是同一类生意,但后者必须有专门的计算存储环境、实时处理模块和健壮的数据架构——前者不需要1。特征清单:大数据五 V(体量大、种类多、速度快、真实性、价值)、高吞吐 I/O、分布式架构、容错与冗余、横纵两向可扩、覆盖数据全生命周期2。
3.2 数据密集型应用的四大挑战(全是「数据」的病,不是「代码」的病)
用 Netflix 推荐系统做贯穿例子3:
- 数据错误(data errors):日志时间戳错了、同一次观看记了重复多条——「看了一半的电影被记成看完」,推荐就跑偏;
- 坏数据(bad data):元数据缺类型、年份错、演员表不对——喜剧片被标成惊悚片推给你;
- 数据管道的无尽维护:数据源、格式、下游需求永远在变;业务扩展到新地区,元数据标准和用户行为模式又不同,管道逻辑和配置要不断改;
- 数据格式不优化:元数据存成 CSV,查询慢、存储贵——换成 Parquet/Avro 这类列式格式快得多。
3.3 数据生命周期三段(主线例子:Netflix 推荐)
采集:批摄入(定时大块,如交易日志)vs 流摄入(实时,如传感器、社交 feed);来源从关系库到 IoT 到第三方 API4。
存储与处理:三种存法——数据仓库(结构化、服务 BI 分析)、数据湖(原始格式全收,结构/半结构/非结构)、湖仓一体(lakehouse)(两者合体,不用搬数据就能分析);处理也分两路——批处理(定时聚合报表)和流处理(欺诈检测这类实时场景);处理完的结果存进专用系统:特征(供模型做判断的输入数据)库(feature store,供 ML)、数据目录(记血缘和上下文)、实时存储(Redis 这类低延迟)5。
消费:Tableau/Power BI 出报表、推荐引擎实时用特征、打包成「数据产品」(推荐、反欺诈、动态定价都是)。Netflix 的完整走法:内部库 + API + IMDb 第三方数据 → 清洗去重 → 湖仓混合存储 → 聚合成「每类片观看时长」等指标、归一化时区 → ML 建模 → 推荐上线6。
数据团队五个角色7:数据工程师(建管道,产高质量数据)、数据分析师(查询+看板,紧贴业务)、数据科学家(建 ML 模型,供分析师工具)、数据架构师(定蓝图,工程师照图施工)、开发/生产团队(把数据功能接进应用、盯线上)。数据治理回答角色边界之外的问题:谁拥有哪份数据?访问权限怎么给?质量标准和审计怎么办?合规(GDPR/HIPAA)怎么满足?8
3.4 DataOps 本体
三个定义并排9:Eckerson 说它是「一种心态」(持续打磨数据管理与交付的习惯);Gartner 说它是「数据管理协作实践」;DataOps Manifesto 说目标是压缩「数据→洞见」的转化时间。
它治的三个老毛病10:数据孤岛与碎片化(各部门各存各的,靠中心化存储 + 标准 API + 元数据追踪治);目标总在变(瀑布式数据项目遇到中途改指标就得返工,靠敏捷迭代 + 参数化管道治);人工流程疲劳(ETL、校验、监控全靠手,靠 Airflow/Prefect/Databricks/Dagster 这类编排工具治)。
四条血脉11:Agile(DevOps 交付功能,DataOps 交付干净、及时的数据增量);TQM(餐厅类比:好食材、按菜谱、出菜前试味、吃完听反馈——数据质量人人有责);精益制造(不要每天重算全量销售数据,只处理新增和变更——just-in-time 的数据);DevOps(直接借用 CI/CD、IaC、自动化测试)。
实施六要点12:给数据加逻辑测试(如 join 前后行数比对,防悄悄丢数据/重复);一切进 VCS(脚本、配置、参数、甚至看板设置);多环境(本地开发→staging→生产,资源不够就用数据子集);参数化(周报表格别写死日期,传参);复用(一个清洗脚本供销售分析/反欺诈/推荐三条管道共用);容器化(笔记本上开发的转换脚本,容器封装后云上行为一致)。
自己的复杂度13:沙箱管理(和生产线隔离的试验环境 + 脱敏(把敏感信息抹掉)/合成数据(人工造的数据)子集 + A/B 测试(把用户随机分两组,对比两个版本));测试数据管理(TDM——医院系统测试要用病人数据怎么办?脱敏「John Doe」→「Test Patient 1」、随机抽样子集、定期刷新、合规校验、数据版本化)。
工具三样14:Apache NiFi(拖拽式数据管道,几百个处理器:路由、转换、溯源、加密;吃文件/数据库/Kafka/IoT/邮件全行);Databricks(建在 Spark 上的云分析平台,数据工程+ML 一体,支持 Python/SQL/Scala/R);IBM Databand(数据可观测性:盯 Airflow/Databricks 作业延迟与异常,血缘追踪定位故障根因)。
3.5 DevOps 家族全景
| 变体 | 往 DevOps 里加了什么 | 书里的一句话标志 |
|---|---|---|
| DataOps | 数据管道的协作/自动化/可观测 | 数据质量与血缘 |
| DevSecOps | 安全左移,取代「安全当闸门」 | Equifax 2017 年泄露 1.47 亿人数据:补丁早发布了几个月,就是没人打上15 |
| MLOps / AIOps / ModelOps | ML 模型部署与监控 / AI 辅助 IT 运维 / 全部模型的治理合规 | 三兄弟分工:管模型生命周期 / 管运维智能化 / 管治理 |
| GitOps | Git 当唯一事实源,集群自动对齐 | 有人手改生产环境,工具检测到偏离就改回去;回滚 = revert 一次 commit16 |
| FinOps | 云账单也是运维对象 | Citrix 调查:43% 的 IT 负责人觉得上云比预期贵;成本可视化 + 自动省钱(竞价实例、闲置关停)17 |
4. 作者的判断与证据
有出处的:Flipkart 的 1.5 亿商品/35 PB 有官方博客来源1;DataOps 定义引 Eckerson、Gartner、DataOps Manifesto 三处9;Equifax 事件是公开事实15。
作者的判断:「DataOps 是 DevOps 的变体而非替代」「DevOps 家族会继续裂变」是观察性结论;工具选型(NiFi vs Databricks vs Databand)给了清晰的分工依据(摄入/处理/可观测),这部分写得比前面几章的工具推荐更有分寸。
我们的补充:「数据契约(data contract)」「数据 mesh」等 2023 年后的数据架构思潮未出现(补充,不在书里);MLOps 与 DataOps 的交叠(特征库、模型数据血缘)本章只在工具清单里暗示。
5. 边界与局限
- 数据质量的具体技术(schema 校验、 Great Expectations 类工具)只在「加逻辑测试」一条带过。
- 流处理引擎(Kafka/Flink/Spark Streaming)只在名词层出现。
- 各变体(DevSecOps/MLOps/GitOps/FinOps)各一小节,是导览而非教程——书末自己也说这是给读者指路的。
- 数据治理一节的工具列表偏 IBM 系。
6. 可带走的
- 「数据密集型」由数据量级界定:同样的电商,35 PB 就需要专门的数据架构与 DataOps1。
- 数据应用的四大病:错误数据、坏数据、管道永动维护、格式不优——全是数据侧,不是代码侧3。
- 数据生命周期:采集(批/流)→ 存储(仓/湖/湖仓)+ 处理(批/流)→ 消费(数据产品)45。
- DataOps 治三病:孤岛(中心化+标准 API)、目标漂移(敏捷+参数化)、人工疲劳(编排工具)10。
- 实施六要点:数据逻辑测试、全进 VCS、多环境、参数化、复用、容器化12。
- 测试数据管理五招:脱敏、抽样子集、定期刷新、合规校验、版本化13。
- DevOps 家族一行一个:DataOps 管数据、DevSecOps 管安全左移、MLOps 管模型、GitOps 管声明式部署、FinOps 管账单151617。
7. 原文地图
| 主题 | 原书章 | 原文位置 |
|---|---|---|
| Flipkart vs ABC 量级对比 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1013(搜「150 million items」) |
| 数据密集型特征 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1032(搜「variety, velocity, veracity」) |
| 四大挑战(Netflix 例) | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1097(搜「Data errors」) |
| 数据生命周期三阶段 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1151(搜「Key stages」) |
| 批摄入 vs 流摄入 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1175(搜「batch ingestion」) |
| 存储三选与结果存储 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1187(搜「data lakehouse」) |
| 五角色与治理 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1292(搜「Participants in the data team」) |
| DataOps 三定义 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1390(搜「state of mind」) |
| 三老病与对策 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1414(搜「lives in a silo」) · text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1435(搜「manual process fatigue」) |
| 四血脉(Agile/TQM/精益/DevOps) | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1522(搜「Total Quality Management」) |
| 实施六要点 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1557(搜「Key points in DataOps」) |
| 沙箱与测试数据管理 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1607(搜「Sandbox management」) |
| 三工具(NiFi/Databricks/Databand) | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1648(搜「drag-and-drop」) |
| Equifax 与 DevSecOps | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1766(搜「Equifax」) |
| GitOps 机制 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1813(搜「single source of truth」) |
| FinOps 三原则 | 4-Advanced topics and data science perspective | text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1820(搜「43% of IT leaders」) |
Footnotes
-
出处:「DataOps」第 1012–1023 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1013,搜「150 million items」;:1018搜「35 petabytes」)。 ↩ ↩2 ↩3 -
出处:「DataOps」第 1030–1068 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1032,搜「variety, velocity, veracity」)。 ↩ -
出处:「DataOps」第 1090–1127 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1102,搜「logged multiple times」;:1111搜「comedy movie as a thriller」)。 ↩ ↩2 -
出处:「DataOps」第 1160–1177 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1175,搜「batch ingestion」)。 ↩ ↩2 -
出处:「DataOps」第 1179–1213 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1187,搜「data lakehouse」;:1204搜「feature stores」)。 ↩ ↩2 -
出处:「DataOps」第 1228–1290 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1244,搜「personalized content recommendations」)。 ↩ -
出处:「DataOps」第 1292–1350 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1299,搜「data engineers」)。 ↩ -
出处:「DataOps」第 1352–1376 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1358,搜「framework of policies」)。 ↩ -
出处:「DataOps」第 1386–1400 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1390,搜「state of mind」;:1391搜「Gartner」)。 ↩ ↩2 -
出处:「DataOps」第 1410–1444 段(silo
:1415;目标漂移:1424;人工疲劳:1436)。 ↩ ↩2 -
出处:「DataOps」第 1507–1555 段(TQM 餐厅类比
:1527;精益:1538搜「just-in-time」(text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1538))。 ↩ -
出处:「DataOps」第 1557–1600 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1566,搜「before and after a join」)。 ↩ ↩2 -
出处:「DataOps」第 1602–1635 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1625,搜「Test Patient 1」)。 ↩ ↩2 -
出处:「DataOps」第 1637–1685 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1648,搜「drag-and-drop」)。 ↩ -
出处:「DataOps」第 1758–1774 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1766,搜「Equifax」)。 ↩ ↩2 ↩3 -
出处:「DataOps」第 1800–1815 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1811,搜「detects the deviation and reverts it」)。 ↩ ↩2 -
出处:「DataOps」第 1817–1829 段(
text/17-ch04-4-advanced-topics-and-data-science-perspective.txt:1820,搜「43% of IT leaders」)。 ↩ ↩2