导图社区 数据仓库与数据挖掘
数据仓库与数据挖掘相关背景、概念、技术信息梳理,包含1数据资源、2数仓的概念与结构、3数仓的设计与开发、4联机分析处理OLAP、5数据挖掘、6数据预处理、7数据挖掘常用算法等内容。
编辑于2024-08-05 18:26:34《方法论与工程化解决方案》知识总结,本书借助数据仓库实现一套用户画像系统的方案。从实际工程案例出发,结合多业务场景,内容涵盖开发离线批处理计算的标签及流式计算标签,为读者的分析、开发、搭建用户画像系统,并借助该用户画像系统为运营人员制定运营用户的策略提供端到端的解决方案。
数据仓库与数据挖掘相关背景、概念、技术信息梳理,包含1数据资源、2数仓的概念与结构、3数仓的设计与开发、4联机分析处理OLAP、5数据挖掘、6数据预处理、7数据挖掘常用算法等内容。
大数据技术涉及到的中间件和解决方案梳理,思维导图展示了大数据处理流程中的关键组件及其相互关系,从数据采集、存储、处理到分析,涵盖了大数据技术的各个方面。
社区模板帮助中心,点此进入>>
《方法论与工程化解决方案》知识总结,本书借助数据仓库实现一套用户画像系统的方案。从实际工程案例出发,结合多业务场景,内容涵盖开发离线批处理计算的标签及流式计算标签,为读者的分析、开发、搭建用户画像系统,并借助该用户画像系统为运营人员制定运营用户的策略提供端到端的解决方案。
数据仓库与数据挖掘相关背景、概念、技术信息梳理,包含1数据资源、2数仓的概念与结构、3数仓的设计与开发、4联机分析处理OLAP、5数据挖掘、6数据预处理、7数据挖掘常用算法等内容。
大数据技术涉及到的中间件和解决方案梳理,思维导图展示了大数据处理流程中的关键组件及其相互关系,从数据采集、存储、处理到分析,涵盖了大数据技术的各个方面。
数据仓库与数据挖掘
1数据资源
沃尔玛数仓
沃尔玛使用Teradata(天睿公司)的数仓管理系统对7.5TB的数据进行存储,这些数据主要包括各个商店前端设备(POS、扫描仪)采集来的原始销售数据和各个商店的库存数。Teradata数据库里存有196亿条记录,每天要处理并更新2亿条记录,要对来自6000多个用户的4.8万条查询语句进行处理。销售数据、库存数据每天夜间从3000多个商店自动采集过来,并通过卫星线路传到总部的数据仓库里。沃尔玛数据仓库里最大的一张表格(Table)容量已超过300GB,存有50亿条记录,可容纳65个星期3000多个商店的销售数据,而每个商店有5万~8万个商品品种。沃尔玛的领导者们在从事由数据变信息、由信息变知识的知识挖掘工作,通过全球全集团、全方位、全过程、全天候的自动数据采集技术,改变传统的依靠假设和推断来确定订货的方式,从数据的不断积累过程中以小时为单位动态地运行决策模型,导出数亿个品种的最佳订货量最和佳商品组合分配、降价以及商品陈列等。如今,沃尔玛已将其数据仓库容量扩充了一倍以上,由44TB扩大到101TB,容量为全球第二大数据仓库的两倍以上。利用数据仓库,沃尔玛在商品分组布局、降低库存成本、了解销售全局、进行市场分析和趋势分析等方面均有卓越的表现。
企业资源
物理资源
人
财
物
管理资源
数据
概念
狭义的数据资源是指数据本身
管理数据本身
数据获取
数据加工
数据利用
数据更新
广义的数据资源涉及数据的产生、处理、传播、交换的整个过程,包括数据本身、数据的管理工具(计算机与通信技术)和数据管理专业人员等。
管理
1数据本身
2信息系统涉及内容的管理
数据管理系统演变
1 电子数据处理系统(Electronic Data Processing System, EDPS)
只能完成单纯的数据处理工作,缺乏分析预测能力,不能满足组织经营管理的需要。
2 管理信息系统(Management Information System, MIS)
管理决策功能薄弱、只管理内部数据而不管理外部数据、只有业务信息而没有办公信息的局限性日益突出。
3 决策支持系统(Decision Support System, DSS)
3 办公自动化系统(Office Automation System, OAS)
数据资源管理意义
从信息系统的发展过程来看,对数据资源进行有效的管理是信息系统进入成熟阶段的重要标志。
数据资源管理是解决企业内部由于数据重复而导致的各种问题的根本途径。
数据资源是企业取得竞争优势的关键。
技术框架
1 面向业务操作的数据资源管理:包括数据库、事务处理系统以及管理信息系统。
2 面向决策分析的数据资源管理:包括数据仓库以及与之紧密相关的决策支持系统。
数据仓库与数据库
数据库中的数据是与当前业务相关的数据,数据仓库中的数据是企业一段时间以来的历史数据。
数据仓库中的数据是从多个业务领域的数据库中抽取出来的,经过整理,并按分析主题重新组织起来的。
联机分析系统与数据挖掘
联机分析处理是在数据仓库的基础上,针对特定问题的联机数据访问和分析。
数据挖掘表示在大量的数据中寻找用户未知的潜在关系的过程
3 知识资源的管理和利用:包括知识库以及基于知识的系统。
2数仓的概念与结构
概念
数仓概念
定义
数据仓库就是面向主题的、集成的、不可更改的、随时间不断变化的数据集合,用于支持经营管理中的决策制定过程
特征
面向主题
主题的含义
主题是一个抽象的概念,是在较高层次上对企业信息系统中的数据综合、归类并进行分析利用的抽象。从逻辑意义上来说,它对应企业中某一宏观分析领域所涉及的分析对象。
主题划分原则
主题的独立性
在划分主题时,必须保证每个主题的独立性。也就是说,每一个主题要具有独立的内涵、明确的界限。
主题数据的完备性
在划分主题时,需要保证对主题进行分析时所需的数据都可以在此主题内找到,保证主题的完备性。
主题数据明确
在确定主题以后,需要确定主题应该包含的数据,此时应该注意不能将围绕主题的数据与业务处理系统的数据相混淆。
数据是集成的
集成性是指数据仓库中的数据必须是一致的。数据仓库的数据是从原有的、分散的多个数据库、数据文件和数据段中抽取出来的,数据来源可能既有内部数据又有外部数据。
数据是动态的
数据随时间变化
数据仓库中的数据随时间的不断变化主要体现在数据仓库随时间变化不断增加新的数据内容,删去旧的无用的数据内容,数据仓库中所包含的综合数据经常按照时间段进行综合,隔一定的时间片进行抽样等操作。
数据追加
数据仓库的数据初装完成后,再向数据仓库输入数据的过程称为数据追加。数据追加的内容仅限于上次向数据仓库输入后原来数据库中变化了的数据。
数据集市概念
含义
数据仓库可被细分为若干个数据集市(Data Marts),其中包含侧重于公司特定业务方面的数据子集。
分类
从属数据集市
所谓从属,是指它的数据直接来自中央数据仓库。显然,这种结构仍能保持数据的一致性。一般为那些访问数据仓库十分频繁的关键业务部门建立从属的数据集市,这样可以很好地提高查询的反应速度。
独立数据集市
它的数据直接来源于各生产系统。逻辑上与数仓一致,但数据量比数仓小,通常服务于公司的一个部门或一种业务。
与数仓关系
创建模式
自上而下
首先把联机分析处理数据通过ETL工具汇集到数据仓库中,然后再把数据通过复制的方式推进各个数据集市中
自下而上
首先将联机分析处理数据通过ETL工具汇集到数据集市中,然后通过复制的方式提升到数据仓库中
结构
数据仓库系统(Data Warehouse System, DWS)
数据仓库系统(Data Warehouse System, DWS)就是对进入数据仓库的原始数据完成抽取、转换、过滤、清理等处理,最终进入数据仓库,以及对数据仓库中存储的数据进行更新、管理、使用、表现等的相关软件/工具进行集合,用以支持数据仓库应用或管理决策。
数仓系统组成
整体结构
数据源
常见的数据源包括如下几种。 (1) 流行的关系数据库系统:Oracle、Sybase、SQL Server、DB2等。 (2) 面向对象数据库系统:Objectstore等。 (3) 传统的桌面数据库系统:Foxbase、FoxPro等。 (4) 文件系统中的数据文件:UNIX、Windows等。 (5) 其他数据源:Word、Excel等。 数据源可以是递归的。数据仓库的数据源可以是另外一个数据仓库(或数据集市)或OLAP服务器。
管理层
干什么
数据仓库管理层的功能就是完成数据仓库的定义,完成数据的ETL(Eextract抽取、Transform转换、Load加载),完成数据的归档、备份、维护、恢复及元数据的管理等。
组成
数仓定义部件
数据仓库定义部件用于定义和建立数据仓库,包括如下内容。 (1) 设计和定义数据仓库的数据库。 (2) 定义数据源。 (3) 确定数据源向数据仓库复制数据的转换、清理规则。
数据获取部件
数据获取部件的主要包括如下功能。 (1) 装载数据仓库。依据数据定义部件定义的规则从数据源中将数据抽取到数据仓库中,完成清理、变换和集成工作,将数据装载到数据仓库中。 (2) 定期清理数据仓库。清除数据仓库与数据源数据库的不一致,清除失效数据。 一般用通用工具或特制的工具完成数据获取工作。
数据管理部件
数据管理部件对数据仓库中的数据进行维护、备份、恢复、记录日志等管理工作。这些工作要借助数据库管理系统的功能实现。
元数据管理部件
数据仓库的元数据是数据仓库中所有管理、操作的信息目录,包含了对数据模型、数据结构、转换规则、数据仓库结构和控制信息的描述。有了元数据,才可以最有效地利用数据仓库。 数据仓库的元数据包括技术元数据和业务目录两部分。技术元数据由关于数据源、目标、转换规则及数据源与数据仓库之间的映射组成。业务目录由数据仓库管理员生成,由数据来源、当前值、预定义的查询等方面组成,是针对具体应用数据的源数据管理。
存储层
分析工具层
数仓中的数据组织
数据分级
早期细节级
早期细节数据存储过去的详细数据,反映真实的历史情况,这类数据随着时间的增加,数据量很大,使用频率低,一般存储在转换介质(如磁带)中。
当前细节级
当前细节数据存储最近时期的业务数据,反映当前业务的情况,数据量大,是数据仓库用户最感兴趣的部分。随着时间的推移,当前细节数据由数据仓库的时间控制机制转为早期细节数据。
轻度综合级
轻度综合数据是从当前的基本数据中提取出来,通常以较小的时间段(粒度)统计而成的数据,其数据量较当前细节级数据少得多。
高度综合级
高度综合级的数据十分精炼,是一种准决策数据。
元数据
元数据是数据仓库中所有管理、操作的信息目录,包含了对数据模型、数据结构、转换规则、数据仓库结构和控制信息的描述。
粒度的概念
粒度是数据仓库中一个最重要的概念,是指数据仓库的数据单位中保存数据细化或综合程度的级别。粒度影响存放在数据仓库中数据量的大小,同时影响数据仓库所能回答查询问题的细节程度。粒度可以分为两种形式:按时间段综合数据的粒度和按采样率高低划分的样本数据库。
面向主题的数据组织
按照面向主题的方式,数据的组织应该分为两个步骤:抽取主题以及确定每个主题所应包含的数据内容。 主题的抽取应该是按照分析的要求来确定的。概括各种分析领域的分析对象,可以综合得到主题。 在每个主题中都包含了有关该主题的所有信息,同时又抛弃了与分析处理无关或不需要的数据,从而将原本分散在各个子系统中的有关信息集中在一个主题中,形成有关该主题的一个完整一致的描述。面向主题的数据组织方式所强调的就是要形成一个这样一致的信息集合。 一个主题可以划分成多个表,基于一个主题的所有表都含有一个称为公共码键的属性作为其主码的一部分。公共码键将各个表统一联系起来,体现了它们是属于一个主题,如“商品”主题的公共码键是“商品号”。
面向业务
面向主题
数据分割
分割也是数据仓库中的一个重要概念,它是指将数据分散到各自的物理单元中以便能分别进行独立处理,以提高数据处理的效率。数据分割后的数据单元称为分片。分割之后,小单元内的数据相对独立,处理起来更快、更容易。
元数据管理
元数据分类
按类型划分
关于基本数据的元数据
基本数据是指数据源、数据仓库、数据集市和应用程序管理的所有数据。基本数据的元数据包括定义、结构的所有描述。
用于数据处理的元数据
对数据装载、更新处理、分析处理、管理方面的信息,如数据抽取、转换、聚合规则等的描述。
关于企业的组织结构的元数据
包括与企业相关的管理方面的数据和信息,如用户访问数据仓库、数据源、数据集市的权限信息等。
按抽象级别分类
概念级
包括业务的全部描述,如定义主要的业务实体、特征及其相互关系,系统的使用方法、已定义的查询、视图和现有的应用等相关的信息。
逻辑级
包括数据库的关系方案、逻辑多维模型等一般用伪码或数学语言描述数据抽取/转换的规则等。
物理级
包括业务规则相应的SQL代码、关系的索引文件、分析应用的代码。
按元数据承担的任务分类
静态元数据
静态元数据主要与数据结构有关,包括如下要素。 (1) 名称类:用于为系统提供标识时区分数据的符号。 (2) 描述类:对数据仓库中的多种数据元素进行说明。 (3) 格式类:提供数据仓库中数据的表达规则。 (4) 数据类型:数据仓库中数据的类型。 (5) 关系类:说明数据仓库中多种数据对象之间的关系。例如,客户与商品之间有购买关系。 (6) 域类:用于说明数据仓库中数据的有效值范围。 (7) 业务规则类:用于说明数据仓库中数据在业务处理中所要遵守的规则。例如, Customer_ID表示客户的编号,开头字母为A表示集体客户,B表示个人客户。
动态元数据
动态元数据主要与数据的状态与使用方法有关,包括如下要素。 (1) 数据质量表:用于描述数据仓库中数据的精确度、完整性、一致性和有效性。 (2) 统计信息类:统计访问数据的用户、访问时间和访问次数。这些统计信息对于数据仓库性能的提高具有较高的参考价值。 (3) 状态类:用于跟踪数据仓库的运行状况。例如,数据最近一次的备份时间、备份所需要的时间、出现的错误情况等状况。这些系统运行中的状况有助于数据仓库管理人员对数据仓库性能的了解。 (4) 处理类:描述数据仓库系统的使用方法和管理的特性。例如,数据的使用方法、概括数据的概括公式等。
从用户的角度分类
技术元数据
技术元数据是关于开发、维护和管理信息技术环境中所有的分析、设计、开发、管理等与技术关系密切的元数据,它是连接开发工具、应用程序和系统的技术纽带。 技术元数据包括对数据库、数据仓库、数据集市的数据字典、数据转换规则的代码等的描述数据。 例如: ① 关于操作系统、数据仓库和OLAP系统的体系结构和方案的描述信息,表的结构、属性限制、视图信息等。 ② 对不同信息源、数据仓库和OLAP系统之间在物理和实现级上的映射和依赖关系的描述。 ③ 抽取调度的元数据,包括抽取调度的复杂关系、源数据与目标数据之间的映射。 ④ 时间同步的元数据。 ⑤ 用户权限信息。
业务元数据
业务元数据则使企业环境的服务更易于为终端用户所理解,它为业务目标和过程的解释提供便捷的浏览、导航和数据查询。 业务元数据包括特定应用的文档(用户简介、存储映射、使用提示、导航帮助等)、业务概念和术语、预定义的查询和报表的细节、上下文信息、度量衡描述、日期格式、字典、主题词表等。例如: ① 企业概念模型。 ② 多维数据模型,维、维类别、数据立方体、数据集市的聚合原则。 ③ 业务概念模型和物理模型之间的依赖关系。 ④ 支持面向业务概念的浏览、导航。 ⑤ 支持动态立即查询、数据挖掘。
元数据的内容
数据源的元数据
(1) 每个来源的所有者描述信息。 (2) 每个来源的业务描述信息。 (3) 原始来源的更新频率。 (4) 每个来源使用的法律约束。 (5) 存取方法、存取权利、特权以及来源的存取口令。 (6) 用来实现抽取过程的程序代码。 (7) 自动抽取工具设置。 (8) 特定抽取作业的结果信息,包括抽取时间、抽取内容以及完成情况。
数据模型的元数据
(1) 企业概念模型。 (2) 数据仓库数据模型。 (3) 数据源到目标的映射。
数据准备区元数据
(1) 数据传输调度以及特定传输的结果。 (2) 数据准备区文件的使用情况。 (3) 用于连接来源、删除字段、查找属性的作业规范。 (4) 数据清理规范。 (5) 数据增强和映射转换。 (6) 数据挖掘所要求的转换(如解释空值的度量值)。 (7) 目标模式设计、来源到目标系统的数据流、目标数据的所有者。 (8) 聚集定义、聚集使用统计、基本表使用统计。 (9) 数据来源情况和审核检查记录(该记录真正来自何地、何时)。 (10) 数据转换运行时间。 (11) 数据转换软件的版本号。 (12) 数据抽取处理的业务描述。 (13) 有关抽取文件、软件以及元数据的安全性设置。 (14) 数据传输的安全性设置。 (15) 数据准备区的存档日志和恢复程序。 (16) 数据准备区存档的安全性设置。
数据库管理系统元数据
(1) 分区设置。 (2) 索引。 (3) 数据库管理系统层次的安全性特权与授权。 (4) 视图定义。 (5) 存储过程与SQL管理脚本。 (6) 数据库管理系统备份状态、备份程序以及备份安全性。
前台元数据
(1) 业务名称和有关列、表以及分组的描述。 (2) 现有的查询和报告定义。 (3) 连接规范工具设置。 (4) 打印工具规范。 (5) 最终用户文档。 (6) 网络安全性用户特权概况。 (7) 网络安全性身份验证证书。 (8) 网络安全性使用统计,包括登录尝试、存取尝试以及按位置报告的用户标识符。 (9) 个人用户概况。 (10) 有关数据源、表、视图以及报告的使用及存取映射。
3数仓的设计与开发
开发过程及特点
生命周期
 数据仓库的开发与应用阶段是对数据仓库开发应用的生命周期的描述。按照生命周期法将数据仓库开发应用的全过程分成3个阶段,完成这3个阶段并不意味着数据仓库开发的终止,而是数据仓库开发向更高阶段发展的一个转变。一方面通过这3个阶段的数据仓库开发,积累了数据仓库开发应用的经验,可对原数据仓库提出改进的建议,使原数据仓库通过改进得到提高;另一方面,用户新的需求也会丰富原数据仓库的设计,这就是螺旋式周期性开发的方法。
