【数据仓库·第0章】半小时超高速入门DW 先用一句话理解数据仓库5 分钟数据仓库 企业的数据大脑业务系统订单、用户、支付、车辆、设备产生数据→ 数据仓库把数据统一整理→ 最终用于报表、分析、运营、风控、推荐、AI把它想象成系统类比MySQL业务库超市收银台数据仓库Hive/Doris超市总部仓库BI 报表Superset、PowerBI老板看的经营看板核心区别业务库OLTP数据仓库OLAP处理交易处理分析增删改查频繁读多写少单条记录操作海量数据聚合强调事务强调查询速度面向用户操作面向决策分析记忆口诀OLTP 管“今天发生了什么”OLAP 管“过去一段时间为什么会这样”数据仓库到底解决什么问题10 分钟假设你做过电商系统业务库里有订单表用户表商品表支付表物流表老板突然问最近 30 天销售额是多少哪些用户复购率最高上海地区退货率为什么上升618 活动带来了多少新增用户哪些商品经常一起购买如果直接查 MySQL数据量一大查询慢影响线上交易跨表关联复杂历史数据难保存口径不统一每个人算销售额的方法不同于是有了数据仓库——数据仓库做的 4 件事采集数据把 MySQL、日志、设备数据汇总过来清洗数据去重、补全、统一格式建模数据统一“销售额”“用户数”等指标口径加速分析让报表秒级返回数据仓库最重要的架构15 分钟这是你必须记住的一张图从左到右业务系统 → ODS → DWD → DWS → ADS → BI 报表ODS原样搬DWD洗干净DWS算好数ADS直接看层级全称核心定位记忆口诀ODSOperational Data Storebr操作数据存储 / 贴源层原始数据镜像从业务系统原样同步原样照搬不做加工DWDData Warehouse Detailbr数据明细层清洗后的明细数据最细粒度关联维度明细清洗站脏进净出粒度不变DWSData Warehouse Servicebr数据汇总层 / 主题宽表层按主题预聚合、预计算建宽表预制菜工厂直接上桌ADSApplication Data Storebr数据应用层 / 数据集市面向具体业务场景直接支撑报表/BI/算法成品上桌即查即用DIMDimensionbr维度表描述性信息提供分析视角时间、地区、产品等看数据的眼睛ODS原始数据层全称Operational Data Store作用把业务数据原样搬过来特点几乎不加工保留原始字段便于追溯问题相当于“数据备份区”记忆ODS 原始仓库。DWD明细数据层全称Data Warehouse Detail作用把脏数据变成标准数据这里会去重过滤无效订单统一时间格式统一金额精度补充维度信息记忆DWD 干净的明细数据DWS汇总数据层全称Data Warehouse Summary作用提前算好常用指标例如按天统计销售额于是有了日期销售额2026/7/1100 万2026/7/2120 万以后老板查日报就不用再扫几亿订单了。记忆DWS 指标汇总层。ADS应用数据层全称Application Data Service作用直接给报表、运营、产品使用。特点面向具体业务场景字段已经非常容易理解BI 工具直接查询记忆ADS 给人看的数据。维度表和事实表10 分钟这是数据建模的核心如下图就是经典的“星型模型”暂时无法在飞书文档外展示此内容事实表Fact记录“发生了什么”例如订单事实表order_iduser_idproduct_idamountcreate_time100111012992026/7/1特点数据量大不断增长包含可统计指标金额、数量等记忆Fact 事件。维度表Dimension描述“是谁/什么/哪里”例如用户维度表描述是谁user_idgendercityage1男上海28特点数据量小变化较少用于分类分析记忆Dimension 标签。为什么要分开因为你经常会问“上海的 28 岁男性用户本月消费了多少钱”PS只看事实表订单表是没办法知道是哪个用户下了当前的订单的只能从用户表维度表 - 用户维度中获取工具大盘点10 分钟 大数据工厂全景图工具定位MySQL业务数据库OLTPKafka实时数据通道传输数据Flink实时计算数据边来边算的流水线Hive离线数据仓库便宜大碗的大仓库Spark大规模数据计算搬运/加工的大卡车Doris高性能OLAP查询秒级分析SupersetBI可视化Airflow/DolphinScheduler任务调度逐个拆解1️⃣ Hive 大仓库便宜存海量数据维度解释比喻本质像亚马逊的巨型仓库不在乎取货速度只在乎能装下全世界的东西且租金便宜技术本质基于 Hadoop 的数据仓库工具用SQLHiveQL操作 HDFS 上的数据核心特点存储成本极低用普通硬盘、可扩展至 PB 级、查询延迟高分钟级甚至小时级为什么慢底层把 SQL 翻译成 MapReduce/Tez 任务像翻仓库找货要填很多表格走流程典型场景T1 离线报表、历史数据归档、海量日志存储、数据湖底座一句话Hive 是存得起、查得慢的仓库管理员适合明天要知道昨天卖了什么不适合现在立刻要知道这一秒谁在下单。2️⃣ Spark 大卡车负责搬运和加工数据维度解释比喻本质不是仓库本身而是运输队加工厂。它从仓库拉货在车里加工再送到目的地技术本质内存计算引擎支持批处理Spark SQL和流处理Spark Streaming核心特点比 Hive 快 10-100 倍数据放内存里算、支持 SQL/Python/Scala 多种语言与 Hive 关系Spark 可以开进 Hive 仓库Spark on Hive直接读取 Hive 表做计算也可以把结果运回 Hive典型场景复杂 ETL 清洗、机器学习特征工程、海量数据聚合计算、替代 MapReduce一句话Spark 是跑得快、力气大的卡车既能从 Hive 拉货加工也能直接自己接活比如处理 Kafka 来的数据。3️⃣ Doris 高速查询引擎负责秒级分析维度解释比喻本质像超市的收银台货架东西不多但摆放极整齐扫码立刻出结果技术本质MPP大规模并行处理架构的 OLAP 数据库专为分析型查询设计核心特点查询毫秒级~秒级、支持高并发、自带向量化执行和智能索引与 Hive 区别Hive 是仓库存原始数据Doris 是展示厅存加工后的结果数据供人看典型场景BI 报表、实时大屏、用户行为分析、即席查询Ad-hoc一句话Doris 是查得飞快但租金贵的展示厅只放加工好的精华数据不放原始垃圾数据。4️⃣ Flink 实时流水线数据边来边算维度解释比喻本质像食品厂的流水线原料数据从传送带进来一边流动一边被加工包装技术本质真正的流处理引擎基于事件驱动和状态计算核心特点低延迟毫秒级、精确一次Exactly-Once语义、支持事件时间/处理时间与 Spark Streaming 区别Spark Streaming 是微批处理假装流处理其实是一小批一小批算Flink 是真·逐条处理典型场景实时风控、实时推荐、实时大屏、异常检测、IoT 数据处理一句话Flink 是数据不停流计算不停歇的流水线适合这一秒的数据必须这一秒出结果。5️⃣ Kafka 数据快递站传输数据维度解释比喻本质像顺丰中转站不生产数据也不消费数据只负责高效、可靠地中转技术本质分布式消息队列MQ基于发布-订阅模式核心特点高吞吐百万级/秒、可持久化、数据可回溯像快递单号可追踪核心概念Producer寄件人→ Topic快递线路→ Consumer收件人→ Partition分拣窗口典型场景系统解耦、流量削峰、日志收集、实时数据总线一句话Kafka 是只管传、不加工的快递站所有组件都通过它交换数据。 完整协作流程以电商实时离线分析为例假设你是一个电商平台用户每下一单数据怎么在这套系统里流转不知道有没有小伙伴注意到上面有两条链路Kafka → Flink → DorisKafka → Spark → DorisFlink 往 Doris 写数据Spark 也往 Doris 写数据二者有什么不一样吗链路写入 Doris 的内容时延数据特征用途写入方式Flink → Doris实时增量结果毫秒~秒级最新、轻量、高频更新实时大屏、实时监控流式写入Stream LoadSpark → Doris离线批量结果小时~天级全量、厚重、低频更新深度报表、历史分析批量写入Broker Load / Spark Connector 那么问题来了为什么需要这么多组件因为大数据领域有一个不可能三角海量存储高速查询低成本 三者不可兼得组合解决了什么牺牲了什么Hive 单独用海量低成本速度Doris 单独用高速好用存储成本贵 容量上限Hive Spark海量加工能力实时性Kafka Flink Doris实时高速复杂度和成本所以实际架构是分层协作原始数据便宜存 Hive → 批量加工用 Spark → 实时处理用 Flink → 结果精华放 Doris 快速查询 → 全用 Kafka 串联。搞定撒花