数据仓库是什么_数据仓库的特点_数据仓库与数据库区别

电子说

1.3w人已加入

描述

  数据仓库是什么

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

  数据仓库的特点

  1.主题性

  数据仓库是一般从用户实际需求出发,将不同平台的数据源按设定主题进行划分整合,与传统的面向事务的操作型数据库不同,具有较高的抽象性。面向主题的数据组织方式,就是在较高层次对分析对象数据的一个完整、统一并一致的描述,能完整及统一地刻画各个分析对象所涉及的有关企业的各项数据,以及数据之间的联系。

  2.集成性

  数据仓库中存储的数据大部分来源于传统的数据库,但并不是将原有数据简单的直接导入,而是需要进行预处理。这是因为事务型数据中的数据一般都是有噪声的、不完整的和数据形式不统一的。这些“脏数据”的直接导入将对在数据仓库基础上进行的数据挖掘造成混乱。“脏数据”在进入数据仓库之前必须经过抽取、清洗、转换才能生成从面向事务转而面向主题的数据集合。数据集成是数据仓库建设中最重要,也是最为复杂的一步。

  3.稳定性

  数据仓库中的数据主要为决策者分析提供数据依据。决策依据的数据是不允许进行修改的。即数据保存到数据仓库后,用户仅能通过分析工具进行查询和分析,而不能修改。数据的更新升级主要都在数据集成环节完成,过期的数据将在数据仓库中直接筛除。

  4.动态性

  数据仓库数据会随时间变化而定期更新,不可更新是针对应用而言,即用户分析处理时不更新数据。每隔一段固定的时间间隔后,抽取运行数据库系统中产生的数据,转换后集成到数据仓库中。随着时间的变化,数据以更高的综合层次被不断综合,以适应趋势分析的要求。当数据超过数据仓库的存储期限,或对分析无用时,从数据仓库中删除这些数据。关于数据仓库的结构和维护信息保存在数据仓库的元数据(Metadata)中,数据仓库维护工作由系统根据其中的定义自动进行或由系统管理员定期维护。

  数据仓库的基本架构

  数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(DecisionSupport)。其实数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。因此数据仓库的基本架构主要包含的是数据流入流出的过程,可以分为三层——源数据、数据仓库、数据应用:

数据库

  从图中可以看出数据仓库的数据来源于不同的源数据,并提供多样的数据应用,数据自上而下流入数据仓库后向上层开放应用,而数据仓库只是中间集成化数据管理的一个平台。

  数据仓库的数据来源

  数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra,转化Transfer,装载Load)的过程,ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。

  数据仓库的数据存储

  数据仓库并不需要储存所有的原始数据,同时数据仓库需要储存部分细节数据。简单地解释下:

  a.为什么不需要所有原始数据?数据仓库面向分析处理,但是某些源数据对于分析而言没有价值或者其可能产生的价值远低于储存这些数据所需要的数据仓库的实现和性能上的成本。比如我们知道用户的省份、城市足够,至于用户究竟住哪里可能只是物流商关心的事,或者用户在博客的评论内容可能只是文本挖掘会有需要,但将这些冗长的评论文本存在数据仓库就得不偿失;

  b.为什么要存细节数据?细节数据是必需的,数据仓库的分析需求会时刻变化,而有了细节数据就可以做到以不变应万变。如果我们只存储根据某些需求搭建起来的数据模型,那么显然对于频繁变动的需求会手足无措;

  数据仓库基于维护细节数据的基础上在对数据进行处理,使其真正地能够应用于分析。主要包括三个方面:

  1.数据的聚合

  这里的聚合数据指的是基于特定需求的简单聚合(基于多维数据的聚合体现在多维数据模型中),简单聚合可以是网站的总Pageviews、Visits、UniqueVisitors等汇总数据,也可以是Avg.timeonpage、Avg.timeonsite等平均数据,这些数据可以直接地展示于报表上。

  2.多维数据模型

  多维数据模型提供了多角度多层次的分析应用,比如基于时间维、地域维等构建的销售星形模型、雪花模型,可以实现在各时间维度和地域维度的交叉查询,以及基于时间维和地域维的细分。所以数据仓库面向特定群体的数据集市都是基于多维数据模型进行构建的。

  3.业务模型

  这里的业务模型指的是基于某些数据分析和决策支持而建立起来的数据模型,比如我之前介绍过的用户评价模型、关联推荐模型、RFM分析模型等,或者是决策支持的线性规划模型、库存模型等;同时,数据挖掘中前期数据的处理也可以在这里完成。

  数据仓库的数据应用

  报表展示

  报表几乎是每个数据仓库的必不可少的一类数据应用,将聚合数据和多维分析数据展示到报表,提供了最为简单和直观的数据。

  即时查询

  理论上数据仓库的所有数据(包括细节数据、聚合数据、多维数据和分析数据)都应该开放即时查询,即时查询提供了足够灵活的数据获取方式,用户可以根据自己的需要查询获取数据。

  数据分析

  数据分析大部分基于构建的业务模型展开,当然也可以使用聚合的数据进行趋势分析、比较分析、相关分析等,而多维数据模型提供了多维分析的数据基础;同时从细节数据中获取一些样本数据进行特定的分析也是较为常见的一种途径。

  数据挖掘

  数据挖掘用一些高级的算法可以让数据展现出各种令人惊讶的结果。数据挖掘可以基于数据仓库中已经构建起来的业务模型展开,但大多数时候数据挖掘会直接从细节数据上入手,而数据仓库为挖掘工具诸如SAS、SPSS等提供数据接口。

  元数据

  数据仓库环境中一个重要方面是元数据。元数据是关于数据的数据。只要有程序和数据,元数据就是信息处理环境的一部分。但是在数据仓库中,元数据扮演一个新的重要角色。也正因为有了元数据,可以最有效地利用数据仓库。元数据使得最终用户/DSS分析员能够探索各种可能性。

  元数据在数据仓库的上层,并且记录数据仓库中对象的位置。典型地,元数据记录:

  程序员所知的数据结构。

  DSS分析员所知的数据结构。

  数据仓库的源数据。

  数据加入数据仓库时的转换。

  数据模型。

  数据模型和数据仓库的关系。

  抽取数据的历史记录。

