数据库、数仓、数据湖与数据中台:从一家网店说清它们的关系

一、前言

“数据库存数据,数仓做分析,数据湖什么都能放,中台负责共享。”

但真到了项目里,还是容易困惑:MySQL 也能做统计,为什么还要数仓?数据湖已经存了所有数据,为什么不能直接出报表?买一套数据平台,是不是就有中台了?本篇我们就用一个网店的例子来重新认识一下。

二、先看全局:它们解决的是不同层面的问题

概念它要回答的问题常见交付物
业务数据库这笔业务现在是什么状态,怎样正确地修改它?订单、库存、支付等业务记录
数据仓库怎样把多处数据按一致规则整理,得到可信的分析结果?业务报表、分析模型、汇总指标
数据湖怎样保存和管理多种形态的数据,供不同用途加工?原始文件、日志、图片及加工后的数据表
数据中台怎样让多个团队持续复用可信的数据能力?公共指标、数据目录、标签、数据服务及管理规则

前三者更多涉及数据如何存储、组织和处理,数据中台还涉及谁维护数据、怎样共享、如何交付给业务。

三、第一步:顾客下单,数据库先保证正常交易

假设网店正在促销,一双鞋售价 200 元。顾客下单后,系统至少需要记录订单、支付结果和库存变化。如下例子:

订单号用户商品实付金额订单状态
A001U01S01200已支付
A002U02S01200待支付

客服打开 A001,要立刻看到这笔订单;支付通知到达后,系统要正确更新状态;只剩一双鞋时,两个人同时购买,库存不能被无条件扣两次。这就是交易型数据库主要面对的工作:频繁处理小范围的读写,而且要配合业务逻辑维护正确性。通常称为OLTP,即联机事务处理。

那么问题来了,数据库也能统计,为什么还需要别的系统?

网店规模小时,统计当天的支付金额,直接查询业务数据库就能完成。但“查订单 A001”和“按渠道比较过去一年的退款率”是两种很不同的工作:

对比项查一笔订单分析一年经营情况
读取范围通常少量记录可能扫描大量记录
主要操作精确查询、插入、更新筛选、关联、分组、汇总
组织数据时优先考虑业务正确、写入方便、响应及时分析方便、历史可比、口径一致
常见工作类型OLTPOLAP,即联机分析处理

分析查询可能与下单争抢 CPU、内存和磁盘资源。这也是为什么“把 MySQL 配置调大”和“建设数仓”并不等价。前者主要增加处理能力,后者还要重新组织分析所需的数据。

四、第二步:活动结束,数仓把数据整理成能算清的账

活动结束后,领导问:“这次活动卖得怎么样?”

运营查订单,财务查支付,售后查退款,三个部门交上来三个数字。先别急着判断谁算错了,他们可能回答的是不同问题。看一组假设数据:

订单号下单金额成功支付金额已成功退款金额
A0012002000
A00220000
A003300300100
合计700500100

这些数都可以成立,但实际扣除成功退款后的400 元,其实是不等于利润,更不能直接等同于财务确认的收入;利润分析还要考虑商品成本、广告费、履约费用等,财务收入则有相应的确认规则。

数仓的价值,是把业务规则落实成能够重复计算、追溯来源的数据模型。它需要整合订单、支付、退款等来源,处理重复和异常,保存分析需要的历史,再形成公共明细与指标。

1、算指标之前,先确定“一行代表什么”

这叫数据的“粒度”,是数仓建模里最实用的概念之一。一行可以代表一笔订单、一件订单商品,也可以代表一次退款。它们不能随便混用。假设 A003 实付 300 元,后来分两次各退 50 元。如果把订单表直接关联退款明细,结果会变成:

订单号支付金额本次退款金额
A00330050
A00330050

这时直接汇总支付金额,会得到 600 元。SQL 没报错,数字却翻倍了。一种处理办法是先按订单汇总退款,再和每订单一行的支付结果关联。这样才能得到“支付 300、退款 100、净支付 200”。

2、事实和维度,让分析有统一的组织方式

“支付了 200 元”是发生的业务事实;“是哪位用户、什么商品、来自哪个渠道、发生在哪天”是分析它的角度,这些角度叫维度。可以简单记成:

  • 事实记录发生的事件,以及金额、数量等度量。
  • 维度描述事件的背景,让我们能按商品、时间、地区等角度观察。

整理之后,同一份可信的支付明细,既能按天统计,也能按渠道比较,不必每张报表都重新理解一遍订单状态。业务库里可能有历史订单,并不代表分析所需的所有历史属性都已经保留下来了。

