一:OLTP与OLAP
操作型处理,叫联机事务处理 OLTP (On-Line Transaction Processing,),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询,修改。用户较为关心操作的响应时间,数据的安全性,完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策。
OLTP与OLAP的异同:
操作型处理 | 分析型处理 |
细节的 | 综合的或提炼的 |
实体-关系(ER)模型 | 星型或雪花模型 |
存取瞬间数据 | 存储历史数据,不包含最近的数据 |
可更新的 | 只读,只追加 |
一次操作一个单元 | 一次操作一个集合 |
性能要求高,响应时间短 | 性能要求宽松 |
面向事务 | 面向分析 |
一次操作数据量小 | 一次操作数据量大 |
支持日常操作 | 支持决策需求 |
数据量小 | 数据量大 |
客户订单、库存水平和银行账户等 | 客户收益分析、市场细分等 |
二:数仓的基本理论
1.关系模式范式
范式理论概述:
关系型 数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴斯-科德范式(BCNF),第四范式(4NF),第五范式(5NF)。
范式的标准定义是:符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度。通俗的讲,范式可以理解为一张数据表的表结构所符合的某种设计标准的级别。
使用范式的根本目的是:减少数据冗余,尽量让每个数据只出现一次,获取数据时通过join拼接出最后的数据。
一范式:域应该是原子性的,即数据库表的每一列都是不可分割的原子数据项。
域:域就是列的取值范围,比如性别的域就是 男 女 。
二范式:在1NF 的基础上,实体的属性完全函数依赖于主关键字,不能存在不分函数依赖于主关键字。通俗的讲就是 只依赖于一个主键。
三范式:在2FN的基础之上,消除了非主属性对于主键的传递依赖。简单来说的话就是:主键不能传递依赖,但是外键可以传递依赖。
----------------------------------------------------------------
三:数据仓库建模的基本理论
数据仓库建模的目标是通过建模的方法更好的组织,存储数据,以便在性能,成本,效率和数据质量之间找到最佳平衡点。
维度模型
维度模型的理论是由Ralph Kimball 提出,他提出将数据仓库种的表划分为事实表和维度表两种类型。
维度建模源自 数据集市,主要面向分析场景。
“事实表” 用来存储事实的度量及指向各个维的外键值。
“维度表”用来保存该维的元数据,即维的描述信息,包括维的层次及成员类别等。
数据仓库的模型:业务模型 领域模型 逻辑模型 物理模型
建模的模式:
星型模式:由事实表和维度表组成,一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表。
雪花模式:所谓的雪花化 就是讲星型模式中的维度表进行规范化处理。
在雪花模式中,一个维度被规范化成多个关联的表,而在 星型模式中,每个维度由一个单一的维度表所表示。
星座模式:数据仓库由多个主题构成,包含多个事实表,而维表是公共的,可以共享,这种模式可以看做星型模式的汇集,因而称作星系模式或者事实星座模式。
在实际项目中,不会刻意地去考虑雪花模型,而是刻意的于考虑星型模型,特别是大数据领域的建模,倾斜于使用数据冗余来提高查询效率,倾向于星型模型;雪花模型只会应用在一些魔门要求模型的灵活性,要求保证模型本身稳定的性的场景下,但是雪花模型并不是首选。
数据仓库分层理论:
ODS:操作数据存储层,往往是业务数据表格的一对一映射,讲业务数据库中的表格在ODS重新建立,数据完全一致。
DWD:数据明细层,,在DWD进行数据的清洗,脱敏,统一化等操作,DWD层的数据是干净并且具有良好一致性的数据;mapreduce
DWS:公共汇总层。在DWS层进行轻度的汇总,为DM层中的不同主题提供公用的汇总数据。
DM:数据集市层,DM针对笔筒的主题进行统计报表的生成;
--------------------------------
四:命名规范
DWD层:d_ord_info_d
DWS层:s_ord_st_d
ODS层:o_buss-loan-order_d