1规划分析阶段
调查、分析数据仓库环境,完成数据仓库的开发规划,确定数据仓库开发需求,建立包括实体图、星型模型、雪花模型、元数据模型及数据源分析的主题域数据模型,并且根据主题域数据模型开发数据仓库逻辑模型。
2设计实施阶段
根据数据仓库的逻辑模型设计数据仓库体系结构;设计数据仓库与物理数据库,用物理数据库元数据装载面向最终用户的元数据库;为数据仓库中每个目标字段确定它在业务系统或外部数据源中的数据来源;开发或购买用于抽取、清理、转换和聚合数据等中间件程序;将数据从数据源加载到数据仓库,并且进行测试。
3使用维护阶段
数据仓库投入使用,且在使用中进行改进和维护;对数据仓库进行评价,为下一个循环开发提供依据。
开发特点
1数据驱动
数据仓库的开发是从数据出发的。创建数据仓库是在原有的数据库系统中的数据基础上进行的,即从存在于操作型环境的数据出发,进行数据仓库的创建工作,称之为“数据驱动”。 数据驱动设计方法的中心是利用数据模型有效地识别原有数据库中的数据和数据仓库中主题数据的“共同性”。
2开发初期需求不完全明确
面向应用的数据库系统设计往往有一组较确定的应用需求,这是数据库系统设计的出发点和基础。而在数据仓库环境中,并不存在操作型环境中固定的且较确切的物流、数据流和信息流,数据分析处理的需求更加灵活,没有固定的模式,甚至用户自己也对所要进行的分析处理不能事先全部确定。因而在数据仓库开发初期不能明确了解数据仓库用户的全部使用需求。
3启发式开发
数据仓库的开发是一个动态反馈和循环的过程。一方面,数据仓库的数据内容、结构、力度、分割以及其他物理设计应该根据用户所返回的信息不断地进行调整和完善,以提高系统的效率和性能;另一方面,通过不断理解用户的分析需求,不断的调整和完善,以求向用户提供更准确、更有效的决策信息。
开发内容
图3.2 数据仓库设计中各种概念之间的关系  图3.3 数据仓库数据模型设计的步骤 
概念模型
数据仓库的概念模型是一个数据仓库的粗略蓝本,以此为工具确认数据仓库的设计者是否已经正确地理解了数据仓库最终用户的信息需求。在概念模型的设计中,必须将注意力集中在对业务的理解上,保证数据仓库的所有业务都被归纳进概念模型。与数据库的概念模型设计类似,也采用“实体-关系”(E-R)方法来建模,但不同的是需要用分析主题代替传统E-R方法中的实体。
逻辑模型
传统业务数据库设计中的逻辑模型一般采用范式规范的表及其关系。数据仓库设计中的逻辑模型也采用表来存储数据,因此,数据仓库中使用的也是关系模型,不过表与表之间不再通过三大范式进行规范,而是以星型架构、雪花型架构和星座型架构等方式组成。
物理模型
物理模型是关系表在物理上实现的模型,通常进行索引、簇集和视图的设计等,以及为提高性能而做的一些工作。
粒度模型
数据粒度模型也在数据仓库的设计中发挥着指导作用,指导着数据仓库的具体实现。 1)单粒度模型,在系统中只设计一个粒度。 2) 多粒度模型,在系统中涉及多个粒度,低粒度、中粒度、高粒度并存。 3) 混合粒度,在系统中,有些维度用单粒度,有些维度用多粒度。
元数据模型
数据模型设计
在创建数据仓库时需要使用各种数据模型对数据仓库进行描述,数据仓库的开发人员依据这些数据模型才能开发出一个满足用户需求的数据仓库。因此,数据仓库的设计需要先进行数据模型的设计。
数据模型特点
不包含纯操作性数据
键码具有时间属性
合适之处增加导出数据
数据关系->人工关系
概念模型设计
设计内容:确定关注的数据,产出ER图
设计方法
在建模之前先定义数据模型的边界,然后建立企业内不同群体的实体-关系模型,最后集成企业的总体概念模型。
注意项
数据内容不含操作性数据
在数据仓库的数据模型中不包含操作性数据,只包含用户感兴趣的分析数据、描述数据和细节数据。 例如,在商品销售分析数据仓库模型中,商品的销售数量、金额、企业利润等是分析数据;销售的时间、地点等是用户感兴趣的描述数据;销售产品的详细情况、购买商品的客户详细情况等是细节数据。
数据历史变迁性
数据的历史变迁性。数据仓库的数据模型增加时间属性作为键码的一部分,在数据仓库的数据模型中需要反映销售组织的历史变迁、业务的发展,而业务处理系统只包含当前的数据。
数据概括性
数据的概括性。数据仓库的数据模型中增加了一些衍生数据,专门用于分析数据仓库系统需要的一些概括性的数据,这些数据在业务处理系统的数据模型中是不需要的。例如,在销售管理的业务系统的数据模型中,通常只需要记录当前的细节数据,而在数据仓库的数据模型中,需要保存一些统计、累加而来的综合数据。
ER图描述
(1) 矩形。矩形表示实体,在数据仓库中表示主题,在矩形框内写上主题名。 (2) 椭圆形。椭圆形表示主题的属性,用无向边把主题与其属性连接起来。 (3) 菱形。菱形表示主题之间的联系,菱形框内写上联系的名字。用无向边把菱形与有关的主题连接,在无向边旁标上联系的类型。若主题之间的联系也具有属性,则把属性和菱形也用无向边连接起来。 
逻辑模型设计
设计内容:确定架构、设计事实表和维度表
架构选择
星型模型架构
概念
星型模型是最常用的数据仓库设计结构的实现模式,它使数据仓库形成了一个集成系统,为最终用户提供报表服务,为用户提供分析服务对象。 星型模型通过使用一个包含主题的事实表和多个包含事实的非正规化描述的维度表来支持各种决策查询。星型模型可以采用关系型数据库结构,模型的核心是事实表,围绕事实表的是维度表。通过事实表将各个不同的维度表连接起来,各个维度表都连接到中央事实表。维度表中的对象通过事实表与另一维度表中的对象相关联,这样就能建立各个维度表对象之间的联系。每一个维度表通过一个主键与事实表进行连接,如图3.5所示。  事实表主要包含描述特定商业事件的数据,即某些特定商业事件的度量值。 在一般情况下,事实表中的数据不允许修改,新的数据只是简单地添加进事实表中。 维度表主要包含存储在事实表中数据的特征数据。每一个维度表利用维度关键字通过事实表中的外键约束于事实表中的某一行,实现与事实表的关联, 这种结构使用户能够很容易地从维度表中的数据分析开始,获得维度关键字,以便连接到中心的事实表进行查询,这样就可以减少在事实表中扫描的数据量,以提高查询性能。 使用星型模型主要有两方面的原因。一是可以提高查询的效率。采用星型模式设计的数据仓库的优点是数据的组织已经过预处理,主要数据都在庞大的事实表中,所以只要扫描事实表就可以进行查询,而不必把多个庞大的表连接起来,查询访问的效率较高。同时由于维度表一般都很小,甚至可以放在高速缓存中,与事实表进行连接时其速度较快,便于用户理解。二是对于非计算机专业的用户而言,星型模型比较直观,通过分析星型模型,就可很容易地组合出各种查询。
与ER图关系
E-R图是代表企业中每一个可能的业务过程,一个E-R图可以拆分成多个由维度表、事实表构成的逻辑模型。 将E-R图转换成维度建模时的步骤如下。 (1) 将E-R图分成独立的业务处理,然后对每个业务单独处理建模。 (2) 在E-R图中,对包含数值型事实和可加性非码事实的实体选择其中的多对多关系,并且将它们设计成各个事实表。 (3) 将剩下的实体进行非规范化处理,设计成为表。如果一个维度表连接到一个以上的事实表,这个维度表一定要设计成一致性的维度表。大型企业数据仓库的主维度模型大致包括10~25个星型模型,每个星型模型通常连接5~15个维度表。在进行设计时,不同事实表之间就能共享其中的许多维度表。
设计要点
1区分事实、属性和维度
事实通常表现为数值型,比如“标准价格”。 属性通常指文本字段,如产品描述。 维度是类似于文本形式的属性的组合,固定的数值型属性也应放在维度表中。例如,在零售数据仓库中,至少应有一个产品维、一个商店维、一个客户维、一个时间维、一个促销维。 一般情况下,在每次抽样时,如果数值数据字段的度量都改变,那么它就是事实,如果它是离散值的描述,并几乎保持为常数,那么它就是维属性。例如,商品的价格是维度表的属性,销售量是事实。
重点
2事实表设计
事实表是数据仓库中最大的表,在进行设计时,一定要注意使事实表尽可能地小,因为过大的事实表在表的处理、备份和恢复、用户查询等方面要用较长的时间。具体方法主要有:减少列的数量;降低每列的大小;把历史数据存档;对行进行分割。 
3维度表设计
维度表的属性具有以下特征: 可用文字描述; 离散值; 有规定的约束; 在分析时可提供行标题 注:时间维度在数据仓库中占有特定的位置,建议使用时间维度。 
雪花模型架构
概念
雪花模型是对星型模型的扩展,每一个维度都可以向外连接多个详细类别表。 在这种模型中,维度表除了具有星型模型中维度表的功能外,还连接对事实表进行详细描述的详细类别表。 详细类别表通过对事实表在有关维上的详细描述,达到了缩小事实表和提高查询效率的目的,如图所示。  雪花模型是对星型模型维度表的进一步标准化,对星型模型中的维度表进行了规范化处理。 雪花模型的维度表中存储了正规化的数据,这种结构通过把多个较小的标准化表(而不是星型模型中的大的非标准化表)联合在一起来改善查询性能。由于采取了标准化降维的低粒度,雪花模型提高了数据仓库应用的灵活性。 示例 
对比星型模型

