什么是数据仓库,数据仓库如何分层

2024-05-19

1. 什么是数据仓库,数据仓库如何分层

数据仓库分层的原因
1通过数据预处理提高效率,因为预处理,所以会存在冗余数据
2如果不分层而业务系统的业务规则发生变化,就会影响整个数据清洗过程,工作量巨大
3通过分层管理来实现分步完成工作,这样每一层的处理逻辑就简单了

标准的数据仓库分层:ods(临时存储层),pdw(数据仓库层),mid(数据集市层),app(应用层)
ods:历史存储层,它和源系统数据是同构的,而且这一层数据粒度是最细的,这层的表分为两种,一种是存储当前需要加载的数据,一种是用于存储处理完后的数据。
pdw:数据仓库层,它的数据是干净的数据,是一致的准确的,也就是清洗后的数据,它的数据一般都遵循数据库第三范式,数据粒度和ods的粒度相同,它会保存bi系统中所有历史数据
mid:数据集市层,它是面向主题组织数据的,通常是星状和雪花状数据,从数据粒度将,它是轻度汇总级别的数据,已经不存在明细的数据了,从广度来说,它包含了所有业务数量。从分析角度讲,大概就是近几年
app:应用层,数据粒度高度汇总,倒不一定涵盖所有业务数据,只是mid层数据的一个子集。

数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持。数据仓库的context也可以理解为:数据源,数据仓库,数据应用

数据仓库可以理解为中间集成化数据管理的一个平台
etl(抽取extra,转化transfer,装载load)是数据仓库的流水线,也可以认为是数据仓库的血液。
数据仓库的存储并不需要存储所有原始数据,因为比如你存储冗长的文本数据完全没必要,但需要存储细节数据,因为需求是多变的,而且数据仓库是导入数据必须经过整理和转换使它面向主题,因为前台数据库的数据是基于oltp操作组织优化的,这些可能不适合做分析,面向主题的组织形式才有利于分析。
多维数据模型就是说可以多维度交叉查询和细分,应用一般都是基于联机分析处理(online analytical process OLAP),面向特定需求群体的数据集市会基于多位数据模型构建
而报表展示就是将聚合数据和多维分析数据展示到报表,提供简单和直观的数据。
元数据,也叫解释性数据,或者数据字典,会记录数据仓库中模型的定义,各层级之间的映射关系,监控数据仓库的数据状态和etl的任务运行状态。一般通过元数据资料库来统一存储和管理元数据。

什么是数据仓库,数据仓库如何分层

2. 数据仓库的体系结构

 是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;数据的存储与管理是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。OLAP服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP(多维在线分析处理)和HOLAP(混合型线上分析处理)。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。 元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库使用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。 为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是在实施不同的数据集市时,同一含义的字段定义一定要相容,这样在以后实施数据仓库时才不会造成大麻烦。国外知名的Garnter关于数据集市产品报告中,位于第一象限的敏捷商业智能产品有QlikView, Tableau和SpotView,都是全内存计算的数据集市产品,在大数据方面对传统商业智能产品巨头形成了挑战。国内BI产品起步较晚,知名的敏捷型商业智能产品有PowerBI, 永洪科技的Z-Suite,SmartBI,FineBI商业智能软件等,其中永洪科技的Z-Data Mart是一款热内存计算的数据集市产品。国内的德昂信息也是一家数据集市产品的系统集成商。 为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。

3. 浅谈数据仓库体系(3)-历史层

