数据仓库
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)
的数据集合,用于支持管理决策。
数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。——数据仓库之父--Bill Inmon
数据仓库基本特性
面向主题性
面向主题性表示了数据仓库中数据组织的基本原则,数据仓库中的所有数据都是围绕着某一主题组织的。
确定主题以后,需要确定主题应该包含的数据。
不同的主题之间可能会出现相互重叠的信息。
主题在数据仓库中可以用多维数据库方式进行存储。
主题的划分中,必须保证每一个主题的独立性。
一个主题领域的表来源于多个操作型应用(如:客户主题,来源于:定单处理;应收帐目;应付帐目;…);
典型的主题领域:客户;产品;交易;帐目;
主题领域以一组相关的表来具体实现;
相关的表通过公共的键码联系起来(如:顾客标识号Customer ID);
每个键码都有时间元素(从日期到日期;每月累积;单独日期…);
主题内数据可以存储在不同介质上(综合级,细节级,多粒度);
数据集成性
根据决策分析的要求,将分散于各处的源数据进行抽取、筛选、清理、综合等工作,最终集成到数据仓库中。
数据的时变性
数据应该随着时间的推移而发生变化,不断地生成主题的新快照。
数据的非易失性
数据的相对稳定性。
数据仓库中的数据只进行刷新,从不进行更新处理。
反映历史变化。
商务智能
简单定义:综合企业所有沉淀下来的信息,用科学的分析方法,为企业领导提供科学决策信息的过程。
完整定义:基于数据仓库技术的决策支持系统(DSS)。它 以数据仓库(DW)技术为基础,通过抽取、转换和清洗将分散在企业各处的数据整合在一起,转化为信息;进而以联机分析处理(OLAP)工具、数据挖掘(DM)工具、报表工具为手段将信息提升为知识;最后运用可视化技术以快捷直观的方式将探察分析结果呈现给最终用户,为管理决策层提供量化依据的过程。
数据挖掘
数据挖掘使您得以定义包含分组和预测规则的模型,以便应用于关系数据库或多维 OLAP 数据集中的数据。之后,这些预测模型便可用于自动执行复杂的数据分析,以找出帮助识别新机会并选择有获胜把握的机会的趋势。
联机事务处理(OLTP)
OLTP系统是设计用来允许高并发性的,这样很多用户就能够访问同一个数据源并进行所需的处理。
OLTP系统是面向在数据库上进行事务处理的理念的。而事务则进一步蕴含着发生在表中数据上的受控的变更,这些变更包括在商务运作过程中发生的插入、更新和删除操作。通常,一个OLTP系统将会有大量的客户端应用程序通过各种各样的方式(插入、更新、删除--实际上可以是任何操作)访问数据库以查询一小块信息。
OLTP系统的实例包括数据输入程序,如银行处理、订票、联机销售和库存管理系统。
联机分析处理(OLAP)
联机分析处理(或OLAP)是一种广义上的决策支持系统(DSS),或者最近越来越流行的商业智能(BI)。BI系统的目标是分析海量数据,然后以很多不同的方式(包括每天、每周、每季和年度报告)生成小结和总结以把精力高度集中在记分卡和仪表盘上,它们通常用于帮助那些准备好根据这些数据采取一定的措施的特定用户来获取竞争优势。
一旦数据进入数据仓库之后就很少会发生变化。数据被保存在那里用于查询和生成报表,以便帮助决策者规划企业的未来。它不需要关心插入、更新和删除操作。因此与高度规范的事务数据库不同,在这种情况下通常会使用所谓的维度数据库 (dimensional database),它将遵循特定的结构或模式。
维度数据库可以用来构建数据立方体,数据立方体是数据的多维表示,用来方便联机业务分析和提高查询性能。立方体中的每一维都表示业务数据中的一个不同的分析类别。
维度数据库
在OLTP系统中进行复杂查询存在一些固有的问题,对这些问题的解决方案是构建一个单独的数据库来更简洁地表示业务事实(fact)。这个数据库的结构不是关系型的,相反,它是维度化的。
ETL
数据抽取(Extract)、转换(Transform)、清洗(Cleansing)、装载(Load)的过程。是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
元数据(Meta Data)
关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据。同时元数据还包含关于数据含义的商业信息,所有这些信息都应当妥善保存,并很好地管理。为数据仓库的发展和使用提供方便。
关于数据的数据,用于构造、维持、管理、和使用数据仓库,在数据仓库中尤为重要。
不同 OLAP 组件中的数据和应用程序的结构模型。元数据描述 OLTP 数据库中的表、数据仓库和数据集市中的多维数据集这类对象,还记录哪些应用程序引用不同的记录块。
数据集市(Data mart)
** **数据集市 -- 小型的,面向部门或工作组级数据仓库。
即”小数据仓库”。如果说数据仓库是建立在企业级的数据模型之上的话。那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只是面向某个特定的主题。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。
ODS
Operation Data Store,操作数据存储 — ODS是能支持企业日常的全局应用的数据集合,是不同于DB的一种新的数据环境, 是DW 扩展后得到的一个混合形式。四个基本特点:面向主题的(Subject -Oriented)、集成的、可变的、 当前或接近当前的。
主题(SUBJECT)
是一个在较高层次将数据归类的标准,每一个主题对应一个宏观的分析领域,针对具体决策需求可细化为多个主题表,具体来说就是确定决策涉及的范围和所要解决的问题。
多维数据集
多维数据集是联机分析处理 (OLAP) 中的主要对象,是一项可对数据仓库中的数据进行快速访问的技术。多维数据集是一个数据集合,通常从数据仓库的子集构造,并组织和汇总成一个由一组维度和度量值定义的多维结构。
维度(DIMENSION)
是人们观察数据的特定角度,是考虑问题时的一类属性,属性集合构成一个维(时间维、地理维等)。
是多维数据集的结构性特性。它们是事实数据表中用来描述数据的分类的有组织层次结构(级别)
。这些分类和级别描述了一些相似的成员集合,用户将基于这些成员集合进行分析。
这词,英国著名物理学家史蒂芬·霍金教授有这样的解释:这就像一根头发,远看是一维的线,在放大镜下,它确实是三维的;如果面对时空,如果有足够高倍的放大镜的话,也应该能揭示出其它可能存在的4维、5维空间,直至11维空间。因此,维度是指一种视角,而不是一个固定的数字;是一个判断、说明、评价和确定一个事物的多方位、多角度、多层次的条件和概念
事实表
每个数据仓库都包含一个或者多个事实数据表。事实数据表可能包含业务销售数据,如现金登记事务
所产生的数据,事实数据表通常包含大量的行。事实数据表的主要特点是包含数字数据(事实),并且这些数字信息可以汇总,以提供有关单位作为历史的数据,每个事实数据表包含一个由多个部分组成的索引,该索引包含作为外键的相关性纬度表的主键,而维度表包含事实记录的特性。事实数据表不应该包含描述性的信息,也不应该包含除数字度量字段及使事实与纬度表中对应项的相关索引字段之外的任何数据。
包含在事实数据表中的“度量值”有两中:一种是可以累计的度量值,另一种是非累计的度量值。最有用的度量值是可累计的度量值,其累计起来的数字是非常有意义的。用户可以通过累计度量值获得汇总信息,例如。可以汇总具体时间段内一组商店的特定商品的销售情况。非累计的度量值也可以用于事实数据表,单汇总结果一般是没有意义的,例如,在一座大厦的不同位置测量温度时,如果将大厦中所有不同位置的温度累加是没有意义的,但是求平均值是有意义的。
一般来说,一个事实数据表都要和一个或多个纬度表相关联,用户在利用事实数据表创建多维数据集时,可以使用一个或多个维度表。
从用途的不同来说,事实表可以分为三类,分别是原子事实表,聚集事实表和合并事实表。
原子事实表(Atom Fact Table)是保存最细粒度数据的事实表,也是数据仓库中保存原子信息的场所。
聚集事实表(Aggregated Fact Table)是原子事实表上的汇总数据,也称为汇总事实表。即新建立一个事实表,它的维度表是比原维度表要少,或者某些维度表是原维度表的子集,如用月份维度表代替日期维度表;事实数据是相应事实的汇总,即求和或求平均值等。在做数据迁移时,当相关的维度数据和事实数据发生变化时,聚集事实表需要做相应的刷新。物化视图是实现聚集事实表的一种有效方式,可以设定刷新方式,具体功能由DBMS来实现。
合并事实表(Consolidated Fact Table)是指将位于不同事实表中处于相同粒度的事实进行组合建模而成的一种事实表。即新建立一个事实表,它的维度是两个或多个事实表的相同维度的集合;事实是几个事实表中感兴趣的事实。在Kimball的总线架构中,由合并事实表为主组成的合并数据集市称为二级数据集市。合并事实表的粒度可以是原子粒度也可以是聚集粒度。在做数据迁移时,当相关的原子事实表的数据有改变时,合并事实表的数据需要重新刷新。合并事实表和交叉探察是两个互补的操作。
聚集事实表和合并事实表的主要差别是合并事实表一般是从多个事实表合并而来。但是它们的差别不是绝对的,一个事实表既是聚集事实表又是合并事实表是很有可能的。因为一般合并事实表需要按相同的维度合并,所以很可能在做合并的同时需要进行聚集,即粒度变粗。
维度表
维度表可以看作是用户来分析数据的窗口
,纬度表中包含事实数据表中事实记录的特性,有些特性提供描述性信息,有些特性指定如何汇总事实数据表数据,以便为分析者提供有用的信息,维度表包含帮助汇总数据的特性的层次结构。例如,包含产品信息的维度表通常包含将产品分为食品、饮料、非消费品等若干类的层次结构,这些产品中的每一类进一步多次细分,直到各产品达到最低级别。
在维度表中,每个表都包含独立于其他维度表的事实 特性,例如,客户维度表包含有关客户的数据。维度表中的列字段可以将信息分为不同层次的结构级。
结论:
1、事实表就是你要关注的内容;
2、维度表就是你观察该事务的角度,是从哪个角度去观察这个内容的。
例如,某地区商品的销量,是从地区这个角度观察商品销量的。事实表就是销量表,维度表就是地区表。
度量值
在多维数据集中,度量值是一组值,这些值基于多维数据集的事实数据表中的一列,而且通常为数字
。此外,度量值是所分析的多维数据集的中心值。即,度量值是最终用户浏览多维数据集时重点查看的数字数据。您所选择的度量值取决于最终用户所请求的信息类型。一些常见的度量值有 sales、cost、expenditures 和 production count 等。
“度量值”是来自事实数据表的值
,也称为“事实数据”。度量值维度的值有时也通称为“成员”。度量值通常是数值,但也可以是字符串值。
Measures 维度 (Measures dimension)
“度量值维度”是包含多维数据集中所有度量值的维度。度量值维度是一种特殊的维度,其中的成员通常是根据各个维度属性(存在指定的度量值)的当前成员(通常采用求和或计数方式)进行聚合。
度量值组 (Measure Group)
“度量值组”是 SQL Server 2005 Analysis Services 多维数据集中的相关度量值集合(通常是来自同一事实数据表的度量值)。在 SQL Server 2005 Analysis Services 中,一个多维数据集可包含多个度量值组。
级别
级别是维度层次结构的一个元素。级别描述了数据的层次结构,从数据的最高(汇总程度最大)级别直到最低(最详细)级别。
多维 OLAP (MOLAP):MOLAP 存储模式使得分区的聚合和其源数据的复本以多维结构存储在分析服务器计算机上。根据分区聚合的百分比和设计,MOLAP 存储模式为达到最快查询响应时间提供了潜在可能性。总而言之,MOLAP 更加适合于频繁使用的多维数据集中的分区和对快速查询响应的需要。
关系 OLAP (ROLAP):ROLAP 存储模式使得分区的聚合存储在关系数据库的表(在分区数据源中指定)中。但是,可为分区数据使用 ROLAP 存储模式,而不在关系数据库中创建聚合。
混合 OLAP (HOLAP):HOLAP 存储模式结合了 MOLAP 和 ROLAP 二者的特性。
粒度
数据汇总的层次或深度。数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度越小。
聚合|聚集:聚合是预先计算好的数据汇总,由于在问题提出之前已经准备了答案,聚合可以改进查询响应时间。
分割
数据分散到各自的物理单元中去,它们能独立地处理。
切块:由多个维的多个成员限定的分区数据,称为一个切块。
切片:由一个维的一个成员限定的分区数据,称为一个切片。
数据钻取:最终用户从常规多维数据集、虚拟多维数据集或链接多维数据集中选择单个单元,并从该单元的源数据中检索结果集以获得更详细的信息,这个操作过程就是数据钻取。
数据挖掘模型:数据挖掘使您得以定义包含分组和预测规则的模型,以便应用于关系数据库或多维 OLAP 数据集中的数据。之后,这些预测模型便可用于自动执行复杂的数据分析,以找出帮助识别新机会并选择有获胜把握的机会的趋势。
数据库维度 (Database dimension)
“数据库维度”是与某个键属性相关的维度属性的集合,而该键属性又与度量值维度中的事实数据相关。
维度属性 (Dimension attribute)
“维度属性”被绑定到维度表中的一个或多个列并包含成员。维度属性可以包含客户名称、月份名称和产品名称。
成员 (Member)
“成员”是维度属性(包括度量值维度)的值。层次结构中的成员可以是叶成员、父成员、数据成员或“(全部)”成员。
“(全部)”成员 ((All) member)
“(全部)”成员是属性层次结构或用户定义的层次结构中的所有成员的计算值。
计算成员 (Calculated member)
“计算成员”是在查询时定义和计算的维度成员。可以在用户查询或 MDX 计算脚本中定义计算成员,并将其存储在服务器上。 一个计算成员对应于定义它们的维度中的多个维度表行。
数据成员 (Data member)
“数据成员”是在父子层次结构中与父成员相关联的子成员。数据成员包含其父成员的数据值,而不是该父成员的子级的聚合值。
父成员 (Parent member)
“父成员”是父子层次结构中的成员,包含其子级的聚合值。
叶成员 (leaf member)
“叶成员”是层次结构中不包含子级的成员。
子成员 (Child member)
“子成员”是层次结构中位于顶层下面的成员。
键属性 (Key attribute)
数据库维度的“键属性”是维度中的所有非键属性(以直接或间接方式)所链接到的属性。键属性通常也是粒度属性。
粒度属性 (Granularity attribute)
多维数据集维度的属性,它将维度链接到度量值维度内度量值组中的事实数据。如果粒度属性和键属性为不同的属性,则非键属性必须直接或间接地链接到粒度属性。在多维数据集中,粒度属性定义维度的粒度。
多维数据集维度 (Cube dimension)
“多维数据集维度”是多维数据集中的数据库维度实例。
属性层次结构 (Attribute hierarchy)
“属性层次结构”是包含以下级别的属性成员层次结构:
数据仓库建模 — 星型模式
Example of Star Schema
在多维分析的商业智能解决方案中,根据事实表和维度表的关系,又可将常见的模型分为星型模型和雪花型模型。在设计逻辑型数据的模型的时候,就应考虑数据是按照星型模型还是雪花型模型进行组织。
当所有维表都直接连接到“ 事实表”上时,整个图解就像星星一样,故将该模型称为星型模型,星型架构是一种非正规化的结构,多维数据集的每一个维度都直接与事实表相连接,不存在渐变维度,所以数据有一定的冗余,如在地域维度表中,存在国家 A 省 B 的城市 C 以及国家 A 省 B 的城市 D 两条记录,那么国家 A 和省 B 的信息分别存储了两次,即存在冗余。
数据仓库建模 — 雪片模式
Example of Snowflake Schema
当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 " 层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。将地域维表又分解为国家,省份,城市等维表。它的优点是 : 通过最大限度地减少数据存储量以及联合较小的维表来改善查询性能。雪花型结构去除了数据冗余。