当前位置:
文档之家› 2_第二讲(数据仓库、数据挖掘的OLAP技术和多维数据模型)
2_第二讲(数据仓库、数据挖掘的OLAP技术和多维数据模型)
数 据 挖 掘 概念与技术
第二讲
数据仓库和数据挖掘的 OLAP技术
数据仓库和数据挖掘的OLAP技术 主要授课内容:
什么是数据仓库? 多维数据模型 数据仓库的体系结构 数据仓库实现 数据立方体技术的进一步发展 从数据仓库到数据挖掘
什么是数据仓库?
数据仓库的定义很多,但却很难有一种严格的定义
历史数据: 决策支持需要历史数据,而这些数据在操作数据 库中一般不会去维护 数据汇总:决策支持需要将来自异种源的数据统一(如聚集 和汇总) 数据质量: 不同的源使用不一致的数据表示、编码和格式, 对这些数据进行有效的分析需要将他们转化后进行集成
其次是为了实现不同的功能、处理不同的数据:
多维数据模型
item
Sales Fact Table time_key item_key branch_key
item_key item_name brand type supplier_key
branch
branch_key branch_name branch_type
location_key units_sold dollars_sold avg_sales
不同于操作数据库,数据仓库无需进行事务处理 (最大目的保持数据一致性),恢复机制(回滚、 撤销),和并发控制机制(多人同时写操作数据 库时如何有效规避)。 对数据仓库只需要两种数据访问:
数据的初始转载和数据访问(读操作)
数据仓库与传统的异种数据库集成
传统的异种数据库集成:
在多个异种数据库上建立包装程序(wrappers,在每个数据库 上各自加上虚拟层,蒙蔽掉区别,转换为统一标准)和中介程序
2-D cuboids
time,location,supplier
3-D cuboids
time,item,supplier
item,l(base) cuboid
time, item, location, supplier
数据仓库的概念模型
最流行的数据仓库概念模型是多维数据模型。这种模 型可以以星型模式、雪花模式、或事实星座模式的形 式存在。
它是一个提供决策支持功能的数据库,它与公司的操作数据 库(日常用的数据库,即公司使用的数据库系统)分开维护。 为统一的历史数据分析提供坚实的平台,对信息处理提供支 持
定义:“数据仓库是一个面向主题的、集成的、随时 间而变化的、不容易丢失的数据集合,支持管理部门 的决策过程.”
------W. H. Inmon(数据仓库构造方面的领头
define cube <cube_name> [<dimension_list>]: <measure_list>
维定义 (维表) (维的属性的定义) 特殊案例 (共享维表的定义)
define dimension <dimension_name> as (<attribute_or_subdimension_list>)
branch_key branch_name branch_type
location_key units_sold dollars_sold avg_sales Measures
location
location_key street city province_or_state country
to_location dollars_cost units_shipped shipper
数据仓库的主要任务是联机分析处理OLAP
OLTP和OLAP的主要区别:
OLTP系统和OLAP系统的比较
特征
任务特点 面向 用户 功能 DB设计 数据 事务 办事员、DBA、数据库专业人员 日常操作 基于E-R,面向应用 最新的、详细的
OLTP
操作处理(联机事务处理) 分析
OLAP
星型模式实例
time
time_key day day_of_the_week month quarter year
item
Sales Fact Table time_key
item_key item_name brand type supplier_type
item_key branch_key
location_key units_sold dollars_sold avg_sales Measures
branch
branch_key branch_name branch_type
location
location_key street city state_or_province country
雪花模式实例
time
time_key day day_of_the_week month quarter year
设计师)
建立数据仓库(data warehousing):
指的是构造和使用数据仓库的过程。
数据仓库关键特征一——面向主题
总是围绕一些主题,如顾客、供应商、产品等
关注决策者的数据建模与分析,而不是集中于 组织机构的日常操作和事务处理。 排除对于决策无用的数据,这样数据的组织上 就能提供特定主题的简明视图。
数据仓库: 更新驱动
数据仓库与操作数据库系统
操作数据库系统的主要任务是联机事务处理OLTP
如日常操作: 购买,库存,银行,工资,注册,记帐等等 如数据分析和支持决策等 用户和系统的面向性: 服务于顾客 VS.服务于市场分析 数据内容: 当前的、详细的数据 VS. 历史的、汇总的数据 数据库的设计方法对比:实体-联系模型(ER)和面向应用的数 据库设计 VS. 星型/雪花模型和面向主题的数据库设计 视图: 当前的、企业内部的数据 VS. 经过演化的、集成的数 据 访问模式: 事务操作 VS. 只读查询(但很多是复杂的查询)
星型模式(Star schema): 事实表在中心,周围围绕地连接 着维表(维表有冗余),事实表含有大量数据,没有冗余。 雪花模式(Snowflake schema): 是星型模式的变种,其 中某些维表是规范化的(把引起冗余的字段用一个新表来表 示,被分解的表都连接到主维度表而不是事实表),因而把 数据进一步分解到附加表中,去除冗余。结果,模式图形成 类似于雪花的形状。其优点是 : 通过最大限度地减少数据存 储量以及联合较小的维表来改善查询性能。 事实星座(Fact constellations): 多个事实表共享维表, 这 种模式可以看作星型模式集,因此称为星系模式(galaxy schema),或者事实星座(fact constellation)
数据仓库关键特征三-----随时间而变化
数据仓库的时间范围比操作数据库系统要长的 多(公司日用使用的操作数据库的老数据要归 档操作,否则运行缓慢、占据存储空间)。
操作数据库系统: 主要保存当前数据(感兴趣、访 问计算效率高、时效性)。 数据仓库:从历史角度提炼出专门面向某一主题的数 据信息,其数据量较小(比如过去 5-10 年销售记 录),我们通常无法在操作数据库上直接进行挖掘
第一次作为维表定义 “cube definition”,如上,没有区别 然后:define dimension <dimension_name> as <dimension_name_first_time> in cube <cube_name_first_time>
(mediators ,将指令翻译为后台支持的每一个数据库系统所能 够理解的语言)
查询驱动方法——当从客户端传过来一个查询时,首先使用 元数据字典(各异种数据库系统的数据字典的集合,包含表、表 的字段及其定义的集合)将查询转换成相应异种数据库上的查 询;然后,将这些查询映射和发送到局部查询处理器 缺点:复杂的信息过虑和集成处理,中间包装程序、中介程 序的实现较复杂,占用计算空间且竞争操作数据库的资源。 将来自多个异种源的信息预先集成,并存储在数据仓库中, 供直接查询和分析,因为数据仓库中的数据无需最新。 最大优点:数据仓库技术的高性能性。
复杂的查询 数百万个 数百个 100GB-数十TB 高灵活性、端点用户自治 查询吞吐量(一个小时做几次 查询)、一个查询的响应时间
为什么需要一个分离的数据仓库?
首先是为了提高两个系统的性能
DBMS,数据库系统是为OLTP而设计的:其存储方式,索引, 并发控制, 恢复都是为了数据库系统进行OLTP处理而设计的 数据仓库是为OLAP而设计:例如数据仓库中复杂的 OLAP 查询, 多维视图,汇总是平时OLTP所用不到的。
数据立方体(四维)----------方体的格
all time item location supplier
0-D(apex) cuboid
1-D cuboids
time,item
time,location
item,location item,supplier
location,supplier
time,supplier time,item,location
shipper_key shipper_name location_key shipper_type
一种数据挖掘查询语言: DMQL
DMQL首先包括定义数据仓库和数据集市的语言原语, 这包括两种原语定义:一种是立方体定义,一种是维 定义
立方体定义 (事实表) (维表的关键字+事实的名称或度量)
一个数据仓库总是基于多维数据模型的:多维数据立方体!