数据仓库的一些理解(原创)

概述

数据仓库概念创始人W.H.Inmon在《建立数据仓库》一书中对数据仓库的定义是:数据仓库就是面向主题的、集成的、相对稳定的、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程、数据仓库中的数据面向主题,与传统数据库面向应用相对应。

主题导向(Subject-Oriented)

主题是一个在较高层次上将数据归类的标准,每一个主题对应一个宏观的分析领域。有别于一般OLTP系统,数据仓库的资料模型设计,着重将资料按其意义归类至相同的主题区(subject area),因此称为主题导向。举例如Party、Arrangement、Event、Finance、Market、Sales、Product等。

集成性(Integrated)

数据仓库中的数据是从原有分散的数据库中抽取出来的,由于数据仓库的每一主题所对应的源数据在原有分散的数据库中可能有重复或不一致的地方,加上综合数据不能从原有数据库中直接得到,因此数据在进入数据仓库之前必须经过数据加工和集成。这是建立数据仓库的关键步骤,首先要统一原始数据中的矛盾之处,还要将原始数据结构做一个从面向应用向面向主题的转变。
不变动性(Nonvolatile)

数据仓库的稳定性是指数据仓库反映的是历史数据,而不是日常事务处理产生的数据,数据经加工和集成进入数据仓库后是极少或根本不修改的,即使资料是错误的亦同。(i.e.错误的后续修正,便可因上述时间差异性的特性而被追踪)

时间差异性(Time-Variant)

数据仓库中数据的不可更新性是针对应用来说的,即用户进行分析处理时是不进行数据更新操作的。但并不是说,从数据集成入库到最终被删除的整个数据生成周期中,所有数据仓库中的数据都永远不变,而是随时间不断变化的。数据仓库是不同时间的数据集合,它要求数据仓库中的数据保存时限能满足进行决策分析的需要。

数据仓库的价值
高效的数据组织形式
面向主题的特性决定了数据仓库拥有业务数据库所无法拥有的高效的数据组织形式,更加完整的数据体系,清晰的数据分类和分层机制。因为所有数据在进入数据仓库之前都经过清洗和过滤,使原始数据不再杂乱无章,基于优化查询的组织形式,有效提高数据获取、统计和分析的效率。
时间价值
数据仓库的构建将大大缩短获取信息的时间,数据仓库作为数据的集合,所有的信息都可以从数据仓库直接获取,数据仓库的最大优势在于一旦底层从各类数据源到数据仓库的ETL流程构建成型,那么每天就会有来自各方面的信息通过自动任务调度的形式流入数据仓库,从而使一切基于这些底层信息的数据获取的效率达到迅速提升。
从应用来看,使用数据仓库可以大大提高数据的查询效率,尤其对于海量数据的关联查询和复杂查询,所以数据仓库有利于实现复杂的统计需求,提高数据统计的效率。
集成价值
数据仓库是所有数据的集合,包括日志信息、数据库数据、文本数据、外部数据等都集成在数据仓库中,对于应用来说,实现各种不同数据的关联并使多维分析更加方便,为从多角度多层次地数据分析和决策制定提供的可能。
历史数据
记录历史是数据仓库的特性之一,数据仓库能够还原历史时间点上的产品状态、用户状态、用户行为等,以便于能更好的回溯历史,分析历史,跟踪用户的历史行为,更好地比较历史和总结历史,同时根据历史预测未来。

数据仓库的基本架构

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

 

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