销售数仓案例
在产品的销售业务中涉及几个主要的业务指标,如销售量、销售额、库存量和库存数量等,它们日积月累,数量庞大。在设计的时候把这些指标作为事实表的度量。 销售发生的时间、顾客、门店及销售的是何种商品等因素是分析销售业务的视角,把它们作为维度。 在粒度划分上,时间维可以按日计,也可按周、月、季度和年计,按照最小粒度原则,把时间维细化到了“日”的层次;对于商品维,由于分析的时候层次需求较为明显,可以分为商品单品、细分类、小分类、中分类和大分类等层次。其他维度都可以按照类似的方法来确定,最后可以得到销售数据仓库的逻辑模型,如图所示。  这是一种雪花型架构的模型。按照此逻辑结构建立的数据仓库可以回答与销售相关的大部分商业问题。如某时间段内商品销量的变化情况如何;哪些分类的商品销量最高或利润最大;哪些顾客购买力最强;哪个门店业绩最佳。构建这样一个数据仓库,需要从商品销售、顾客信息、商品采购和商品库存等业务数据库中获取数据。
星系模型架构
一个复杂的商业智能应用往往会在数据仓库中存放多个事实表,这时就会出现多个事实表共享某个或多个维度表的情况,这就是事实星座,也称为星系模式(Galaxy Schema)。 由于数据仓库是企业范围的,能对多个相关的主题建模,所以在设计其数据构成时一般采用星系模式;而数据集市是部门级的,具有选定的主题,可以采用星型或雪花模型。
企业级
维度设计
概述
对客户、产品、服务、提供商、地点、渠道和事件发生的时间以及对企业来说很重要的其他实体的观察是企业决策分析的重要视角,当它们在一个关系数据库中表示和抽象出来的时候,它们便叫做维。 维是人们观察客观世界的角度,是一种高层次的类型划分。例如,如果希望按照时间或者按照地区或产品进行分析,那么这里的时间、地区和产品就是相应的维度。基于不同的维度,可以看到各量度的汇总情况,也可以基于所有的维度进行交叉分析。 维度表由维主键和维属性组成。例如,客户维度表包含一个主键“客户键”和用来向客户提供信息的其他字段。维度由主键和维属性构成,维属性是维度表中的列。  数仓设计中,常见维度包括:时间维度、地理维度、机构维度、客户维度
时间维度
时间维度是最常见的维度,数据仓库保留的是系统历史的数据,商务分析最基础的一个维度就是时间维度。  图示展示了一个时间维度及其层次关系,在图中时间包含年、季度、月、星期和日5个层次,实际应用可能还会在月和星期之间增加旬层次,对日可能还会进一步分类,如节假日和工作日以及周末和非周末。 进行这些分类的目的是为了适应业务分析的需要。如电信公司为了促进用户在节假日和周末多打电话,便在节假日和周末对通话资费实行优惠政策;服务性公司在周末和工作日也采用不同的服务方式和收费方式。 另一类常见的时间维度是按照财年定义的时间维度,如图3.12所示,这在财务方面的分析是必须使用的。其中定义了财年(Fiscal Year ID)、财季(Fiscal Qtr ID)、财月(Fiscal Month ID)、财周(Fiscal Week ID)和财日(Fiscal Day ID),还增加了一些标识,如季节标识(Season ID)、周末标识(Weekend Flag)和节假日标识(Holiday Flag)。涉及财务问题的项目需要将普通的时间信息同财务时间进行非常细致的转化。 
地理纬度

