1. 课程导入
自动驾驶研发本质上是一场以数据为燃料、以算法为引擎的持续迭代竞赛。一辆测试车每天可产生数 TB 的传感器数据,一个中等规模车队一年累积的数据量往往达到 PB 级。如何把这些来自摄像头、激光雷达、毫米波雷达、组合导航、CAN 总线和车端日志的异构数据"存得下、找得到、看得懂、用得好",正是自动驾驶数据湖与元数据治理要解决的核心问题。本课程将围绕这条主线,从存储架构、数据组织、元数据建模、血缘追踪、质量治理到合规与成本优化,构建一套可落地的工程方法论。
一、学习目标:从"能存"到"可治理"
本课程的学习目标分为四个层次,逐层递进:
- 认知层:理解数据湖、数据仓库、湖仓一体(Lakehouse)在自动驾驶场景下的差异与适用边界,明确元数据、数据血缘、数据资产目录等基础概念。
- 架构层:掌握面向多传感器、多车型、多采集批次的数据湖分层架构,包括原始层、清洗层、标注层、特征层与服务层。
- 治理层:能够设计元数据模型,落地数据集版本管理、Schema 演进、数据质量校验与访问审计。
- 工程层:能够使用对象存储、表格式(如 Iceberg、Hudi、Delta Lake)、元数据服务与调度工具,搭建可运行的数据湖原型。
二、核心概念:数据湖、元数据与治理三角
自动驾驶数据湖不是简单的"大硬盘 + 文件夹"。它是一套存储、计算、元数据、权限四位一体的系统。其中,元数据治理是让数据湖从"数据沼泽"走向"数据资产"的关键。核心概念可以归纳为以下三角关系:
- 数据实体:原始 rosbag、MCAP、视频片段、点云帧、标注文件、特征向量、模型检查点等。
- 元数据:描述数据的技术元数据(格式、大小、Schema、时间戳)、业务元数据(场景标签、天气、道路类型、采集城市)和操作元数据(血缘、版本、权限、质量分)。
- 治理策略:生命周期管理、分级存储、脱敏合规、质量门禁、成本配额与访问审计。
三者相互依赖:没有元数据,数据实体无法被检索和信任;没有治理策略,元数据会迅速腐化,最终失去参考价值。
三、整体框架:从车端到训练平台的数据链路
下图展示了自动驾驶数据湖的端到端整体框架。数据从车端采集开始,经过回传、入湖、解析、标注、特征生产,最终服务于模型训练与仿真回放;而元数据服务贯穿全链路,负责登记、追踪、校验与检索。
该框架的关键在于:元数据不是事后补录的文档,而是数据流水线的一等公民。每一次入湖、解析、标注、特征生成,都应同步写入元数据,形成可追溯的数据血缘。
四、行业背景:为什么现在必须做数据治理
过去几年,自动驾驶行业从"堆数据"转向"精数据"。原因有三:其一,数据成本高企,PB 级存储与回传费用成为研发预算的重要支出;其二,监管趋严,数据脱敏、跨境传输、个人信息保护对数据使用提出硬性要求;其三,模型迭代依赖数据质量,长尾场景的挖掘效率直接决定算法上限。行业实践表明,缺乏元数据治理的数据湖,数据检索命中率往往不足 30%,而经过治理的数据湖可将有效数据发现效率提升数倍。
五、典型场景与常见误区
以一个真实研发场景为例:某团队发现城市 NOA 模型在雨天夜间场景下误检率上升。若数据湖具备完善的元数据,工程师可以按"天气=雨、光照=夜间、道路=城市"快速检索出相关数据集,并通过血缘定位到这些数据来自哪几个采集批次、经过哪些清洗与标注版本,从而判断是数据覆盖不足还是标注偏差。
六、课程知识地图速览
| 模块 | 核心问题 | 关键产出 |
|---|---|---|
| 数据湖架构 | 数据如何分层、如何选型存储与表格式 | 分层架构图、存储规范 |
| 元数据建模 | 用什么模型描述数据实体与关系 | 元数据 Schema、资产目录 |
| 血缘与版本 | 数据从哪来、到哪去、如何回溯 | 血缘图、数据集版本策略 |
| 质量与合规 | 如何校验质量、如何满足监管 | 质量规则、脱敏与审计方案 |
| 工程落地 | 如何用工具链把方案跑起来 | 可运行的数据湖原型 |
下面是一段典型的元数据登记示例,展示了入湖时同步写入技术元数据与业务元数据的基本结构:
{
"dataset_id": "city_noa_2024_rain_night_001",
"storage_uri": "s3://ad-lake/raw/city_noa/2024/06/15/",
"format": "mcap",
"size_gb": 128.6,
"sensors": ["camera_front", "lidar_top", "radar_front", "gnss"],
"business_tags": {
"weather": "rain",
"lighting": "night",
"road_type": "urban",
"city": "shanghai"
},
"lineage": {
"source_batch": "fleet_sh_0615",
"pipeline_version": "ingest-v2.3"
},
"quality_score": 0.92,
"owner": "perception-team"
}
从这段结构可以看出,元数据治理并不是抽象概念,而是由一个个具体字段、标签、版本号和责任人构成的工程实践。掌握这些字段的设计与维护方法,是后续所有章节的基础。