数据仓库的数据来源
数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extra, 转化Transfer, 装载Load)的过程,ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。
数据仓库的数据存储
数据仓库并不需要储存所有的原始数据,同时数据仓库需要储存部分细节数据。简单地解释下:
a.为什么不需要所有原始数据?数据仓库面向分析处理,但是某些源数据对于分析而言没有价值或者其可能产生的价值远低于储存这些数据所需要的数据仓库的实现和性能上的成本。比如我们知道用户的省份、城市足够,至于用户究竟住哪里可能只是物流商关心的事,或者用户在博客的评论内容可能只是文本挖掘会有需要,但将这些冗长的评论文本存在数据仓库就得不偿失;
b.为什么要存细节数据?细节数据是必需的,数据仓库的分析需求会时刻变化,而有了细节数据就可以做到以不变应万变。如果我们只存储根据某些需求搭建起来的数据模型,那么显然对于频繁变动的需求会手足无措;
数据仓库基于维护细节数据的基础上在对数据进行处理,使其真正地能够应用于分析。主要包括三个方面:
1.数据的聚合
这里的聚合数据指的是基于特定需求的简单聚合(基于多维数据的聚合体现在多维数据模型中),简单聚合可以是网站的总Pageviews、Visits、Unique Visitors等汇总数据,也可以是Avg. time on page、Avg. time on site等平均数据,这些数据可以直接地展示于报表上。
2.多维数据模型
多维数据模型提供了多角度多层次的分析应用,比如基于时间维、地域维等构建的销售星形模型、雪花模型,可以实现在各时间维度和地域维度的交叉查询,以及基于时间维和地域维的细分。所以数据仓库面向特定群体的数据集市都是基于多维数据模型进行构建的。
3.业务模型
这里的业务模型指的是基于某些数据分析和决策支持而建立起来的数据模型,比如我之前介绍过的用户评价模型、关联推荐模型、RFM分析模型等,或者是决策支持的线性规划模型、库存模型等;同时,数据挖掘中前期数据的处理也可以在这里完成。
数据仓库的数据应用
报表展示
报表几乎是每个数据仓库的必不可少的一类数据应用,将聚合数据和多维分析数据展示到报表,提供了最为简单和直观的数据。
即时查询
理论上数据仓库的所有数据(包括细节数据、聚合数据、多维数据和分析数据)都应该开放即时查询,即时查询提供了足够灵活的数据获取方式,用户可以根据自己的需要查询获取数据。
数据分析
数据分析大部分基于构建的业务模型展开,当然也可以使用聚合的数据进行趋势分析、比较分析、相关分析等,而多维数据模型提供了多维分析的数据基础;同时从细节数据中获取一些样本数据进行特定的分析也是较为常见的一种途径。
数据挖掘
数据挖掘用一些高级的算法可以让数据展现出各种令人惊讶的结果。数据挖掘可以基于数据仓库中已经构建起来的业务模型展开,但大多数时候数据挖掘会直接从细节数据上入手,而数据仓库为挖掘工具诸如SAS、SPSS等提供数据接口。

第1天到第n天的现象
建立数据仓库不是一蹴而就的。相反,数据仓库只能一次一步地进行设计和载入数据,即它是进化性的,而非革命性的。数据仓库的建立要采用有序地反复和一次一步的方式。下图说明一个建立数据仓库的典型过程。

第1天,通晓本质上进行操作型处理的几个系统。

第2天,对数据仓库中第一个主题领域的最初几个表载入数据,此时就会产生一定的好奇心,用户开始发现数据仓库和分析处理。
第3天,更多的数据载入数据仓库,并且随着数据量增大,将吸引更多的用户。一旦用户发现有较容易载入的集成数据源,并有在时间维上观察数据的历史基础,这就不仅仅是好奇心了。大约此时,认真的DSS分析员渐渐地被吸引到数据仓库中。
第4天,随着更多的数据载入数据仓库,一批存储在操作型环境的数据被适当地放入数据仓库中。现在,我们就“发现”数据仓库是可用来进行分析处理的信息源。各种各样的DSS应用出现了。的确,伴随着现在存入数据仓库的大规模数据,此时开始出现如此多的用户和如此多的处理请求,以致于一些用户进入数据仓库的要求和分析工作被推迟。进入数据仓库的竞争成为使用数据仓库的障碍。
第5天,部门数据库(数据集市,或OLAP )开始兴起,各部门发现通过把数据从数据仓库输入它们自己的部门处理环境,会使它们的处理既便宜又容易。到达部门级的数据吸引着一些D S S分析员。
第6天,部门系统出现繁忙,得到部门数据比获得数据仓库的数据更便宜、更快、更容易。很快最终用户就放弃数据仓库的细节,去进行部门处理。
第n天,这种体系结构得到充分发展。生产系统的原始集合中只剩下操作型处理。数据仓库具有丰富的数据,并有一些数据仓库的直接用户和许多部门数据库。因为在部门级上获得处理所需要的数据既容易又便宜,所以大部分DSS分析处理都在部门级进行。
当然,从第1天到第n天的进化需要很长的时间,通常需要几年。并且在从第1天到第n天的处理过程中,DSS环境在不断地提高和职能化。

数据周期
数据仓库设计中的一个引人注目的问题是数据周期。所谓数据周期是指从操作型环境数据发生改变起,到这个变化反映到数据仓库中所用的时间。考虑下图中所示的数据。图中给出了关于Judy Jones的当前信息,数据仓库包含有Judy的历史信息。

现在假设发现Judy已经改变了她的地址。下图表明这个变化一旦被发现,就马上被反映到操作型环境中

一旦数据反映到操作型环境中,这个变化就必须被转入数据仓库中。下图表示数据仓库对最当前记录的终结日期进行了更正。并且插入了一条新的记录,这条记录反映了对有关Judy Jones的记录所做的修改。

