欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

数据仓库详解及分层理论

程序员文章站 2022-07-08 12:05:26
目录数据仓库定义数据仓库的特点数据仓库的作用数据仓库与传统数据库的区别数据仓库的架构数据仓库的要求什么是数据仓库分层数据仓库分层的原因数据仓库具体的分层说明数据仓库定义数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用使用。数据仓库的特点面向主题的:数据仓库都是基于某个明确的主题,仅需要与该主题相关的数据,其他的无关细节将会被去掉。​ 集成的...

数据仓库定义

数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用使用。

数据仓库的特点

面向主题的:数据仓库都是基于某个明确的主题,仅需要与该主题相关的数据,其他的无关细节将会被去掉。

​ 集成的:数据仓库里面的数据都是经过ETL( Extract-Transform-Load 抽取-转换-加载)操作后被集中放到同一个数据源,数据仓库里的数据是来自于各种不同的数据源。

​ 随时间变化的:关键数据隐式或者显示地随时间变化而变化。

​ 数据相对稳定的:数据装入后一般只是进行查询操作,没有传统数据库的增删改操作。

总结:数据仓库就是整合多个数据源的历史数据进行细粒度的、多维的分析,可以有效地帮助高层管理者或者业务分析人员做出商业战略决策或商业报表。

数据仓库的作用

可以整合公司的所有业务,建立统一的数据中心。
​ 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果。
​ 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环。
​ 可以提供数据报表,用于公司的决策等等。

数据仓库与传统数据库的区别

传统数据库 数据仓库 特征 用于操作处理,面向OLTP 用于信息处理,面向OLAP 用户 用户:DBA、开发。用户规模:数百或数亿 用户:经理、主管、分析人员。用户规模:数百 功能 日常操作 长期信息需求、决策支持 DB设计 基于ER模型,面向应用 星形/雪花模型,面向主题 数据 当前的、最新的 历史的、跨时间维护

​ 注解 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作。OLAP系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。

数据仓库的架构

数据仓库详解及分层理论

数据仓库的要求

​ 高效率:数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,以日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,如果数据仓库设计的不好,需要延时一到两天才能显示数据,这显然是不能出现这种事情的。

​ 数据质量高:数据仓库所提供的各种信息,肯定要准确的数据。数据仓库通常要经过数据清洗,装载,查询,展现等多个流程而得到的,如果复杂的架构会有更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据不准确或者有错误,如果客户看到错误的信息就可能导致分析出错误的决策,造成损失经济的损失。

​ 扩展性:之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,因为如果在未来需要扩展一些新的功能了,就可以不用重建数据仓库系统,就能很稳定运行。因为重建一个数据创库是比较耗费人力和财力。可扩展性主要体现在数据建模的合理性。

​ 为了达到上述的要求,建立起一个高效率、高数据质量、良好的可扩展性,再加上为了提高建仓的速度,根据在实际生产环境中的经验的总结,于是就提出来了数据仓库的分层概念,那么到底什么是数据仓库的分层?为什么要分成?数据仓库的分层的好处是什么呢?接下来将介绍关于数据仓库分层的一些概念。

什么是数据仓库分层

分层是数据仓库解决方案中,数据架构设计的一种数据逻辑结构 ,通过分层理念建立的数据仓库,它的可扩展性非常好,这样设计出来的模型架构,可以任意地增减、替换数据仓库中的各个组成部分。

数据仓库分层的原因

​ 1、用空间换时间,通过数据预处理提高效率,通过大量的预处理可以提升应用系统的用户体验(效率),但是数据仓库会存在大量冗余的数据.

​ 2、增强可扩展性,方便以后业务的变更。如果不分层的话,当源业务系统的业务规则发生变化整个数据仓库需要重建,这样将会影响整个数据清洗过程,工作量巨大。

​ 3、通过分层管理来实现分步完成工作,简化数据清洗的过程,使每一层处理逻辑变得更简单。因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。

数据仓库具体的分层

标准的数据仓库分层:ODS(操作数据存储层),DWD(数据明细层),DWS(数据服务层),app(数据应用层)
① ODS(Operational Data Store):操作数据存储层,往往是业务数据库表格的一对一映射,将业务数据库中的表格在 ODS重新建立,数据完全一致。
② DWD(Data Warehouse Detail):数据明细层,在 DWD 进行数据的清洗、脱敏、统一化等操作,DWD 层的数据是干净并且具有良好一致性的数据。
③ DWS(Data Warehouse Service):服务数据层(公共汇总层),在 DWS 层进行轻度汇总,为 DM 层中的不同主题提供公用的汇总数据。

说明

数据层次的划分不是固定不变的,可以根据工作当中实际项目的需要进行适当裁剪或者是添加。如果业务相对简单和独立,可以将核心数据层与分析应用层进行合并。另外,分析应用的数据可以来自多维模型的数据,也可以来自关系模型数据甚至原始数据。

本文地址:https://blog.csdn.net/weixin_43900767/article/details/107358779