3、分层,是为了让整理过程可以复用和追查

项目里常见的数仓分层,可以落到这次活动上理解:

常见层次这层做什么活动案例中的内容
ODS,接入层接入来源数据,保留必要的来源信息订单、支付、退款来源记录
DWD,明细层清洗、去重,按明确粒度整理业务事实每次成功支付、每次成功退款
DWS,公共汇总层汇总高频使用的数据用户每天的支付金额、退款金额
ADS,应用层面向具体报表或应用提供结果活动经营日报、渠道效果报表

分层带来的实际好处是:报表错了,可以往上游追;新报表来了,可以复用已有明细和汇总;业务规则调整,也能定位需要重新加工哪些数据。

五、第三步:想知道为什么有人没买,数据湖提供更多分析材料

现在我们知道了支付金额,但领导又问:“广告点击很多,为什么最后买的人少?”光看订单不够。没有下单的人,根本不会出现在订单表里。需要进一步查看广告点击、页面浏览、加入购物车等行为。也许还要看商品图片、评价、客服对话,判断是不是图片误导、尺码描述不清楚。

这些数据形态各异,未来用途也不一定一开始就能确定。数据湖适合把它们纳入统一的存储与管理范围,并保留足够的信息供后续加工。

1、湖和仓,差别不只是“一个乱,一个整齐”

数仓通常围绕相对明确的分析主题组织数据;数据湖通常更强调保留多样的数据形态,支持探索和多种加工用途。例如,一条浏览日志可能包含页面、时间、设备和活动编号。今天只分析访问量,下个月想研究用户在尺码说明页停留多久。如果来源日志保留了相应事件,就有机会重新加工;如果只留下每天一个访问量数字,后面就无法凭空恢复细节。

2、一个能用的数据湖,至少要能完成四件事

能力缺少它会怎样
存储文件无处可靠保存,生命周期无法管理
目录与元数据不知道数据在哪、字段是什么意思、版本有什么变化
计算数据存着,却无法清洗、关联或查询
治理不知道谁能访问、哪些数据可信、问题由谁负责

例如:把浏览日志放进湖里,也不会自动得到“转化率”。还要定义一次访问是什么、怎样识别用户、订单归属哪个渠道,以及重复上报怎么处理。稳定下来后,这些规则可以进入公共分析模型。一般来说,数据湖保留分析材料,数仓组织可信的分析结果。它们经常协作,也可能共享一套底层存储。

六、第四步:大家都想用这些数据,数据中台负责把能力交付出去

数据中台通常指一套面向跨业务复用的数据建设与运营体系,依托数仓、数据湖等基础,把数据标准、加工、治理和服务组织起来。

数仓已经整理数据,中台多做了什么?数仓侧重分析数据的组织和加工;数据中台进一步关注这些数据如何被多个业务持续使用,包括发现数据、理解口径、申请权限、调用服务、跟踪质量以及维护责任。

数据服务也不只是开放一个查询接口。在线应用需要低延迟时,通常要把计算好的标签发布到适合在线查询的数据库或缓存,再通过服务访问;不能让每次打开会员页面,都现场扫描 30 天的交易数据。

这里还可以顺便区分业务中台:会员注册、下单、发券属于可复用的业务操作;消费指标、用户标签、分析数据属于可复用的数据能力。前者偏业务中台,后者偏数据中台,两者通过服务协作。

七、把全过程连起来:一笔数据怎样被反复使用?

下面是一种常见组合,箭头表示数据流向,括号说明用途:

订单、支付、退款数据库
├─ 定时抽取或变更同步 → 数仓加工 → 指标、报表
└─ 来源数据保留 → 数据湖
↑ ↓ 按需要加工
浏览日志、图片、客服记录 → 数据湖 → 探索分析、模型训练

公共明细、指标、标签
└─ 发布到服务存储 → 数据接口 → 营销、客服等业务应用

数据中台建设涉及以上多个环节:标准、目录、权限、质量、责任与服务复用

数仓可以直接接收业务数据,也可以从湖中加工;湖与仓可以共享存储,并不一定对应两套独立集群。业务数据库也可能同时向多个下游提供数据。

湖仓一体放在哪里?

湖仓一体主要在存储与分析架构这一层,尝试在湖的存储基础上补充表管理、事务、治理和查询优化等能力,让多种分析任务更方便地共享数据,减少不必要的复制。

八、小结

