`

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

 
阅读更多

概述

数据仓库概念创始人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

0
0
分享到:
评论

相关推荐

    大数据与数据仓库 Data Warehousing in the Age of Big Data

    根据给定的文件信息,可以提炼出以下IT知识点: 1. 大数据时代下的数据仓库...通过对这些内容的学习和理解,可以帮助IT专业人员更好地掌握大数据和数据仓库的前沿技术,并且在实际工作中能够安全有效地应用这些技术。

    网页查重技术在企业数据仓库中的应用

    网页查重技术在现代信息化社会中扮演着至关重要的角色,尤其在企业数据仓库的构建与管理中,它的应用显得尤为关键。数据仓库是企业决策支持系统的重要组成部分,它集成了来自多个源系统的数据,为企业提供统一、一致...

    原创Kettle数据预处理实验报告

    实验的主要任务是将MySQL数据库sakila中的租赁业务数据迁移到数据仓库sakila_dwh,并通过Python的matplotlib库对数据仓库中的数据进行可视化分析。 【实验原理】 数据预处理是大数据处理的关键环节,包括数据清洗...

    仓库管理系统源码,原创c#源码

    在这个项目中,我们聚焦于一个原创的C#源码实现,它为基本的仓库出入库管理提供了全面的解决方案。本文将深入探讨这个系统的实现,尤其是其采用的三层架构的设计思想,帮助读者理解和学习如何构建类似的系统。 一、...

    大工20秋《数据挖掘》大作业题目及要求.pdf

    数据仓库是数据挖掘的重要工具,它整合了来自多个源的数据,为决策支持和分析提供高效的数据存储。 KNN算法是数据挖掘中的一种基本分类算法,它的核心思想是通过寻找样本的最近邻来决定其分类。对于一个新的样本点...

    Silverlight仓库管理系统【原创】

    总的来说,"Silverlight仓库管理系统"是一个融合了前端交互设计、后端服务通信和数据库管理的综合项目,对于学习Silverlight和WCF技术的开发者来说,它提供了宝贵的实践案例,有助于提升技能和理解实际开发流程。...

    数据结构 课程设计 报告和源文件 迷宫 交通图 仓库管理

    数据结构是计算机科学中的核心课程,它探讨了如何有效地存储和组织数据,以便进行高效的查询、插入...通过这些项目,学生能够深入理解数据结构的重要性,并能灵活运用到实际问题中,从而提高自己的编程和系统设计能力。

    数据挖掘Apriori算法的改进.pdf

    数据挖掘在数据库领域应用最为广泛,典型的数据挖掘系统通常包括数据库、数据仓库或其他信息库、数据库或数据仓库服务器、知识库、数据挖掘引擎、模式评估模块以及图形用户界面。 关联规则挖掘是数据挖掘中的一种...

    原创--2012系统分析师复习笔记V2.1.docx

    【系统分析师复习笔记】这篇复习笔记主要涵盖了数据库、数据库体系结构、范式理论、数据仓库、数据挖掘以及E-R图等相关知识,这些都是系统分析师考试的重点内容。 1. **数据库**: - **死锁**:数据库中的死锁是...

    毕业设计:仓库管理系统之任务与物流结算子系统(原创)

    数据库模型则通过图形化方式展示了数据实体之间的关系,帮助开发者理解数据结构并优化查询性能。 总的来说,《仓库管理系统之任务与物流结算子系统》是一个综合运用多种技术的实践项目,涵盖了Web开发的多个核心...

    简单仓库管理系统 基于java+SQLserver2005 课程设计

    【描述】:这个仓库管理系统虽然并非完全原创,但包含了学习和实践的过程。开发者在项目中可能参考了网络上的资源,以理解并应用相关技术。这样的实践有助于提升开发者对Java编程、数据库操作以及软件工程流程的理解...

    文章AI伪原创,文章自动生成,NLP,自然语言技术处理.zip

    在本项目中,重点是利用AI技术来实现文章的伪原创生成,这通常涉及到深度学习模型,如循环神经网络(RNN)、长短期记忆网络(LSTM)或Transformer等,它们能够学习大量文本数据的模式并生成新的、类似人类写作的文章...

    powercenter教程

    通过这个教程,学习者不仅可以了解Informatica PowerCenter的基本操作,还能深入理解数据仓库的设计原理和ETL的最佳实践,从而为企业的数据分析和决策支持打下坚实基础。对于那些希望进入BI领域的初学者来说,这是一...

    《大数据基础与实务》期末考试题A卷.docx

    30. 数据仓库:面向主题、集成、相对稳定且反映历史变化的数据集合。 31. 多维可视化:有助于人们理解复杂数据。 32. 联系发现:通过关联分析找到事物间的有趣联系,实现个性化推送。 33. 大数据安全:关注内部...

    仓库番

    9. **file.dat** 和 **file2.dat**:这两个文件很可能是游戏的数据文件,存储着关卡信息、游戏规则、玩家进度等关键数据。dat文件通常是二进制格式,包含游戏的逻辑和结构信息。 由于游戏图片不是原创的,这意味着...

    昆工毕业设计相关文档

    在进行昆工毕业设计的过程中,学生需要深入理解所选课题,进行文献调研,形成自己的研究假设或设计方案,然后通过实验、数据收集和分析来验证或实现。在整个过程中,学生会锻炼到文献检索、问题分析、实验操作、数据...

    大数据企业级项目实战--Titan大型数据运营系统项目课程

    本课程项目涵盖数据采集与预处理、数据仓库体系建设、用户画像系统建设、数据治理(元数据管理、数据质量管理)、任务调度系统、数据服务层建设、OLAP即席分析系统建设等大量模块,力求原汁原味重现一个完备的企业级...

    02_data.zip

    1. **Hive基础知识**:理解Hive的基本概念,包括其作为数据仓库工具的角色,如何通过HQL进行数据查询和处理,以及Hive与Hadoop生态系统的关系。 2. **Hive数据模型**:学习Hive的数据模型,包括表、分区、桶等概念...

    《数据库课程设计》_大作业仓库管理系统设计与开发 作品二.zip

    在本项目中,学生需要理解实体关系(ER)模型,这是数据建模的一种方法,用于描述现实世界中的实体、它们之间的关系以及属性。例如,可以有“商品”实体、“仓库”实体和“库存”实体,这些实体之间可能存在“存放于...

    基于Hadoop技术的计算机专业画像平台的设计与研究.docx

    Hadoop生态系统包含了一系列工具和服务,如HBase(分布式数据库)、Hive(数据仓库工具)、Pig(高级数据分析语言)、Zookeeper(协调服务)和YARN(资源管理系统)。这些工具共同构成了一个强大的大数据处理环境,...

Global site tag (gtag.js) - Google Analytics