如上文所说,一个基本的数据仓库分为贴源层,历史层,数据模型层
  
 本文主要来讲一下历史层(his),重点是如下三个方面
  
 1.历史层的数据清洗
  
 2.历史层的数据存储
  
 3.历史层的数据校验
  
 
  
  
 历史层,顾名思义,就是保存所有的历史数据,我们知道数据仓库的一个原则就是数据是不变的,就是说进来了的数据就不做更改,不做删除,那这个不做更改,不做删除,主要体现在的就是历史层。
  
 数据仓库体系是一个OLAP体系,主要用来分析历史数据的,那么历史层数据的保存就显得异常的重要。
  
 一.历史层的数据清洗
  
 到了历史层,其实对清洗的要求也不会很高,如果在ODS层做了基本的清洗,那么在历史层要做的清洗就更少了。历史层因为是保存历史的数据,简单的理解就是把ODS的数据全部都存一遍,历史层的粒度最好还是保持最细的粒度,在历史层来说,相对更为重要的应该是存储了。本文也主要讲述历史层的存储
  
 二.历史层的数据存储
  
 历史层的数据存储主要有4种,1.全量,2.增量切片,3.全量切片,4.拉链
  
 1.全量
  
 如前面ODS讲到的,如果我们是全量把数据导入到ODS的,我们会根据业务需要,如果是缓慢变化的,或者确认这种变化后对我们的业务作用基本可以忽略不计的,我们通常就采取全量的方式存储,这样的存储方式其实是和ODS里面一样的。
  
 2.全量切片
  
 如前面ODS讲到的,如果我们是全量把数据导入到ODS的,如果数据量不是很大的话,我们通常考虑全量切片的方式。就是把每一次全量抽取过来的数据都保存下来,然后在后面加一个操作时间字段
  
  这里要讲一下选择全量存储,还是全量切片存储的问题 
  
        对于数据仓库来说,因为要保存历史的数据,历史的变化,那么在这种原则下,我们肯定优先选择全量切片存储了。但是,我们还需要考虑其他的存储和实际的业务情况。
  
 (1)个就是存储空间的问题,假设一张很大的表从源体系全量抽取的,每天1个T,一年下来就365T,hive中再乘以3,那对存储空间的要求实在太多了。可能这张表变化的字段就是一个一年就用一次的字段。从存储和使用比来说,划不来。
  
 (2)个就是使用问题,在hive这种有分区的数仓体系中还好,如果是oracle,TD等数据仓库,如果这张表存储了1年的数据,我要查一个某一天的数据的某一部分,可能怎么样都没法查出来了
  
 所以通常的原则,1.是小表,变化比较频繁的表,变化的字段比较重要,并且经常要进行历史对比的表,考虑全量切片
  
 如果是变化比较慢,并且变化的字段基本不用的,就全量存储就好,比如,一张地区维度表,把北京市统一改为北京存储了,其实就没有必要每天都存一遍了。
  
 (3).就是数据量大,变化的字段比较缓慢的,这样也考虑用全量表
  
 那么这里问题就来了,如果数据量大,又变化的字段比较重要呢?
  
 也许这真的就是数据存储中的一个难题了,现在大数据量,又变化快的情况,可能主要使用的还是增量切片的方式,
  
 3.增量切片,就是把新增的数据存储下来,或者说变化的数据存储下来,一般来说,这是当前一种主要的存储形态
  
 主要优点有2个:
  
            1> 增量数据相对全量数据来说,量级会少好多,会节省很多存储空间
  
            2>每天存储变化的值,在我们做相关使用时,效率会更高,总体的数据量级会少
  
 4.拉链表
  
     拉链表对于很多人来说可能比较陌生,一般做数据仓库没做个一年,可能都不会接触到这种类型的表,并且目前考虑用这种表存储的情况,实际来说比较少,这里就说两点:1.拉链表本质上适合与缓慢变化的大量数据集,2.拉链表的使用不方便。
  
 
  
  
 
  
  
 三.历史层的数据校验
  
 历史数据的准确性,是数据仓库分析的基础,对于历史数据的校验,其他也遵循通用的校验方法,因为多了历史数据缘故,还可以加一些趋势性的校验方法,比如同比,环比的数据总量,某一类指标的变化阈值,都可以根据历史数据做一定的预警

浅谈数据仓库体系(3)-历史层

4. 数据仓库系统有哪三个工具层

【数据仓库系统的三个工具层】数据仓库系统通常采用3层的体系结构,底层为数据仓库服务器,中间层为OLAP服务器,顶层为前端工具。具体如下:
1、数据源和数据的存储与管理部分可以统称为数据仓库服务器。
(1)数据源:是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息,等等。
(2)数据的存储与管理:是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。
2、OLAP服务器:对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP、MOLAP和HOLAP。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。
3、前端工具:主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具,以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。