数据库负责把一笔笔业务可靠地记录下来;数据仓库把分散的记录按明确的粒度和口径整理成可分析的数据;数据湖保存和管理日志、图片、文件等多样的数据,为后续探索和重新加工留下材料;数据中台则把这些数据能力组织成多个团队可以持续复用的指标、标签和服务。它们各有分工,也存在重叠,可以按需要组合使用。

相关新闻

WPF中集成RDLC报表完整指南:从Host嵌入到数据绑定

WPF中集成RDLC报表完整指南:从Host嵌入到数据绑定

最近帮同事的一个WPF小工具加报表功能,需求很直白:查询结果要能预览、能打印、能导出Excel。选型时我没多想,直接用了一套最省事的方案——在VS2019里用WPF创建RDLC报表。很多刚接触WPF报表的人,最大的困扰其实不是报表怎么设计&a…

2026/10/20 11:12:07 阅读更多 →
头部姿态估计实战指南:从坐标系、旋转矩阵到误差指标的完整拆解

头部姿态估计实战指南:从坐标系、旋转矩阵到误差指标的完整拆解

简介:面向计算机视觉与人工智能领域的头部姿态估计文献合集,聚焦2017—2018年该方向的前沿成果,适合算法研究者、工程师及入门学生系统掌握从图像序列中估计头部角度与位置的完整技术路线。压缩包共5个文件,以4篇PDF论文和1篇XML元…

2026/10/20 11:12:07 阅读更多 →
YOLOv8轻量化实战:脑肿瘤细胞检测的完整工程流程

YOLOv8轻量化实战:脑肿瘤细胞检测的完整工程流程

开头如果你关注过医学影像AI落地,应该对YOLO系列不陌生。我自己最近在做的一个模拟项目X,就是基于YOLOv8轻量化方案,在脑肿瘤细胞识别方向做了一套完整流程。先说一下背景:脑肿瘤的病理切片分析依赖医生逐张观察,耗时且…

2026/10/20 11:12:07 阅读更多 →

最新新闻

【鸿蒙心迹】HarmonyOS学习笔记05:ArkTS函数约定

【鸿蒙心迹】HarmonyOS学习笔记05:ArkTS函数约定

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/10/20 12:00:58 阅读更多 →
Trackformer多目标跟踪复现:从环境搭建到ID跳变排查的完整实践

Trackformer多目标跟踪复现:从环境搭建到ID跳变排查的完整实践

1. 从标题拆解这个项目到底在做什么1.1 目标跟踪与轨迹识别,到底解决的是什么问题先把概念说清楚。目标跟踪(Object Tracking)要回答的问题是:在视频里,某一帧出现了一个我关心的目标,接下来的每一帧里&…

2026/10/20 12:00:58 阅读更多 →
开源多智能体项目:三个AI角色交叉质询,收敛出可执行方案

开源多智能体项目:三个AI角色交叉质询,收敛出可执行方案

前段时间我一直在折腾多智能体相关的开源项目,最直观的感受是:模型本身的能力已经够用了,真正让人头疼的是怎么让几个模型像一支团队那样配合起来,而不是各说各话。直到我看到这个项目的思路,才觉得终于有人把“让顶级…

2026/10/20 12:00:58 阅读更多 →
Formula One 表格控件实战:从注册到公式校验的完整指南

Formula One 表格控件实战:从注册到公式校验的完整指南

简介:Formula One 9.0 是一款基于 Java 开发的 VTS 内容编辑工具,面向需要定期制作与定制模板化内容的个人用户及小型团队。它通过模板化编辑方式简化 VTS 内容的创建流程,降低重复劳动,适合对图形化编辑与 XML 数据处理有需求的办…

2026/10/20 12:00:57 阅读更多 →
ICT在线测试全解析:原理、测试策略与误判排查实践

ICT在线测试全解析:原理、测试策略与误判排查实践

简介:PCBA制造中,测试策略的合理选择直接决定产品良率与交付效率。ICT(在线测试仪)作为静态测试手段,通过探针接触与Guarding隔离技术,在不通电状态下精准定位开路、短路、错件、漏件等缺陷,与A…

2026/10/20 12:00:57 阅读更多 →
基于深度学习的新闻摘要生成:从Encoder-Decoder到注意力机制的实践

基于深度学习的新闻摘要生成:从Encoder-Decoder到注意力机制的实践

又到了一年一度的毕设季,后台好几个读者问我同一个题目:“基于深度学习的新闻摘要生成算法实现”。这个题选得挺聪明,新闻摘要属于文本生成里最有代表性的任务之一,数据好找、效果直观、还能往上堆注意力机制和预训练模型&#xf…

2026/10/20 11:59:57 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →