一、数据仓库架构设计
ETL即为load(装载),extract(抽取),transform(转换)
构架原则:先水平分层,在垂直分主题域
数据架构分三层:
源数据落地取(SDF:Source Data File)
数据仓库层(DW:Data WareHouse)
数据集市层(DM:Data Market)
数据仓库进一步细分为三层
源数据层(DWB)
细节数据层(DWD)
汇总数据层(DWS)
二、数据仓库建模
目前的构建方法主要有三种:
范式建模法
维度建模法
实体建模法
1.范式建模:主要解决关系型数据库的数据存储
数据库六大范式说明
第1范式-1NF:无重复的列、列不可再拆分。
第2范式-2NF:属性完全依赖于主键
第3范式-3NF:属性不依赖于其它非主属性,即属于依赖于主键不能出现传递依赖。
巴斯-科德范式(BCNF),第四范式(4NF),第五范式(5NF,又称完美范式)
维度建模法:
星型建模法:
2.2 数据库事务ACID四大特性
原子性(Atomicity)
整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性(Consistency)
一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
隔离性(Isolation)
隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。
如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。
亦称为串行化
持久性(Durability):
在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
三丶函数分类
分析函数
ROW_NUMBER:
RANK:
DENSE_RANK:
LAG:函数LAG(col,n,DEFAULT)用于统计窗口内往上第n行值。
LEAD:与LAG作用相反,函数形式如LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值。
FIRST_VALUE: 取分组内排序后,截止到当前行,第一个值
LAST_VALUE:与FIRST_VALUE相反
over()从句:指定分析窗口函数的细化落围规则
与标准的聚合函数COUNT、SUM、MIN、MAX、AVG联用,如sum(…) over(…)
PARTITION BY语句,使用一个或者多个原始数据类型的列
PARTITION BY与ORDER BY语句,使用一个或者多个数据类型的分区或者排序列
使用窗口规范窗口规范支持以下格式:
ROWSBETWEEN:窗口子句,属于物理截取,即物理窗口,从行数上控制截取数据的大小多少。
RANGE BETWEEN:窗口子句,属于逻辑截取,即逻辑窗口,从列值上控制窗口的大小多少。
PRECEDING:window子句之往前
FOLLOWING:window子句之往后 CURRENT ROW:window子句之当前行
UNBOUNDED:window子句之起点,UNBOUNDED PRECEDING 表示从前面的起点,UNBOUNDED
FOLLOWING:表示到后面的终点。 注意:order by子句后边如果没有跟着多大窗口,则默认为range between unbounded preceding and current row



