1. 什么是数据仓库
- 应用场景:对历史数据进行大规模的决策分析,为上层应用做准备;
- 数据来源:结构化数据、半结构化数据、非结构化数据;
2. 数据仓库和数据库的区别
数据库 | 数据仓库 |
---|---|
面向事务(OLTP)设计的 | 面向主题(OLAP)设计的 |
一般存储在线数据 | 一般存储历史数据 |
尽量避免冗余 | 可以引入冗余设计 |
为捕获数据而设计 | 为数据分析而设计 |
3. 主流数据仓库
- Oracle Database;
- TeraData;
- IBM Red Brick;
- Netzza TwinFin;
- Greenplum;
4. 数据仓库三层模型
- ODS 层(备份),业务数据 \ 日志数据;
- DW 层,按照主题维度建立数据模型,维 & 事实;
-- DWD,清洗脏数据;
-- DDWS,按天统计用户数据;
-- DWT,统计用户累计数据; - ADS,
维:主题的各个属性;
事实:对于属性的度量;
- DM 层,提供数据产品和数据分析使用的数据,一般存放于 ES、MySQL等功线上系统使用,也可能存繁育 hive 或 Druid 中供数据分析和数据挖掘使用,一般常说的宽表就是存放在这里;
5. 数据建模
- 维度表,
-- 表示对于分析主题所属类型的描述; - 事实表,
-- 对分析主题的度量,通常表现为数值;
-- 事实表包含了与各维度表关联的外码,并通过 join 方式与维度表关联;
6. DW 层建模
- 星型模型,多维对单事实;
- 雪花模型(不常用),多维对单事实;
- 星座模型,多维对多事实,业务发展后期绝大部分采用星座模型;
7. 数据来源
- 爬虫数据
- 用户行为数据
-- 多来自日志文件; - 业务数据
-- 业务系统后台,如:MySQL / MongoDB;
8. 数据输出
- 报表系统
- 用户画像
- 推荐系统
- 机器学习
9. 数据仓库需要的技术框架
- 采集:Flume / Kafka / Sqoop;
- 存储:MySQL / Hadoop / HBase;
- 计算:Hive / Tez;
- 查询:Presto / Druid / Kylin;
- 可视化:Superset;
- 任务调度:Azkaban;
- 集群监控:Zabbix;
- 元数据管理:Altas;
- 脚本:shell;
10. 数据仓库主要工作内容
- 用户行为数据采集平台
- 业务数据采集平台搭建
- 数据仓库维度建模
- 数据分析
-- 用户、流量、会员、商品、活动、销售、地区 等主题分析; - 即时数据查询 \ 指标分析
- 集群性能监控
- 元数据管理
- 数据质量监控
网友评论