机构维度
机构维度通常是指实施项目的公司的机构组织情况。有的公司可能需要将公司各个部门或者各个分公司之间进行对比,这时就需要建立机构维度。  某些公司的机构维度和地理维度有部分的重叠,如国内子公司的划分基本上是按照省市区域进行的。但是机构维度同地理维度在本质上是不同的,地理维度描述的是地理信息,而机构维度描述的是公司的机构组织情况,这两个维度不能混同。如某公司在某些地方没有开设分公司,这些地区在分公司表上没有体现,但是这些地区将在地理维度上体现。
客户维度
任何公司都是服务于客户的,因此客户维度是必不可少的。分析客户背景信息对客户消费行为的影响,通过客户背景信息对客户群体进行合理地分类能够对公司的市场策略等方面提供有效的指导。常见的客户背景包括客户年龄、性别、婚姻状况、爱好和教育程度等,客户维度分类如图所示。 
物理模型设计
设计内容:物理存取方式、数据存储结构、数据存放位置、存储分配
考虑因素:I/O存取时间、空间利用率和维护代价
设计存储结构
在进行物理模型设计时,常常要按照数据的重要性、使用频率及对反应时间的要求进行分类,并将不同类型的数据分别存储在不同的存储设备中。重要性高、经常存取并对反应时间要求高的数据存放在高速存储设备上;存取频率低或对存取响应时间要求低的数据则可以存放在低速存储设备上。另外,在设计时还要考虑数据在特定存储介质上的布局。在设计数据的布局时要注意遵循以下原则。 1. 经常需要链接的表不要放在统一存储设备上; 2. 如果几台服务器之间的连接会造成严重的网络业务量问题,则要考虑服务器复制表格; 3. 考虑把整个企业共享的细节数据放在主机或其他集中式服务器上,提高这些共享数据的使用速度; 4. 不要把表格和它们的索引放在同一设备上。一般可以将索引存放在高速存储设备上,而表格则存放在一般存储设备上,以加快数据的查询速度。
设计索引策略
数据仓库中的表通常需要比联机事务处理系统中的表建立更多的索引,表中应用的最大索引数应与表格的规模成正比。数据仓库是个只读的环境,建立索引可以取得灵活性,对性能极为有利。但是,若表有很多索引,那么数据加载时间就会延长,因此索引的建立需要进行综合考虑。 最初,一般都是按主关键字和大多数外部关键字建立索引的,通常不需要添加很多的其他索引。如果表格过大,而且需要另外增加索引,那么可以将表进行分割处理。如果一个表中所有用到的列都在索引文件中,就不必访问事实表,只要访问索引就可以达到访问数据的目的,以此来减少I/O操作。 如果表太大,并且经常要对它进行长时间的扫描,那么就要考虑添加一张索引表以减少数据的扫描任务。
设计存储策略
表归并
当几个表的记录分散存放在几个物理块中时,多个表的存取和连接操作的代价会很大。这时可以将需要同时访问的表在物理上顺序存放,或者直接通过公共关键字将相互关联的记录放在一起。
引入冗余
一些表的某些属性可能在许多地方都要用到,将这些属性复制到多个主题中,可以减少处理时存取表的个数。
其他方法
(1) 建立数据序列。按照某一固定的顺序访问并处理一组数据记录。将数据按照处理顺序存放到连续的物理块中,以形成数据序列。 (2) 表的物理分割。每个主题中的各个属性的存取频率是不同的。将一张表按各属性被存取的频率分成两个或多个表,将具有相似访问频率的数据组织在一起。 (3) 生成派出数据。在原始数据的基础上进行总结或计算,生成派出数据,可以在应用中直接使用这些派出数据,以减少I/O次数,免去计算或汇总步骤,在更高级别上建立公用数据源,避免了不同用户重复计算可能产生的偏差。
数仓粒度设计
数据仓库的性能和存储空间是一对矛盾。如果粒度设计得很小,则事实表将不得不记录所有的细节,存储数据所需要的空间将会急剧膨胀;若设计的粒度很大,虽然由于事实表体积大而带来的诸多问题能够得到一定程度的缓解,但决策者不能观察细节数据。
设计步骤
粗略估算
确定合适的粒度级的起点,可以粗略估算数据仓库中将来的数据行数和所需的直接存取存储空间,粗略估算可以按照以下步骤完成。 1) 确定数据仓库中将要创建的所有表,然后估计每张表中行的大小(确切大小可能难以知道,估计一个下界和一个上界就可以了)。 2)将各表中行数可能的最大值和最小值分别乘以数据的最大长度和最小长度。另外,还要将索引项的数目与键码的长度的乘积累加到总的数据量中去。
确定双重或单一的粒度
粗略估算好数据量后,下一步就要将数据仓库环境中总的行数和下表中的表格进行比较。根据数据仓库环境中总的行数的大小,在设计和开发时必须采取不同的方法。 
确定粒度的级别
在数据仓库中确定粒度的级别时,需要考虑这些因素:要接受的分析类型、可接受的数据最低粒度和能存储的数据量。 计划在数据仓库中进行的分析类型将直接影响数据仓库的粒度划分。将粒度的层次定义得越高,就越不能在该仓库中进行更细致的分析。例如,将粒度的层次定义为月份时,就不可能利用数据仓库进行按日汇总的信息分析。 数据仓库通常在同一模式中使用多重粒度。在数据仓库中,可以有今年创建的数据粒度和以前创建的数据粒度。这是以数据仓库中所需的最低粒度级别为基础而设置的。例如,可以用低粒度数据保存近期的财务数据和汇总数据,对时间较远的财务数据只保留粒度较大的汇总数据。这样既可以对财务近况进行细节分析,又可以利用汇总数据对财务趋势进行分析,这里的数据粒度划分策略就需要采用多重数据粒度。
设计原则
粒度在数据仓库生命周期中是重要的考虑因素,它由业务问题所驱动,受技术的制约。如果粒度太大,就会丢失个别细节,就要花更多的处理时间来解开聚合;若粒度太小,就会由于一叶障目而不见森林,许多宝贵的处理时间都浪费在建立聚合上。因此粒度设计主要是权衡粒度级别,对于业务量大、分析要求比较高的情况,最佳的解决办法是采用多重粒度的形式。 针对具体的某个事实的粒度而言,应当采用最小粒度原则,即将量度的粒度设置到最小。 假设目前的数据最小记录到秒,即数据库中记录了每秒的交易额,那么,如果可以确定在将来的分析需求中时间只需要精确到天就可以的话,就可以在ETL处理过程中按天来汇总数据。此时,数据仓库中量度的粒度就是“天”。反过来,如果不能确定将来的分析需求在时间上是否需要精确到秒,那么,就需要遵循最小粒度原则,精确到“秒”以满足查询的可能需求。
创建数仓基本步骤
1建立运营环境文档
识别业务系统(系统服务、数据库、Excel、log...)
确定业务系统中存储的是什么数据
建立运营环境文档的第二个步骤是决定每个系统中存储什么样的数据。这个操作必须在字段(表的列)层次上实现,也就是每个重要的字段必须能清楚地被理解。为此,必须与用户进行深入的交流。设计者必须处理好存储数据的主要部件和存储这些数据的存取方法之间的不确定性。  在分析需求的时候,需要用户提供一些他们现行使用的报表样本。通过分析这些样本,可以更好地鉴别哪些数据必须包含在数据仓库中。另外,如果能替换这些报表的话,就可以排除产生这些报表的子系统,从而提高数据仓库的投资汇报。 
2选择数仓实现技术
(1)数据仓库的操作系统。 (2)数据仓库的数据库。 (3)数据仓库模型工具。 (4)数据仓库开发工具。 (5)数据仓库监视工具。 (6)提取和清除工具。 (7)报告工具。 (8) OLAP服务器。 (9)数据挖掘工具。 下面是选择供应商需要注意的问题。 (1)选择"最好的"产品并不总是正确的解决方案,应选择有可能变成行业标准的质优产品,这通常取决于公司拓展该产品市场的能力,而不仅仅在于产品本身。 (2)对于需求,使用较小的供应商提供的产品,一个小的、刚刚起步的公司同那些拥有大量客户的大公司相比,会更注重客户的需求。 (3)选择与行业标准相近的产品。这样,在未来认为合适的时候,数据仓库群会比较容易改变供应商。 有许多供应商提供这种软件。评估和选择最好的产品是很困难的,该技术具有建立或者破坏数据仓库项目的潜力,因而,花费时间来评估几个供应商的不同软件包是T牛必需的工作。
3设计数仓模型
4创建数据准备区
为支持数据抽取、清理和转换操作以便准备数据装入数据仓库,需要创建表和其他数据库对象。可以为数据准备区创建单独的数据库,或者在数据仓库数据库中创建这些项目。
5创建数仓使用的数据库
可以在设计数据仓库架构之后创建数据仓库数据库。需要创建事实数据表和维度表,并在所有表中的主要字段上建立索引。 星型架构由单个事实数据表和一些维度表组成。雪花型架构增加了次要维度表。更复杂的数据仓库可能包含多个事实数据表和许多维度表,其中有些维度表由所有事实数据表共享,有些维度表则专用于单个事实数据表。
6从数据源获取数据
数据抽取过程的目的是使所有的源数据都具有通用的、一致的格式,以便准备装入数据仓库。
7清理和转换数据
在从源系统抽取数据的过程中可能会完成很多数据转换。但是,在将数据装入数据仓库前,经常还有其他任务需要完成。例如,必须在抽取后协调来自异类数据源的不一致的数据,并完成其他格式化和清理任务,还应该一直等到抽取过程合并代理键后。某些在抽取过程中可通过技术手段完成的转换可能会影响联机源系统的性能或操作,应将这些任务推迟到抽取完成后执行。 从源系统抽取数据后,数据应驻留在数据准备区,在这里可以在数据装入数据仓库前完成清理和转换。数据准备区可以是数据仓库数据库中单独的数据库或单独的表。在清理和转换阶段,可以执行过程来验证数据的一致性,将数据转换成常用格式以及合并代理键。
8数据载入数据仓库数据库
在数据被清理、转换之后,就可加载到合适的数据仓库事实表中。在数据加载后,还要更新元数据仓库中的元数据,以反映刚完成的数据加载活动,并且对受影响的概括数据重新进行概括处理。数据的加载活动应该使用标准方法和通用工具,例如,在关系数据库管理系统中可以使用SQL或专门用于管理数据仓库的数据库管理系统加载工具。
9准备显示信息
因为通常通过客户端应用程序提供对数据仓库数据的访问,所以必须在数据仓库中完成某些任务,以便为最终用户准备显示信息。数据仓库设计的一部分是识别这些应用程序所需的任何特殊数据配置要求,通常是按照应用程序文档中的描述来配置应用程序本身的。
10将数据分发到数据集市
4联机分析处理OLAP
产生背景
自20世纪80年代开始,许多企业利用关系型数据库来存储和管理业务数据,并建立相应的应用系统来支持日常的业务运作。这种应用以支持业务处理为主要目的,被称为联机事务处理(On-line Transaction Processing, OLTP)应用,它所存储的数据被称为操作数据或者业务数据。 随着数据库技术的广泛应用,企业信息系统产生了大量的业务数据,如何从这些海量的业务数据中提取出对企业决策分析有用的信息,这成为企业决策管理人员所面临的重要难题。因此,人们逐渐尝试对OLTP数据库中的数据进行再加工,以形成一个综合的、面向分析的、更好的支持决策制定的决策支持系统。目前企业的信息系统的数据一般由数据库管理系统来管理,但决策数据库和运行操作数据库在数据来源、数据内容、数据模式、服务对象、访问方式、事务管理乃至物理存储等方面都有不同的特点和要求,因此,直接在操作型数据库上建立决策支持系统是不合适的。数据仓库技术就是在这样的背景下发展起来的。 
与数仓的关系
联机分析处理是数据仓库系统的一个应用。 数据仓库系统的核心是联机分析处理,但数据仓库系统还包括更为广泛的内容。 概括来说,数据仓库系统是指具有综合企业数据的能力,能够对企业大量数据进行快速和准确的分析,辅助做出更好的商业决策的系统,它本身包括3部分内容,如下图所示。  (1) 数据层。实现对企业操作数据的抽取、转换、清理和汇总,形成信息数据,并存储在企业级的中心信息数据库中。 (2) 应用层。通过联机分析处理甚至是数据挖掘等应用处理,实现对信息数据的分析。 (3) 表现层。通过前台分析工具,将查询报表、统计分析、多维联机分析和数据发掘的结论展现在用户面前。 从应用的角度来说,数据仓库系统除了联机分析处理外,还可以采用传统的报表或者数理统计和人工智能等数据挖掘手段,涵盖的范围更广;就应用范围而言,联机分析处理往往根据用户分析的主题进行应用分割,如销售分析、市场推广分析、客户利润率分析等,每一个分析的主题形成一个OLAP应用,而所有的OLAP应用实际上只是数据仓库系统的一部分。
OLAP基本概念
变量
变量是数据的实际意义,即描述数据是什么。在一般情况下,变量总是一个数值度量指标,例如人数、单价、销售量等都是变量,而100则是变量的一个值。
维
维是人们观察数据的特定角度。例如,企业常常关心产品销售数据随着时间的推移而产生的变化情况,这时是从时间的角度来观察产品的销售,所以时间是一个维(时间维);企业也时常关心自己的产品在不同地区的销售分布情况,这时是从地理分布的角度来观察产品的销售,所以地理分布也是一个维(地理维)。其他还有如产品维、顾客维等。
维的层次
人们观察数据的某个特定角度(即某个维)还可以存在细节程度不同的多个描述方面,称这多个描述方面为维的层次。一个维往往具有多个层次,例如,在描述时间维时,可以从日期、月份、季度、年等不同层次来描述,那么日期、月份、季度、年等就是时间维的层次;同样,城市、地区、国家等构成了地理维的层次。
维成员
维的一个取值称为该维的一个维成员。如果一个维是多层次的,那么该维的维成员是由各个不同维层次的取值组合而成的。例如,考虑时间维具有日期、月份、年这3个层次,分别在日期、月份、年上各取一个值组合起来,就得到了时间维的一个维成员,即“某年某月某日”。一个维成员并不一定在每个维层次上都要取值,例如“某年某月”、“某月某日”、“某年”等都是时间维的维成员。对应于一个数据项来说,维成员是该数据项在某维中位置的描述。例如,对于一个销售数据来说,时间维的维成员“某年某月某日”就表示该销售数据是“某年某月某日”的销售数据,“某年某月某日”是该销售数据在时间维中位置的描述。
多为数组
一个多维数组可以表示维(维1,维2,...,维n,变量)。例如,若日用品销售数据是按时间、地区和销售渠道组织起来的三维立方体,加上变量“销售额”,就组成了一个多维数组(地区,时间,销售渠道,销售额),如果在此基础上再扩展一个产品维,就得到一个四维的结构,其多维数组为(产品,地区,时间,销售渠道,销售额)。
数据单元(单元格)
多维数组的取值称为数据单元。当多维数组的各个维都选中一个维成员时,这些维成员的组合就唯一确定了一个变量的值。 例如,在产品、地区、时间和销售渠道上各取维成员“牙膏”、“上海”、“1998年12月”和“批发”,就唯一确定了变量“销售额”的一个值(假设为100000),则该数据单元可表示为(牙膏,上海,1998年12月,批发,100000)。
数据立方
数据立方又称多维数据集,是用来分析数据的典型方式。 正像在数学中用xyz坐标轴表示3个空间创建的一个立方体 一样,可以从不同的商业视角为维度建立一个商业数据分析用的立方体,这些维的属性是立方体的坐标轴。例如,可以从客户的视角去观察商业数据,这时应该建立客户维,而客户维中有客户所在的城市这一属性,因而在立方体中会出现城市坐标轴。同样,时间维中的日期属性可以作为坐标轴,产品维中的产品名称可以作为坐标轴。 
OLAP基本分析操作
1切片
选定多维数组的一个二维子集的操作叫做切片。
2切块
定义l:在多维数组的某一维上选定某一区间的维成员的操作称为切块,即限制多维数组的某一维的取值区间。 定义2:选定多维数组的一个三维子集的操作称为切块。
3旋转
旋转即改变一个报告或页面显示的维方向。例如,旋转可能包含交换行和列,或是把某一个行维移到列维中,如图所示,或是把页面显示中的一个维和页面外的维进行交换(令其成为新的行或列中的一个)。 
4钻取
钻取是改变维的层次,变换分析的粒度,它包括上卷(Roll Up)和下钻(Drill Down)。 Roll Up是在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数;而Drill Down则相反,它从汇总数据深入到细节数据进行观察或增加新维。 
子主题
OLAP分类
OLAP系统按照其存储器的数据存储格式可以分为关系OLAP(Relational OLAP, ROLAP)、多维OLAP(Multidimensional OLAP, MOLAP)和混合型OLAP(Hybrid OLAP, HOLAP)3种类型。
关系型:ROLAP
ROLAP将分析用的多维数据存储在关系数据库中,并根据应用的需要有选择地定义一批实视图作为表也存储在关系数据库中。不必要将每个SQL查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。对每个针对OLAP服务器的查询,优先利用已经计算好的实视图来生成查询结果以提高查询效率。同时用做ROLAP存储器的RDBMS针对OLAP也做相应的优化,如并行存储、并行查询、并行数据管理、基于成本的查询优化、位图索引、SQL的OLAP扩展(Cube, Roll up)等。
多维型:MOLAP
MOLAP将OLAP分析所用到的多维数据在物理上存储为多维数组的形式,形成“立方体”的结构。维的属性值被映射成多维数组的下标值或下标的范围,而总结数据作为多维数组的值存储在数组的单元中。由于MOLAP采用了新的存储结构,从物理层开始实现,因此又称为物理OLAP(Physical OLAP);而ROLAP主要通过一些软件工具或中间软件来实现,物理层仍采用关系数据库的存储结构,因此称为虚拟OLAP(Virtual OLAP)。
混合型:HOLAP
由于ROLAP和MOLAP有着各自的优点和缺点,且它们的结构迥然不同,这给分析人员设计OLAP结构带来了难题。为此,一个新的OLAP结构——混合型OLAP被提出,它能把MOLAP和ROLAP两种结构的优点结合起来。迄今为止,对HOLAP还没有一个正式的定义。但很明显,HOLAP结构不应该是MOLAP与ROLAP结构的简单组合,而是这两种结构技术优点的有机结合,能满足用户各种复杂的分析请求。
OLAP的特性与不足
特性
多维数据库
定义:多维数据库(Multidimensional Database).是以度量、维度、层次结构和多维数据集为中心进行构造的数据库,而不是以表、行,列和关系为中心。 OLAP系统围绕构造度量、维度、层次结构和多维数据集的数据进行创建。 根据维度分析度量时,多维数据库是存储商业智能信息的最自然方式。除了先天的适应性,多维数据库还有另一个好处,它提供了存储预处理聚合的结构。
预处理聚合
如果OLAP系统的目标是为了让决策者与数据互动,那么它必须能够快速地得到聚合。因此,OLAP系统要预处理多维数据集各个部分的聚合数据。这个预处理是后台任务的一部分,也会载入和更新OLAP数据库中的数据。由于这是后台任务的一部分,所以花费在预处理上的时间不会影响到任何用户。聚合被预处理之后,将会连同多维数据集存储到多维数据库中。 现在,当决策者想要查看某个特定的维度组合所对应的度量时,就可以直接从数据库中读取这个值。而不是即时计算出来。这可以极大地改善系统的响应速度,从而改善联机交互速度,并方便决策者找到有助于决策的正确信息。
方便理解
在OLAP系统中,数据的结构由维度和层次结构表示。如果OLAP系统设计正确,这些维度和层次结构应该与该组织的业务结构相符。因此,使用系统的决策者应该是熟悉数据结构的。
不足
管理复杂
需要数据集市
在大多情况下,OLAP系统需要使用星型或者雪花型架构的数据集市。数据必须从OLTP系统复制到数据集市中。需要建立预定的架构来进行数据复制和数据清洗。如果任何一个OLTP系统改变,对应的复制和清洗模式也需要同时改变。
延迟
只读
5数据挖掘
背景
信息量激增但缺少高层次分析和有效利用
硬件性能提高,软件算法逐步成熟,提供了基础
定义
技术角度
数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。 这个定义包括几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题即可。
商业角度
数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取出辅助商业决策的关键性数据。
对比传统分析方法
数据挖掘与传统的数据分析方法(如查询、报表、联机应用分析)的本质区别是,数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识。数据挖掘所得到的信息应具有先前未知、有效和可用3个特征。
与数仓关系
对于数据挖掘,数据仓库不是必需的。 数据挖掘库可能是数据仓库一个逻辑上的子集,不一定非得是物理上单独的数据库。但如果数据仓库的计算资源已经很紧张,那最好建立一个单独的数据挖掘库。
与OLAP对比
OLAP是决策支持领域的一部分。OLAP分析师是建立一系列的假设,然后通过OLAP来验证或推翻这些假设来最终得到自己的结论。OLAP分析过程在本质上是一个演绎推理的过程。 数据挖掘与OLAP不同的是,数据挖掘不是用于验证某个假设模式(模型)的正确性,而是在数据库中自己寻找模型,它在本质上是一个归纳的过程。 数据挖掘和OLAP具有一定的互补性。在根据数据挖掘出来的结论采取行动之前,也许要验证一下:如果采取这样的行动,会给公司带来什么样的影响?OLAP工具能回答这些问题。
与机器学习和统计分析的关系
数据挖掘利用了人工智能(AI)和统计分析的进步所带来的好处,这两门学科都致力于模式发现和预测。
挖掘的知识类型
广义知识
广义知识是指类别特征的概括性描述知识。根据数据的微观特性发现其表征的、带有普遍性的、较高层次概念的、中观和宏观的知识,反映同类事物的共同性质,是对数据的概括、精炼和抽象。
关联知识
数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则具有可信度描述。 关联知识可分为简单关联规则、多层关联规则、多维关联规则、量化关联规则和基于约束的关联规则。
分类知识
分类是预测分类标号,即离散值。分类知识的应用范围广泛,包括信誉证实、医疗诊断、性能测试和选择购物等。 挖掘分类知识的算法有决策树分类、贝叶斯分类、人工神经网络法、粗糙集法和遗传算法等。
预测知识
分类知识可以预测离散值。而预测知识在这里指的是预测连续值,是根据时间序列型数据,由历史的和当前的数据去推测未来的数据,也可以认为是以时间为关键属性的关联知识。 预测知识的发现方法有经典的基于统计学习的回归分析法,还有基于现代智能计算的神经网络、遗传算法等各类时间序列分析法。
偏差知识
偏差知识是对差异和极端特例的描述,用来揭示事物偏离常规的异常现象。数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。
数据挖掘流程
1确定主题
2数据筛选
3数据清理
4数据变换
5选择算法
6数据挖掘
7模式解释
8知识评价
9知识展示
数据挖掘对象
关系数据库
数据仓库
文本
多媒体数据
Web数据
复杂类型数据
主要任务
1概念描述
2关联分析
3分类
4聚类
5孤立点分析
6时间序列分析
7预测
数据挖掘分类
数据挖掘涉及多个学科方向,主要包括数据库技术、统计学、机器学习、可视化和信息科学等
按数据库类型分
按数据挖掘对象分
按挖掘的知识类型分
按挖掘方法和技术分
归纳学习类
仿生计算类
公示发现类
统计分析类
模糊数学类
可视化技术类
6数据预处理
目的及方法
因为用于数据挖掘的原始数据源可能是多个数据库或数据仓库,而这些数据源的结构和规则可能是不同的,这将导致原始数据非常杂乱、不可用,即使在同一个数据库中,也可能存在重复的和不完整的数据信息。为了使这些数据能够符合数据挖掘的要求,提高挖掘的效率和得到清晰的结果,必须进行数据的预处理。 数据问题:不一致、重复、不完整、含噪声(孤立值)、维度高(无用细节多) 方法: 数据清理:补缺、去重、去孤、去无关; 数据集成:数据合并; 数据转换:汇总、概化、规范化; 数据规约:使数据范围缩小
数据清理
原则
尽可能赋予属性名和属性值明确的含义
统一数据源的属性值编码
去除唯一属性
一般来说,原始数据中的关键属性(也称唯一属性)对数据挖掘是无用的,它们通常用来作为记录的唯一性标识,不形成规则。但是如果需要建立挖掘结果和原始数据之间的直接对应关系的话,通常要保留一个或多个必要的关键属性或唯一属性。
去除重复属性
如年龄和出生日期
去除可忽略字段
合理选择关联字段
如属性x可以使由另一个或多个属性推导或者计算出来的,则认为这些字段之间的关联度高。所以在清洗时只选择其中之一,或者属性x或者其他关联属性。
处理空缺值方式
忽略
去掉属性
如果所有记录中的某一个属性值缺失严重,可以认为该属性对于知识发现来说已经没有意义。此时,一个有效的清理方法就是把该属性排除在挖掘数据集之外。
按算法填补空缺值
使用默认值
噪声数据处理
分箱
聚类
回归
数据集成
模式匹配
去除冗余
消除冲突
数据变换
聚集
概化
规范化
属性构造
为了提高数据挖掘的精度或者使数据结构更容易理解,有时候会根据已有的属性构造新的属性添加到挖掘数据集中。例如,在客户背景数据表中,根据客户月收入,构造“收入水平”属性,取值为低、中、高。这种方法对于分类算法很有帮助。
数据归约
数据归约是对源数据集到得到的数据集的归约表示,从原始数据选择出来的数据集非常大,甚至使得在其上进行数据挖掘非常困难。数据归约的目的是为了获得比原始数据小得多的、但不破坏数据完整性的挖掘数据集,该数据集可以得到与原始数据相同的挖掘结果。 常用方法: (1) 数据立方体聚集。数据立方体聚集就是把聚集的方法用于数据立方体。 (2) 维归约。维归约就是检测并删除不相关、弱相关或冗余属性。 (3) 数据压缩。数据压缩就是选择正确的编码压缩数据集。 (4) 数值归约。数值归约就是用较少的数据替代原数据或采用较短的数据单位、数据模型替代原数据。 (5) 离散化和概念分层。使连续的数据离散化,就是用确定的有限个区段值代替原始值;概念分层是指用较高层次的概念替换低层次的概念,以此来减少取值个数。
7数据挖掘常用算法
priori算法
决策树算法
神经网络算法
聚类分析算法