数据仓库


参考于b站各类数据仓库的教程视频

1.数据仓库的概念

数据仓库(DataWarehouse)是为企业所有决策制定过程,提供所有系统数据支持的战略集合。通过对数据仓库中的数据的分析,可以帮助企业,改进业务流程、控制成本、提高产品的质量等等。
数据仓库并不是数据最终的目的地,而是为数据最终的目的地做好准备
它不是数据的最终目的地,而是为数据最终的目的地做好准备,这些准备包括对数据的清洗、转义、重组、合并、拆分、统一等。
举个例子,日志采集系统、业务系统的数据库、爬虫系统等通过etl工具数据写入数据仓库,接着我们的报表系统,用户画像、推荐系统、机器学习以及风控系统等均可利用数据仓库进行开发。

数据仓库与数据集市的区别

数据集市DataMarket,是一种微型的数据仓库,它通常由更少的数据以及主题领域,历史数据也不多,所以是部门级别的,一般只为某个局部范围的管理人员服务。数据仓库是企业级别的,能为整个企业各个部门的运行提供决策提供手段
在这里插入图片描述

数据库和数据仓库的区别

数据库和数据仓库的区别实际上是OLTP和OLAP的区别。
[1] 操作型处理,叫联机事务OLTP(ON LINE Transcation Processing),也可以成为面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少量的记录进行查询,修改。用户较为关心操作的响应实践,数据的安全性、完整性和并发支持的用户数量等问题,传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
[2] 分析型处理,叫联机分析处理OLAP(OnLIne Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策。
首先,数据仓库的出现绝不是要取代数据库。
a.数据库是面向事务的设计,数据仓库是面向主题设计的。
b.数据库一般存储业务数据,数据仓库存储的一般是历史数据。
c.数据库设计尽量避免冗余,一般针对某一业务应用进行设计,而数据仓库在设计的时候是有意引入了冗余,依照分析需求,分析维度、分析指标设计
d.数据库是为捕获数据而设计,数据仓库是为了分析数据而设计。

数据仓库的分层架构

按照数据流入流出的过程,数据仓库可以粗略分为三层
贴源层(源数据)-》数据仓库-》数据应用
从元数据层到数据仓库的这个过程叫EtL。
在这里插入图片描述
ODS:源数据层,此层数据无任何更改,直接沿用了外围系统数据结构和数据,不对外开发,为临时存储层,是接口数据的临时存储区域,为后一步的数据处理做准备。
DW:数据仓库层,也叫细节层,DW层的数据应该是一致的、准确的、干净的数据,即对源系统数据进行了清洗(去除了)杂质后的数据。这层也分出来dwd和dws层
ADS:数据应用层,也有叫DA或者APP的,前端应用直接读取的数据源,根据报表、专题分析需求而计算产生的数据。
数据仓库从各个数据源获取数据以及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra、转化Transfer、转载Load)的过程,ETL是数据仓库的流水线,也可以认为是数据仓库的血液,数据仓库的日常管理和维护工作的大部分精力就是保持ETL的正常和稳定

数据仓库命名规范

 ODS层命名为ods_表名
 DWD层命名为dwd_dim/fact_表名
 DWS层命名为dws_表名
 ADS层命名为ads_表名

数据仓库的分层目的

用空间置换时间,通过大量的预处理来提升应用系统的用户体验效率,所以数据仓库存在大量冗余的数据;不分层的化,如果源业务系统的业务规则发生变化将会影响整个数据清洗过程,工作量巨大。
通过数据仓库分层管理可以简化数据清洗的过程,因为把原来一步的工作分成了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作。

数据仓库的元数据管理

按照传统的定义来说,元数据是关于数据的数据。在数据仓库系统中,元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便地找到他们关心的数据。
(1) 元数据是进行数据集成所必需的

数据仓库最大的特点就是它的集成性。这一特点不仅体现在它所包含的数据上,还体现在实施数据仓库项目的过程当中。一方面,从各个数据源中抽取的数据要按照一定的模式存入数据仓库中,这些数据源与数据仓库中数据的对应关系及转换规则都要存储在元数据知识库中;另一方面,在数据仓库项目实施过程中,直接建立数据仓库往往费时、费力,因此在实践当中,人们可能会按照统一的数据模型,首先建设数据集市,然后在各个数据集市的基础上再建设数据仓库。不过,当数据集市数量增多时很容易形成“蜘蛛网”现象,而元数据管理是解决“蜘蛛网”的关键。如果在建立数据集市的过程中,注意了元数据管理,在集成到数据仓库中时就会比较顺利;相反,如果在建设数据集市的过程中忽视了元数据管理,那么最后的集成过程就会很困难,甚至不可能实现。

