全文共 727 字 预计阅读 3 分钟
bg

bg1.引入

从 1 开始的大数据开发

引入

第一性原理:数据是为决策与自动化服务的

任何数据平台最终只做三件事:

  1. 采集与可信:把业务系统、日志、传感器的事实搬进来并保证可追溯。

  2. 转化与建模:变成可计算、可共享、口径一致的数据资产。

  3. 服务与消费:以报表、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 数据 流批一体、智能应用数据供给

每一代解决的核心矛盾

  1. MapReduce 时代:磁盘 Shuffle 慢,但解决了「单机装不下」。

  2. Spark 时代:用内存与 DAG 优化迭代与 SQL,但元数据与多引擎协作仍弱。

  3. Kafka/Flink 时代:解决「事件驱动与状态计算」,但离线/实时两套口径成为组织债务。

  4. 湖仓时代:表格式把「文件集合」升级为「有快照、可演化的表」,批流与 OLAP 共表。

  5. 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
Back to Blog