数据库

  数据仓库用途

  信息技术与数据智能大环境下,数据仓库在软硬件领域、Internet和企业内部网解决方案以及数据库方面提供了许多经济高效的计算资源,可以保存极大量的数据供分析使用,且允许使用多种数据访问技术。

  开放系统技术使得分析大量数据的成本趋于合理,并且硬件解决方案也更为成熟。在数据仓库应用中主要使用的技术如下:

  并行

  计算的硬件环境、操作系统环境、数据库管理系统和所有相关的数据库操作、查询工具和技术、应用程序等各个领域都可以从并行的最新成就中获益。

  分区

  分区功能使得支持大型表和索引更容易,同时也提高了数据管理和查询性能。

  数据压缩

  数据压缩功能降低了数据仓库环境中通常需要的用于存储大量数据的磁盘系统的成本,新的数据压缩技术也已经消除了压缩数据对查询性能造成的负面影响。

数据库

  数据仓库的五大好处

  1、提供加强的商业智能(BI)

  利用从各种数据源提供的数据,管理人员和高管们将不再需要凭着有限的数据或他们的直觉做出商业决策。此外,“数据仓库及相关商业智能(BI)可直接用于包括市场细分、库存管理、财务管理、销售这样的业务流程中。”

  2、可节省时间

  因为业务用户可以在一个地方快速访问许多数据源,他们就在关键方案上迅速做出知情的决策,而不会用浪费宝贵的时间从多种数据源中检索数据。

  不仅如此,业务主管们可以在很少或者根本没有IT的支持下自己查询数据—节约了更多的时间和资金。这意味着商业用户不需要等待IT的出现就能生成报表,而那些在IT努力工作的人员可以做他们最好该做事情—维持业务的运行。

  3、能提高数据的质量和一致性

  一个数据仓库的实施包括将数据从众多的数据源系统中转换成共同的格式。由于每个来自各个部门的数据被标准化了,每个部门将会产生与所有其它部门符合的结果。所以你可以对你数据的准确性更有信心。而准确的数据是强大的商业决策的基础。

  4、能提供历史的智慧

  一个数据仓库储存了大量的历史数据,所以你可以通过分析不同的时期和趋势来做出对未来的预测。这些数据通常不能被存储在一个交易型的数据库里或用来从一个交易系统中生成报表。

  5、能创建高的投资回报率

  最后,最值得一提的是投资回报率。已经安装了数据仓库和完善了商业智能(BI)系统的企业比没有在商业智能(BI)系统和数据仓库投资的企业能产生更多的利润和节约更多的资金。而这应该成为高级管理层快速加入到数据仓库这个潮流中的足够理由。

数据库

  数据库与数据仓库的区别

  简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。

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

  数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。

  数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。

  单从概念上讲,有些晦涩。任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。

  显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。

  数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。

  “面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。

  “与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。

  “不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的。

  数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。

  所以主要区别在于:

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

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

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

  (4)数据库是为捕获数据而设计,数据仓库是为分析数据而设计。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分