bg1.引入
从 1 开始的大数据开发
引入
第一性原理:数据是为决策与自动化服务的
任何数据平台最终只做三件事:
采集与可信:把业务系统、日志、传感器的事实搬进来并保证可追溯。
转化与建模:变成可计算、可共享、口径一致的数据资产。
服务与消费:以报表、API、特征、训练样本、告警等形式交付给人或机器。
技术选型是手段;交付物的 SLA(延迟、准确、成本、合规) 才是目标。
业务→数据产品→技术架构 三段论
业务问题(为什么)
↓ 翻译
数据产品(给谁、什么形态、什么 SLA)
↓ 落地
技术架构(用什么组件、怎么运维)
数据产品的常见形态
| 形态 | 消费者 | 典型 SLA | 技术落点示例 |
|---|---|---|---|
| 离线报表 / 主题表 | 分析师、财务 | T+1,口径强一致 | Spark + Iceberg + 调度 |
| 自助分析 / 即席查询 | 分析师 | 秒级~分钟级 | StarRocks / ClickHouse / Trino |
| 实时大盘 / 监控 | 运营、SRE | 秒级~分钟级 | Kafka + Flink + OLAP |
| 数据服务 API | 业务后端 | 毫秒~百毫秒 | 特征存储 / Redis / 服务层 |
| 训练样本 / 特征 | 算法 | 日级或小时级可回放 | 特征平台 + 湖快照 |
| 监管报送 / 审计 | 合规 | 可追溯、可重放 | 强审计字段 + 权限 + 归档 |
数据产品最小契约字段
无论内部 wiki 还是 Data Catalog,建议每张核心表/每个数据集至少登记:
| 字段 | 含义 | 示例 |
|---|---|---|
dataset_id |
唯一标识 | dwd.trade_order_di |
owner |
业务+技术双负责人 | 交易数据组 / DE 张三 |
grain |
粒度 | 一笔订单一行 |
primary_key |
业务主键 | order_id |
partition_spec |
分区 | dt |
freshness_sla |
新鲜度 | 每日 06:00 前就绪 |
quality_rules |
质量规则 ID 列表 | Q-ORD-001… |
lineage_upstream |
上游 | ODS 订单、支付 |
consumers |
下游 | ADS GMV、特征 f_order_cnt_30d |
sensitivity |
敏感级别 | L3(含手机号哈希) |
指标字典决定了需要哪些维度和事实。示例:
原子指标:支付成功订单量
业务限定:端内、排除测试账号
统计周期:日 / 近 7 日 / 实时今日累计
维度:渠道、类目、新老客、城市等级
没有指标定义就建表,等于没有坐标系就盖楼。
| 阶段 | 大致年代 | 关键词 | 典型诉求 |
|---|---|---|---|
| 1. 大数据萌芽 | 2006–2012 | HDFS、MapReduce、Hive | 便宜存海量日志,跑批 |
| 2. 通用计算引擎 | 2013–2017 | Spark、内存计算、YARN | 更快批处理、迭代算法 |
| 3. 实时与消息总线 | 2015–2020 | Kafka、Flink、Lambda | 秒级监控、实时特征 |
| 4. 湖仓一体 | 2019–2024 | Iceberg/Hudi/Delta、云对象存储 | 开放格式 + ACID + 多引擎 |
| 5. 实时湖仓 + AI 数据 | 2022–现在 | Paimon、流式入湖、向量/RAG 数据 | 流批一体、智能应用数据供给 |
每一代解决的核心矛盾
MapReduce 时代:磁盘 Shuffle 慢,但解决了「单机装不下」。
Spark 时代:用内存与 DAG 优化迭代与 SQL,但元数据与多引擎协作仍弱。
Kafka/Flink 时代:解决「事件驱动与状态计算」,但离线/实时两套口径成为组织债务。
湖仓时代:表格式把「文件集合」升级为「有快照、可演化的表」,批流与 OLAP 共表。
AI 数据时代:除 BI 外,语料、特征、向量、反馈闭环成为一等公民。
flowchart TB
subgraph L1["L1 数据源"]
S1[业务 DB]
S2[埋点/日志]
S3[三方/IoT]
end
subgraph L2["L2 集成与传输"]
I1[CDC]
I2[Kafka/MQ]
I3[批量同步]
end
subgraph L3["L3 存储平面"]
ST1[对象存储/HDFS]
ST2[开放表格式 Iceberg/Paimon]
ST3[元数据 Catalog/Metastore]
end
subgraph L4["L4 计算平面"]
C1[Spark 批]
C2[Flink 流]
C3[临时 SQL 引擎]
end
subgraph L5["L5 服务与加速"]
A1[OLAP StarRocks/CH]
A2[API/特征/缓存]
A3[BI/语义层]
end
subgraph L6["L6 平台能力"]
P1[调度]
P2[质量/血缘]
P3[权限/成本/观测]
end
L1 --> L2 --> L3 --> L4 --> L5
L6 -.横切.-> L2
L6 -.横切.-> L3
L6 -.横切.-> L4
L6 -.横切.-> L5