文章目录
- 前言
-
- 一、基础概念
-
- [1. 数据仓库 DW](#1. 数据仓库 DW)
- [2. 四大经典特性(数仓基石)](#2. 四大经典特性(数仓基石))
- [3. 常用名词](#3. 常用名词)
- [二、主流数仓架构(3 种)](#二、主流数仓架构(3 种))
-
- [1. 传统离线架构(最常用)](#1. 传统离线架构(最常用))
- [2. 实时数仓架构(现在主流)](#2. 实时数仓架构(现在主流))
- [3. 湖仓一体架构(大厂趋势)](#3. 湖仓一体架构(大厂趋势))
- 三、标准数仓分层(必背,面试工作通用)
-
- [1. ODS 层 原始数据层](#1. ODS 层 原始数据层)
- [2. DWD 层 明细清洗层](#2. DWD 层 明细清洗层)
- [3. DWS 层 汇总轻度聚合层](#3. DWS 层 汇总轻度聚合层)
- [4. ADS 层 应用指标层](#4. ADS 层 应用指标层)
- [5. DIM 层 维度层](#5. DIM 层 维度层)
- 四、完整数据流转全流程
- [五、离线数仓 vs 实时数仓 核心区别](#五、离线数仓 vs 实时数仓 核心区别)
- 六、工作常用数据源对应落地
- 七、最简技术路线
前言
数据仓库 DW
。
一、基础概念
1. 数据仓库 DW
定义 :面向分析、决策 ,整合全业务多源数据,做统一存储、清洗、汇总的数据集合
-
特点:面向主题、集成性、稳定性、时变性
-
和数据库区别:
- 数据库(MySQL):OLTP 事务业务,增删改查、日常交易
- 数仓:OLAP 分析查询,统计、报表、指标、用户画像
2. 四大经典特性(数仓基石)
- 面向主题:按业务域划分(用户、订单、商品、流量),不按系统划分
- 集成性:统一清洗、统一格式、统一编码,抹平多源差异
- 非易失(稳定) :以追加写入为主,极少删除修改,保留历史
- 随时间变化:自带时间维度,可回溯每日 / 每月数据
3. 常用名词
- ETL:抽取 Extract→转换 Transform→加载 Load(传统离线)
- ELT:抽取 Extract→加载 Load→转换 Transform(现代数仓主流,先入库再清洗)
- 维度:分析角度(时间、地区、用户、渠道)
- 指标:聚合数值(订单量、销售额、UV、转化率)
- 事实表:存放业务行为明细(订单明细、点击日志)
- 维度表:存放基础属性(用户信息、商品分类)
- 数据集市 DM:数仓子集,给业务部门单独使用
二、主流数仓架构(3 种)
1. 传统离线架构(最常用)
数据源 → 采集层 → 计算层 → 数仓分层 → 应用层
- 采集:DataX、Sqoop、Flume、Canal
- 存储:HDFS
- 计算:Hive、Spark
- 调度:Azkaban、DolphinScheduler
- 查询:Presto、Impala
2. 实时数仓架构(现在主流)
实时数据源 (Kafka) → Flink 实时计算 → 实时存储 → 实时报表
- 实时存储:ClickHouse、Doris、StarRocks、TiDB
3. 湖仓一体架构(大厂趋势)
数据湖(原始海量明细)+ 数据仓库(结构化分层指标)
- 数据湖:存原始全量数据,廉价、格式灵活
- 数仓:做规整分层,供业务分析
三、标准数仓分层(必背,面试工作通用)
1. ODS 层 原始数据层
- 作用:原样同步原始数据,不清洗、不转换
- 来源:MySQL、日志、API、MongoDB
- 特点:数据杂乱、冗余大、结构贴近源系统
- 命名:ods_xxx
2. DWD 层 明细清洗层
- 作用:清洗脏数据、过滤无效数据、字段脱敏、格式统一
- 输出:干净标准化业务明细数据
- 命名:dwd_xxx
3. DWS 层 汇总轻度聚合层
- 作用:按维度轻度汇总(按天、按小时、按渠道)
- 产出:宽表、行为汇总表
- 命名:dws_xxx
4. ADS 层 应用指标层
- 作用:最终业务指标,直接给报表、大屏、BI
- 产出:日报、周报、营收、流量、用户指标
- 命名:ads_xxx
5. DIM 层 维度层
独立存放:用户维度、商品维度、地区维度、时间维度
分层口诀:
原始 ODS → 清洗 DWD → 汇总 DWS → 指标 ADS
四、完整数据流转全流程
- 数据产生
业务系统、APP 埋点、服务器日志、物联网设备、第三方接口
- 数据采集
-
数据库:Canal 监听 Binlog 增量同步
-
日志:Flume 采集推送 Kafka
-
文件 / 批量:DataX 全量同步
- 数据中转
统一存入 Kafka 做削峰、解耦、实时缓冲
- 数据计算处理
-
离线:Hive/Spark 跑 T+1 凌晨任务
-
实时:Flink 实时清洗、聚合、关联
- 分层入库
依次写入 ODS→DWD→DWS→ADS
- 数据服务应用
- 自助 BI 报表
- 运营后台指标
- 实时监控大屏
- 用户画像、数据分析、风控模型
五、离线数仓 vs 实时数仓 核心区别
- 离线数仓(Hive 为主)
- 时效:T+1,次日看昨日数据
- 场景:日报、月报、大盘复盘、历史回溯
- 优点:数据量大、稳定、成本低
- 缺点:延迟高
- 实时数仓(ClickHouse/Doris 为主)
- 时效:秒级 / 分钟级
- 场景:实时流量、直播大屏、实时交易额、告警监控
- 优点:速度快、响应及时
- 缺点:存储成本高,不适合超久历史明细
六、工作常用数据源对应落地
- MySQL/PG/SQLServer/Oracle → 同步进 ODS 离线层
- 埋点日志、系统日志 → 进 Kafka → 实时清洗入 ClickHouse
- API 接口数据 → 定时抓取入数仓
- 手工 Excel 表 → 导入 ODS 做业务补数
- MongoDB → 同步清洗进明细层
七、最简技术路线
- 吃透数仓四层分层含义与建表思路
- 掌握事实表、维度表、宽表设计
- 学会 Hive 建表、分区、分桶、常用函数
- 了解 Flink 实时流转流程
- 分清 Hive 离线、ClickHouse 实时使用场景
- 学习数据同步、调度、数据质量基础