问题是对数据仓库数据的这种调整,应该多长时间进行一次呢?原则上从操作型环境知道数据的改变到这个变化反映到数据仓库中至少应该经历2 4小时。没有必要急于把这个变化转入信息仓库中去,有几个需要把“时间间隔”放到数据中的原因:
一方面,如果操作型环境与数据仓库相互之间结合得越紧密,那么所需的费用就越昂贵,技术也越复杂。2 4小时的时间间隔以现有技术来说将很容易被实现。

另一方面,更有说服力的一个原因是,时间间隔给环境附加了一个特殊的限制。间隔2 4小时,使得在数据仓库中不必做操作型处理;在操作型环境中不必做数据仓库处理。

最后,时间间隔的另一个好处是在转入数据仓库之前,数据能达到稳定。

元数据
数据仓库环境中一个重要方面是元数据。元数据是关于数据的数据。只要有程序和数据,元数据就是信息处理环境的一部分。但是在数据仓库中,元数据扮演一个新的重要角色。也正因为有了元数据,可以最有效地利用数据仓库。元数据使得最终用户/ DSS分析员能够探索各种可能性。
元数据在数据仓库的上层,并且记录数据仓库中对象的位置。典型地,元数据记录:
程序员所知的数据结构。
DSS分析员所知的数据结构。
数据仓库的源数据。
数据加入数据仓库时的转换。
数据模型。
数据模型和数据仓库的关系。
抽取数据的历史记录。

成本合理性
数据仓库的一个有趣的问题是:数据仓库的成本合理性通常不是在先验的投资回报率(ROI)基础上来进行判断的。要做这样的分析,必须在创建数据仓库之前就知道数据仓库带来的收益。
通常情况下,在创建数据仓库时,实际收益是不知道的甚至是无法预测的,因为数据仓库的使用方式完全不同于其他信息系统所构造的数据和系统。数据仓库的使用是用一种与其他信息处理不同的模式进行的,有点像“告诉我,你想要的是什么,然后我才能告诉你你真正想要的是什么”这种模式。直到数据仓库的首次循环设计过程完成并可以利用以前,DSS分析员不能真正说出数据仓库的可能性和潜力有多大。一旦DSS分析员插手仓库,他或她就能开始揭示D S S处理的潜力。
因此,经典的ROI技术不能应用到数据仓库环境中。幸运的是,数据仓库是渐进式地建立的。第一次循环设计过程能很快完成,并且只需相对较少的费用。一旦数据仓库的第一部分已经建立并载入数据,分析员就能开始研究可能性。只有在这个时候,分析员才能着手证明仓库开发费用的合理性。
根据经验,数据仓库第一次循环的设计规模要适中,小到足以建成仓库,大到仓库是有意义的。所以,数据仓库最好一次构造一个小规模的循环设计,并且在仓库开发人员与DSS分析员之间适当而且快速地建立直接反馈回路。
此外,这些理由也说明,为什么说若最初设计的数据仓库50%是精确的,那么设计就是成功的。根据仓库开发人员与DSS分析员之间的反馈回路将不断地修改现有的仓库数据,并向仓库中追加其他新数据。

参考至:《建立数据仓库》W.H.Inmon著

                  http://zh.wikipedia.org/wiki/%E8%B3%87%E6%96%99%E5%80%89%E5%84%B2

                  http://baike.baidu.com/view/1341575.htm
                  http://webdataanalysis.net/web-data-warehouse/value-of-data-warehouse/
                  http://webdataanalysis.net/web-data-warehouse/data-warehouse-frame/
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com

作者:czmmiao  文章出处:http://czmmiao.iteye.com/blog/1815625

时间: 2024-10-03 21:14:04

数据仓库的一些理解(原创)的相关文章

数据仓库中的维度(原创)

维度 维度在数据仓库中主要对事实指标进行过滤和重新组织提供指导.可以将用户对事实的查询结果按照维度指标进行筛选,只允许与维度指标相关的数据返回给用户.维度一般具有如下特性:可以形成一个维度体系,具备访问和过滤事实的能力,能够提供相关的非标准实体,包括一个完整的维度体系编码.关键词以及相关的表示,可以映射到用户所需要信息的列.在物理数据仓库中是较小的表,可以对前台用户的应用程序进行数据填充,或引用红花的数据仓库分析.维度层级 维度层级用来描述维度的各个层级.根据维度细节程度的不同,划分数据在逻辑上

谈谈我的原创的理解

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 原创在网站优化过程中起着不可小觑的作用,尤其是高质量的原创文章,对网站排名的贡献非常之大.从正常的角度去分析,原创的确比伪原创要好,比盗版采集要好,但原创也未必就百分百出色.原创不过是一种思维,是一种模式,原创不等于排名. 原创和"原创"的不同,这句话是什么意思呢,就是说原创文章未必是好文章,不要一味的追求原创,更直接点说

