《数据库、数据仓库与数据湖:从概念到湖仓一体》

《数据库、数据仓库与数据湖:从概念到湖仓一体》

三者关系先用一句大白话定性:

数据库(DB)管”正在发生的业务”,数据仓库(DW)管”已经发生完的业务”,数据湖(Lake)管”还不知道以后拿来干啥的原始数据”。

OceanBase 这类现代分布式数据库正在往数据仓库和数据湖两边伸手,但基因和边界仍然不一样。下面分层讲,不绕术语。

1 传统三者各自是啥

1.1 数据库(Database,OLTP)

  • 干啥:跑业务系统。下单、扣库存、转账、改密码——每次操作一条或几条记录,要毫秒级返回 + 绝对不能丢 + 事务 ACID。
  • 代表:MySQL、Oracle、PostgreSQL、OceanBase、TiDB(偏 TP)。
  • 存什么:高度结构化的”热数据”,行列规整,随时被读写。
  • 特点:强一致、低延迟、并发高、存储量相对小(TB 级为主)。

1.2 数据仓库(Data Warehouse,OLAP)

  • 干啥:分析历史。昨天卖了多少、季度报表、用户留存漏斗、BI 大屏——扫全表、聚合、不修改只查询。
  • 代表:Teradata(老牌)、Snowflake、Redshift、ClickHouse、Greenplum、StarRocks、Hologres。
  • 存什么:从数据库同步过来的清洗后结构化数据,按主题建模(星型/雪花模型)。
  • 特点:列存、向量化执行、吞吐大、秒级~分钟级响应、单条写入不重要。

1.3 数据湖(Data Lake)

  • 干啥:先把公司所有原始数据”倒进来”再说。日志、JSON、图片、音频、埋点、MySQL binlog、IoT 流,不管结构不结构,先落地对象存储(S3/OSS/HDFS)。
  • 代表:基于 S3 + Iceberg/Delta/Hudi 文件层;计算用 Spark/Flink/Trino 搭着用。Databricks 就是”湖”上长出来的平台。
  • 存什么:Raw data,格式乱、schema 可无、后期再按需 schema-on-read。
  • 特点:存储极便宜(对象存储)、容量 PB~EB 级、不能直接当业务系统用、得配合计算引擎。

2 三者传统关系(经典架构)

业务系统 │ (CDC / 批量同步) ▼ [数据库 MySQL/Oracle/OB] ───── 交易实时读写 │ ETL ▼ [数据仓库 Snowflake/StarRocks] ── BI/报表/OLAP │ ▼ [数据湖 S3+Iceberg] ──────────── ML训练 / 日志归档 / 数据科学

过去是三层孤立:

  • 库和仓之间靠 ETL 搬数据(T+1 或小时级延迟)。
  • 湖是”垃圾场+金矿”,分析师直接查湖容易把性能搞崩,所以湖和仓之间还得再同步一份。

痛点:冗余存储、链路长、口径不一致、AI 要用湖里的原始数据还得再导出。

3 “湖仓一体”和”湖库一体”是怎么抹边界的

3.1 Databricks 的 Lakehouse(湖仓一体)

  • 起点:湖。
  • 在 S3/Iceberg 上叠 Delta Lake(ACID 事务)+ Spark(批流计算)+ MLflow(ML)+ Unity Catalog(治理)。
  • 结果:湖上也能跑 SQL 分析、也能跑事务、也能训模型,把 DW 的能力吸进湖。
  • 缺点:原生 OLTP(每秒几万笔转账)不是它的强项,所以后来补了 Lakebase(Postgres 系)去接交易。

3.2 OceanBase 的 Lakebase(湖库一体)

  • 起点:库(分布式 TP 数据库)。
  • 在 OB 内核里长进:多模类型(文本/向量/图/音视频同表)+ 混合检索 + 列存 AP 能力 + 开放 Iceberg 外表。
  • 结果:一个 OceanBase 集群,既能跑支付宝交易(TP),又能跑报表(AP),还能直接存企业文档做 RAG、给 Agent 当记忆体(AI)。
  • 缺点:PB 级冷数据存对象存储的成本优势不如真正的数据湖,分析生态(Spark/MLflow 那套)比 Databricks 弱。

3.3 第三类:Snowflake / StarRocks

  • 仓往湖伸(Snowflake 支持 Iceberg 外表、StarRocks 存算分离 + 湖仓加速)。
  • 但不碰 OLTP 核心交易,和 OB 方向错开。

4 一张对照表

维度 数据库(OceanBase 传统面) 数据仓库(Snowflake/StarRocks) 数据湖(S3+Iceberg) OB Lakebase / Databricks Lakehouse
主要负载 OLTP 交易 OLAP 分析 存储+批处理+ML 混合(TP+AP+AI)
数据形态 结构化热数据 清洗后结构化 原始多模态 结构化+半结构+向量
事务 ACID 强 弱(批级) 无(靠文件层补) OB 原生强 / DB 补强
典型延迟 毫秒 秒~分钟 分钟~小时(批) 毫秒~秒
存储成本 中(块存储) 中高(本地/缓存) 极低(对象存储) OB 中 / DB 低(对象底层)
AI 友好度 传统库低,OB 新版本高 中等(向量插件) 高(直接喂训练) 高(内置向量/检索/Agent)

5 最直白的类比

  • 数据库 = 便利店收银台,每笔买卖当场结账,不能乱。
  • 数据仓库 = 月底盘点用的 Excel 总表,查”本月哪些好卖”,不改原始小票。
  • 数据湖 = 把收银小票、监控录像、顾客微信聊天记录全塞进仓库,以后想用啥再翻。
  • OceanBase Lakebase = 收银台旁边直接放了盘点系统和 RAG 知识柜,店员(Agent)结账时能顺手查历史、查说明书、记客户偏好。
  • Databricks Lakehouse = 先把整个仓库数字化,然后在数字仓库里搭收银台 + 盘点 + AI 训练室。

所以”OB 是不是模仿 Databricks”——现在能对应上了:两者都不是纯库/纯仓/纯湖了,都在抢”统一数据底座”的位置,只是从哪个房间往外打通的区别。

6 一个电商公司一天的数据流向

以时间线把三者串起来,最直观:

  1. 白天(交易期):用户在 App 下单 → 订单写入 MySQL/OceanBase(DB)。每一次查询”库存够不够”、”这个订单状态是什么”都走 DB,毫秒级返回。
  2. 夜间(同步期):DB 里当天产生的订单、支付流水,通过 CDC/ETL 同步进数据仓库(DW)。分析师跑报表:”今天 GMV 多少、哪个品类卖得最好、转化漏斗什么样”。
  3. 全天候(原始沉淀):App 埋点日志、用户点击流、客服录音、商品图片直接落数据湖(Lake)。数据团队后续用它训练推荐模型、做风控分析、喂给 Agent。
  4. 融合(湖仓/湖库一体):报表查不到的问题,可以直接从湖里取原始数据补充;Agent 结账时又能读历史订单(DB)+ 查知识库(湖)给出个性化建议。
阅读 — · 全站 —
🎸 我的歌单 0 首