目录
1数据处理方式
数据处理分为两大类:
联机事务处理(OLTP):高并发数据量级不大的查询,主要用于管理事务,满足三范式(3NF)
联机分析处理(OLAP):查询频率低,涉及复杂的聚合计算,以维度模型存储历史数据
2数据建模
2.1ER建模
2.2维度建模
快速完成分析需求,较好的大规模复杂查询的响应性能
事实表
发生的操作型事件,产生可度量数值存储在事实表中,从最低的粒度级别来看,事实表行对应一个度量事件
维度表
度量值
对一次行为的度量,例如一瓶,两块
优缺点
优点:技术要求不高,快速上手,敏捷迭代,快速交付,更快速完成需求分析,大规模复杂查询的响应性能
缺点:维度表的冗余比较多,视野狭窄
维度建模例子
事实表:成绩表
维度表:学生维度,班级维度,年级维度,学校维度
3维度建模表分类
度量成为事实,环境描述为维度
今天“、“张三”、“买”、”矿泉水“是维度,“一瓶”,“两块”是事实
维度表特征
维度表范围宽(具有多个属性,列比较多)
跟事实表相比行数少
内容相对固定
维度表设计原则
维度属性尽量丰富,为数据使用打下基础
退化维度
简单的维度放到事实表中
缓慢变化维
维度的属性随时间缓慢变化,一般代理键作为维度表主键,
处理方式:直接覆盖原值,不看历史数据
拉链表
维度行增加三列:有效日期,截止日期,行标识(status(old,new))
增加属性列
dept_name====> old_dept_name new_dept_name
冗余维度
为了提升效率,把常用的维度冗余到事实表
3.1维度表高级主题(维度整合和拆分)
3.1.1垂直整合
3.1.2水平整合
3.1.3垂直拆分
3.1.4水平拆分
事实表
1事实表中的每行数据代表一个业务事件。“事实”表示的是业务事件的度量值(可以统计次数、个 数、金额等)
2只选择与业务过程相关的事实
3分解不可加性事实为可加的组件
4在选择维度和事实之前必须先声明粒度(粒度用于确定事实表中一行所表示业务的细节层次,决定了维度模型的扩展性;)
5事实的单位要保持一致
6对事实的 null 值要处理(因为null值为sql过滤不生效,所以要把null变为0或者无效随机值)
7使用退化维度提高事实表的易用性
事实表设计方法
确定业务过程(创建订单,买家付款,卖家发货)
声明粒度(一个父订单可能是购物车,一个子订单是每个商品的订单,那么订单
确认维度
确定事实
冗余维度
(冗余尽可能多的维度让下游方便使用,减少连表数量)
事实表分类
4数据组织类型
星座模型:一个事实表,一组维度表
雪花模型:星座表基础上,维度表可以连接维度表
星座模型:多个事实表可以共享维度表
5维度建模步骤
6数据仓库分层
原因和优点
1空间换时间:大量预处理提升用户体验,仓库会有大量冗余数据
2增强扩展性
不分层,业务规则发生变化,影响数据清洗
3分层管理,复杂问题简单化
4数据结构清晰
5方便血缘追踪:如果有其中一张源表出现问题,可以快速追踪
6减少重复开发:通用中间层复用
7屏蔽原始数据异常
分层
ODS原始数据层,贴源层(flume日志行为数据,DataX业务数据,sqoop)
DW数据仓库层(dws汇总数据层,dwd明细数据层,dim维度表)
ADS数据服务层(Fine BI report)
7ETL
数据抽取(Extract),数据清洗转换(Transform),数据装载(Load)
8常见概念描述
数据仓库:针对企业
数据集市:针对部门
数据孤岛:各部门数据不流通,形成数据孤岛
数据湖:未处理的数据,结构化,非结构化,也可作为数据仓库
数据中台,为数据服务提供API
宽表:字段较多的表,不遵循三范式
窄表:字段较少的表,遵循三范式
9大数据架构
数据采集==》数据处理==》数据输出与展示