(2) 元数据定义的语义层可以帮助最终用户理解数据仓库中的数据

最终用户不可能象数据仓库系统管理员或开发人员那样熟悉数据库技术,因此迫切需要有一个“翻译”,能够使他们清晰地理解数据仓库中数据的含意。元数据可以实现业务模型与数据模型之间的映射,因而可以把数据以用户需要的方式“翻译”出来,从而帮助最终用户理解和使用数据。

(3) 元数据是保证数据质量的关键

数据仓库或数据集市建立好以后,使用者在使用的时候,常常会产生对数据的怀疑。这些怀疑往往是由于底层的数据对于用户来说是不“透明”的,使用者很自然地对结果产生怀疑。而借助元数据管理系统,最终的使用者对各个数据的来龙去脉以及数据抽取和转换的规则都会很方便地得到,这样他们自然会对数据具有信心;当然也可便捷地发现数据所存在的质量问题。甚至国外有学者还在元数据模型的基础上引入质量维[6],从更高的角度上来解决这一问题。

(4) 元数据可以支持需求变化

随着信息技术的发展和企业职能的变化,企业的需求也在不断地改变。如何构造一个随着需求改变而平滑变化的软件系统,是软件工程领域中的一个重要问题。传统的信息系统往往是通过文档来适应需求变化,但是仅仅依靠文档还是远远不够的。成功的元数据管理系统可以把整个业务的工作流、数据流和信息流有效地管理起来,使得系统不依赖特定的开发人员,从而提高系统的可扩展性。
在这里插入图片描述
元数据科分为技术元数据和业务元数据。
技术元数据为开发和管理数据仓库的IT人员使用,它描述了与数据仓库开发、管理和维护相关的数据,包括数据源信息、数据转换描述、数据仓库模型、数据清洗与更新规则、数据映射和访问权限等。
而业务元数据为管理层和业务分析人员服务、从业务角度描述数据、包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,帮助业务人员更好地理解数据仓库中哪些数据可用以及如何使用。

2.数据仓库理论

范式

范式可以理解为设计一张数据表的表结构,符合的标准级别。 规范和要求。
目前业界范式有:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式 (BCNF)、第四范式(4NF)、第五范式(5NF)。

1NF

属性不可切割
在这里插入图片描述

2NF

2NF的核心是不能讠部分函数依赖
在这里插入图片描述

3NF

在这里插入图片描述

范式的优点

关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性。 为什么要降低数据冗余性?
(1)十几年前,磁盘很贵,为了减少磁盘存储。
(2)以前没有分布式系统,都是单机,只能增加磁盘,磁盘个数也是有限的
(3)一次修改,需要修改多个表,很难保证数据一致性

范式的缺点

范式的缺点是获取数据时,需要通过 Join 拼接出最后的数据。

OLTP与OLAP

当今的数据处理大致可以分成两大类:联机事务处理 OLTP(on-line transaction processing)、联机分析处理 OLAP(On-Line Analytical Processing)。OLTP 是传统的关系 型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP 是数据仓库 系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。二 者的主要区别对比如下表所示。
在这里插入图片描述
在这里插入图片描述

关系模型

在这里插入图片描述
关系模型如图所示,严格遵循第三范式,特点是较为松散、零碎、物理表数量多而数据冗余程度地。由于数据分布于众多的表里面,这些数据可以更为灵活被应用,功能性较强。关系模型主要应用于OLTP系统中,为了保证数据的一致性以及避免冗余,所以大部分的业务系统的表均为遵循第三范式。
在这里插入图片描述
维度模型如图所示,主要应用于OLAP系统。通常以一个实施表为中心进行表的组织,主要面向业务,特征是存在数据的冗余,但是得到数据方便。
关系模型虽然冗余少,但是在大规模数据、跨表分析统计查询过程中,会造成多表关联,这回大大降低执行效率。所以通常我们采用维度模型建模,把各种表整理为事实表和维度表/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值