数据仓库

1. 什么是数据仓库? 

数据仓库(Data Warehouse),可简写为DW或DWH,数据仓库,是为了企业所有级别的决策制定计划过程,提供所有类型数据类型的战略集合。它出于分析性报告和决策支持的目的而创建。为需要业务智能的企业 ,为需要指导业务流程改进、监视时间,成本,质量以及控制等。

数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何数据,数据来源于外部,并且开放给外部应用,这就是为什么叫“仓库”,而不叫“工厂”的原因。

2. 数据仓库的主要特征

数据仓库是面向主题的、是集成的、非易失的、是随着时间的变化而变化的数据集合,用以支持管理决策。

(1)面向主题:指数据仓库中的数据是按照一定的主题域进行组织。主题是一个较高乘次的概念,是较高层次上企业信息系统中的数据综合,归类并进行分析的对象。在逻辑意义上,是对企业中某一个宏观分析领域所涉及的分析对象。(举例)人:就是用户用数据仓库进行决策所关心的重点方面,一个主题通常与多个操作信息型系统有关,而操作型数据库的数据组织面向事务处理任务,各个任务之间是相互隔离的)

数据仓库_第1张图片

(2)集成:数据仓库的数据是从原来的分散的数据库数据(mysql等关系型数据库)抽取出来的。是指对原有分散的数据库数据经过系统加工, 整理得到的消除源数据中的不一致性。

第一,数据仓库的每一个主题所对应的源数据在所有的各个分散的数据库中,有许多重复和不一样的地方,且来源于不同的联机系统的数据都和不同的应用逻辑捆绑在一起;第二,数据仓库中的综合数据不能从原来有的数据库系统直接得到。因此在数据进入数据仓库之前,必然要经过统一与综合,这一步是数据仓库建设中最关键,最复杂的一步。则需要完成的工作有: ①要统计源数据中所有矛盾之处,如字段的同名异议、异名同义、单位不统一,字长不统一等。②进行数据的综合和计算。数据仓库中的数据综合工作可以在原有数据库抽取数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。

(3)相对稳定:指一旦某个数据进入数据仓库以后只需要定期的加载、刷新。数据仓库的数据主要提供企业决策分析之用,所涉及的数据操作主要是数据查询一般情况下并不进行修改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合, 以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据

(4)反映历史变化:指通过这些信息,对企业的发展历程和未来趋势做出定量分析预测。数据仓库的用户进行分析处理是不进行数据更新操作的。但并不是说,在从数据集成输入数据仓库开始到最后被删除的整个生存周期中,所有的数据仓库数据都是永远不变的。数据仓库的数据是随着时间变化而变化的,这是数据仓库的特征之一。这一特征主要有以下三个表现: 

  • 数据仓库随着时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉OLTP数据库中变化的数据,追加到数据仓库当中去,即不断的生成OLTP数据库的快照,经统一集成增加到数据仓库中去;如果捕捉到新的变化数据,则只生成一个新的数据库快照增加进去,而不会对原有的数据库快照进行修改。
  • 数据库随着时间变化不断删去旧的数据内容 。数据仓库内的数据也有存储期限,一旦过了这一期限,过期数据就要被删除。只是数据仓库内的数据时限要远远的长于操作型环境中的数据时限。在操作型环境中一般只保存有60~90天的数据,而在数据仓库中则要需要保存较长时限的数据(例如:5~10年),以适应DSS进行趋势分析的要求。
  • 数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关,如数据经常按照时间段进行综合,或隔一定的时间片进行抽样等等。这些数据要随着时间的变化不断地进行从新综合。因此数据仓库的数据特征都包含时间项,以标明数据的历史时期。

3. 数据仓库与数据库的区别

数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别。

操作性处理叫连机事务处理OLTP(On-Line Transaction Processing),也叫面向交易的处理系统,是针对具体业务再数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作性处理。

分析型处理叫联机分析处理OLAP(On-Line Analytical Processing),一般针对某些主题的历史数据进行分析,支持管理决策。首先,数据仓库的出现,并不是要取代数据库。

数据仓库与数据库的主要区别在于:

  • 数据库是面向事务的设计,数据仓库是面向主题设计的。

  • 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 

  • 数据库设计是尽量避免冗余,数据仓库在设计是有意引入冗余。 

  • 数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

4. 数据仓库的分层架构

按照数据流入与流出的过程,数据仓库分为三层:源数据、数据仓库、数据应用。

数据仓库_第2张图片

数据自下而上流入数据仓库后想上层开放应用,数据仓库只是中间集成化数据管理的一个平台。

  • 源数据层(ODS):此层数据无任何更改,直接沿用外围i系统数据结构和数据,不对外开放,为临时存储层,是接口数据的临时存储区域,位后一步的数据处理做准备。

  • 数据仓库层(DW):细节层,这层的数据是对院系统数据进行清洗之后的数据。

  • 数据应用层(DA或APP):前端应用直接读取数据源,根据报表、专题分析需求而计算生成的数据

数据仓库从各种数据源获取数据以及再数据仓库内的数据转换和流动都可以认为是ETL(抽取extra,转化transfer,装载load)的过程。ETL是数据仓库的流水线,也可以认为是数据仓库的血液。

5. 数据仓库分层的原因

  • 用空间换时间。通过数据预处理提高效率,通过大量的预处理可以提升应用系统的用户体验(效率),但是数据仓库会存在大量冗余的数据.
  • 增强可扩展性,方便以后业务的变更。如果不分层的话,当源业务系统的业务规则发生变化整个数据仓库需要重建,这样将会影响整个数据清洗过程,工作量巨大。
  • 通过分层管理来实现分步完成工作,简化数据清洗的过程,使每一层处理逻辑变得更简单。因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。

6. 数据仓库元数据管理

元数据(Meta Date),主要记录数据仓库中模型的定义、各层级间的映射关系、监控数据仓库的数据状态及ETL的任务运行状态。一般会通过元数据资料库(Metadata Repository)来统一地存储和管理元数据,其主要目的是使数据仓库的设计、部署、操作和管理能达成协同和一致。

元数据是数据仓库管理系统的重要组成部分,元数据管理是企业级数据仓库中的关键组件,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、使用和维护。

  • 构建数据仓库的过程中,主要步骤之一是ETL。这时元数据发挥重要的作用:它定义了源数据系统到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、数据更新的规则、数据导入历史记录以及装载周期等相关内容。数据抽取和转换的专家以及数据仓库管理员正是通过元数据高效地构建数据仓库。

  • 用户在使用数据仓库时,通过元数据访问数据,明确数据项的含义以及定制报表。

  • 数据仓库的规模及其复杂性离不开正确的元数据管理,包括增加或移除外部数据源,改变数据清洗方法,控制出错的查询以及安排备份等。

数据仓库_第3张图片
元数据可分为技术元数据业务元数据

  • (1)技术元数据:技术元数据为开发和管理数据仓库的IT 人员使用。它描述了与数据仓库开发、管理和维护相关的数据,包括数据源信息、数据转换描述、数据仓库模型、数据清洗与更新规则、数据映射和访问权限等。
  • (2)业务元数据:业务元数据为管理层和业务分析人员使用。它从业务角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,以帮助业务人员更好地理解数据仓库中哪些数据是可用的以及如何使用。
     

 

你可能感兴趣的:(Hive零基础到入门)