【漫谈数据仓库】 如何优雅地设计数据分层

一.文章主题 本文主要讲解数据仓库的一个重要环节:如何设计数据分层!其它关于数据仓库的内容可参考之前的文章. 本文对数据分层的讨论适合下面一些场景,超过该范围场景 or 数据仓库经验丰富的大神就不必浪费时间看了. 数据建设刚起步,大部分的数据经过粗暴的数据接入后就直接对接业务. 数据建设发展到一定阶段,发现数据的使用杂乱无章,各种业务都是从原始数据直接计算而得. 各种重复计算,严重浪费了计算资源,需要优化性能. 二.文章结构 最初在做数据仓库的时候遇到了很多坑,由于自身资源有限,接触数据仓库的时

总结分享:新手如何写出高质量的原创文章

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 面对如今层出不穷的百度算法,更多站长朋友们从原先的追求高质量外链,逐步转向优质可读性强的内容上来,如何创作出更多的原创性文章,以及对众多读者能够产生更多的共鸣,是如今众多站长朋友在不断苦思冥想的.特别是对于刚刚迈入SEO这一行业大门的新手朋友们,何为原创.如何原创.该把握哪些方面技巧,已经成为大家是否能够真正掌握SEO这门艺术的重要三方面.

网站建设与优化 莫为他人披嫁衣

网站建设与优化,现在缺失更多的不是技巧,而是阳光心态.这种表现是,相对于踏踏实实用优质内容丰富网站,更多网站建设和网站优化人员更倾向于伪原创,或者直接取材别人网站上的文章;这种表现还有,黑链市场异常繁荣,各种各样的批量链接工具.群建群发工具.刷站工具依旧层出不穷;如此阴暗心态,还表现在激烈的竞争面前(尤其是一些热门关键词的优化),因一时的劣势而演变成对竞争对手的仇恨,采用攻击网站恶意刷击关键词等非常规形式,以造成被攻击网站恶意作弊的假象,迷惑搜索引擎进行降权. 网站建设与网站优化,由良性竞争发展

大数据环境下该如何优雅地设计数据分层

发个牢骚,搞大数据的也得建设数据仓库吧.而且不管是传统行业还是现在的互联网公司,都需要对数据仓库有一定的重视,而不是谈一句自己是搞大数据的就很厉害了.数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了etl.调度.建模在内的完整的理论体系.现在所谓的大数据更多的是一种数据量级的增大和工具的上的更新. 两者并无冲突,相反,而是一种更好的结合. 话说,单纯用用Hadoop.Spark.Flume处理处理数据,其实只是学会几种新的工具,这是搞工具的,只是在数据仓库中etl中的一部分.

品《阿里巴巴大数据实践-大数据之路》一书(下)

今天继续谈阿里的这本书,包括数据服务平台.数据挖掘平台.数据建模.数据管理及数据应用,希望于你有启示. 1.数据服务平台 数据服务平台可以叫数据开放平台,数据部门产出海量数据,如何能方便高效地开放出去,是我们一直要解决的难题,在没有数据服务的年代,阿里的数据开放的方式简单.粗暴,一般是直接将数据导出给对方,我想,现在大多公司的开放应该也是如此吧,虽然PaaS喊了这么多年,但真正成就的又有几个? 即使如阿里,在数据开放这个方向上的探索和实践,至今也有7个年头了,任何关于数据开放毕其功于一役的做法都

谷歌是条寄生虫

中介交易 SEO诊断 淘宝客 云主机 技术大厅 <金融时报>:谷歌是条寄生虫? T• S •艾略特(T.S. Eliot)曾经说过:"不成熟的诗人模仿,成熟的诗人剽窃."尽管这种说法既精炼又形象,但在处理知识产权纠纷时,用处可能不太大. 各家公司都小心翼翼地保护着自己的资产.竞争的现实意味着,在专利权和版权问题上的自满心态可能是致命的.艺术家们拿剽窃问题开玩笑似乎无伤大雅.但商业领袖很少这么做. 如果你参加了近日在纽约召开的美国出版商协会(Association of Am

浅谈如何让用户“爱”网站的三方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 每个站长都希望自己的网站用户粘度相当的好,最好是用户每天要找与自己网站有关的类型第一时间就想到自己的网站,就像有问题,百度一下一样使用户不由自主的喜欢上自己的网站,从而打造一大批忠诚的网站用户.但是这点说起来容易做起来是相当的难的,要想用户喜欢网站首先就需要满足用户的需求,只有这样才是最容易让用户喜欢上网站,粘在网站上的快速方法了.今天笔者谈