一、知识点概述
1、数仓分层概念
- ods:operation data store原始数据层,
数据保持原貌不做处理 - dwd:data warehouse detail明细数据层
结构和粒度与原始表保持一致,对ods层数据进行清洗(去除空值,脏数据) - dws:data warehouse service数据服务层
数据轻度汇总 ads:application data store 数据应用层
为各种统计报表提供数据2、数仓为什么要分层
- 把复杂问题简单化:把一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单,并且方便定位问题
- 减少重复开发:通过的中间层数据,能够减少极大的重复计算,增加一次计算结果的复用性
- 隔离原始数据:使真实数据与统计数据解耦开
3、数据集市与数据仓库概念
数据集市则是一种微型的数据仓库,通常有更少的数据,更少的主题区域,更少的历史数据,部门级的,一般只能为某个局部范围内的管理人员服务。
数据仓库是企业级的,能为整个企业各个部门的运行提供决策支持手段
4、表的分类
- 实体表:一般是指现实存在的业务对象
- 维度表:一般是指对应一些业务状态,也可称为码表
- 事务型事实表:一般指随着业务发生不断产生数据,特点是一旦发生不会再变化
- 周期型事实表:一般指随着业务发生不断产生变化(更新,新增)的数据,如订单
5、同步策略
- 全量表:存储完整的数据
- 增量表:存储新增加的数据
- 新增及变化表:存储新增加的数据和变化的数据
- 拉链表:对新增及变化表做定期合并
实体表(用户,商品,商家):每日全量
维度表(订单状态,审批状态,商品分类):每日全量
事务型实时表(交易流水,操作日志,出库入库记录):数据量大且不变,每日增量表,每日创建一个分区存储
周期型事实表(订单,请假等):用每日新增和变化表,制作一张拉链表
6、范式理论
目的:(1):减少数据冗余,尽量让每个数据只出现一次;(2)保证数据一致性
7、三范式区分
(1)第一范式:属性不可切割,所有关系数据库等最基本要求
(2)第二范式:不能存在部分函数依赖
(3)低三范式:不能存在传递函数依赖
8、关系建模与维度建模
- 关系建模:为了保证数据的一致性和避免冗余,所以大部分业务系统的表都是遵循低三范式
维度建模:
- 星型模型:区别主要在于维度的层级,标准
- 雪花模型
- 星座模型
oltp (随机延时读写)
olap (批量导入)
二、面试题
1)数据仓库的输入数据源和输出系统分别是什么?
输入系统:埋点产生的用户行为数据、JavaEE后台产生的业务数据。
输出系统:报表系统、用户画像系统、推荐系统
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。