770 likes | 983 Views
数据仓库技术. 1 、数据仓库技术的产生 2 、数据仓库概念 3 、数据仓库中的数据组织 4 、数据集市. 1 、 数据仓库技术的产生. 数据仓库 (Data Warehouse) 技术完全是在决策需求的驱动下产生与发展起来的。 操作型数据库无法满足 决策支持系统对数据库系统的要求 专为决策服务的数据库系统称为 数据仓库 (Data Warehouse ,简称 DW) 。. 决策支持系统对数据库系统的要求:. 详细数据与 总结数据 (summary data) 当前数据与 历史数据 数据源的 异构性 和 分布性 即时更新与 按需更新
E N D
数据仓库技术 1、数据仓库技术的产生 2、数据仓库概念 3、数据仓库中的数据组织 4、数据集市
1、 数据仓库技术的产生 • 数据仓库(Data Warehouse)技术完全是在决策需求的驱动下产生与发展起来的。 • 操作型数据库无法满足决策支持系统对数据库系统的要求 • 专为决策服务的数据库系统称为数据仓库(Data Warehouse,简称DW)。
决策支持系统对数据库系统的要求: • 详细数据与总结数据(summary data) • 当前数据与历史数据 • 数据源的异构性和分布性 • 即时更新与按需更新 • 联机事务处理OLTP与联机分析处理OLAP
2、 数据仓库概念 • 以1992年W.H.Inmon出版《Building the Data Warehouse》为标志,数据仓库速度发展起来,Inmon也被誉为 “数据仓库之父”。 • W.H.Inmon对数据仓库的定义是:“数据仓库是支持决策过程的、面向主题的、集成的、随时间变化的、持久的数据集合。
2、 数据仓库概念--- 数据仓库的特征 • 面向主题 • 典型的主题领域:客户;产品;交易;帐目 • 集成的 • 数据提取、净化、转换、装载 • 非易失的 • 数据仓库的数据通常是一起载入和访问的,但并不进行一般意义上的数据更新 • 随时间的变化性 • 数据仓库中的时间期限要远远长于操作型系统中的时间期限(5~10年); • 数据仓库中的数据是一系列某一时刻生成的复杂的快照; • 数据仓库的键码结构总是包含某时间元素。
面向主题 数据仓库 操作性环境 顾客 保险单 保险费 索赔 汽车 人寿 健康 意外伤亡 主 题 应 用
集成 数据库 应用A m,f 应用B 1,0 应用C x,y 应用D 男,女 数据仓库 m,f 编码 属性度量 应用A 管道cm 应用B 管道inches 应用C 管道mcf 应用D 管道yds 管道cm
集成 多重信息源 应用A 描述 应用B 描述 应用C 描述 应用D 描述 应用A char(10) 应用B dec fixed(9,2) 应用C pic ‘9999999’ 应用D char(12) ? 描述 冲突的键码 char(12)
J Jones 女 1945年7月20日 。。。。。 人寿保险 顾客 J Jones 女 1945年7月20日出生 去年两张罚单 一次大事故 已婚 两个孩子 高血压 。。。。。。 J Jones 去年有两张罚单 一次大事故 。。。。。 汽车保险 J Jones Main大街123号 已婚 。。。。。 房产保险 J Jones 两个孩子 高血压 。。。。。 健康保险 数据仓库 操作性
非易失性 数据库 数据仓库 修改 插入 访问 删除 删除 访问 插入 修改 数据的逐个记录方式处理 数据的批量载入/访问
随时间变化 数据库 数据仓库 时间期限:当前到60—90天 记录更新 键码结构可能包括也可能不 包括时间元素 时间期限:5—10年 数据的复杂快照 键码结构包括时间元素
3 数据仓库中的数据组织 3.1 数据的粒度 3.2 数据仓库的数据组织结构 3.3 数据的分割 3.4 数据仓库的数据组织形式 3.5 数据仓库的数据组织模式 3.6 数据的追加
3.1 粒度 • 粒度——是指数据仓库的数据单位中保存数据的细化或总合程度的级别。 • 细化程度越高,粒度级就越小;细化程度越低,粒度级就越大。 • 粒度——细节的级别 • 粒度的划分决定了数据仓库中数据量的大小和查询的详细程度。 • 多重粒度
粒度(granularity)——细节的级别 高细化——低粒度 例如:一个顾客一个月内 的每个电话的细节 低细化——高粒度 例如:一个顾客一个月内 的电话的综合
询问某一电话的细节 粒度的一个例子 高细化 通过检索 可以回答 每月200个记录 每月40,000个字节 无细节 无法回答 低细化 每月一个记录 每月200个字节
3.2 数据仓库的数据组织结构 每月销售 1994-2001 高度综合级 元数据 轻度综合级 (数据集市) 每周销售 1994-2001 销售细节级 2000-2001 当前细节级 操作型转换 销售细节级 1994-1999 早期细节级
元数据(Metadata) • 元数据——关于数据的数据,它描述了数据的结构、内容、码、索引等。 • 元数据的内容不仅为数据仓库的创建提供必要的信息、描述和定义,还为DSS分析人员访问数据仓库提供直接的或辅助的信息。
数据仓库中元数据必须包含的内容 • 数据仓库的主题描述: 主题名、主体的公共码键、有关描述信息等 • 外部数据和非结构化数据的描述: 外部数据源名、存储地点、存储内容简述 • 记录系统定义: 主题名、属性名、数据源系统、源表名、源属性名 • 逻辑模型的定义: 关系名、属性1、属性2……属性n • 数据进入数据仓库的转换规则 • 数据的抽取历史 • 粒度的定义 • 数据分割的定义 • 广义索引:广义索引名,属性1、属性2……属性n • 有关存储路径和结构的描述
3.3 分割 • 分割——将当前细节数据分散到各自的物理单元中去以便能分别独立处理,以提高数据处理效率。 • 分片——数据分割后的独立单元。 • 数据的分割 提高了数据管理的灵活性重构、索引、重组、恢复、监控 • 分割的标准:日期、地域、业务领域。
数据的分割 分片 容易管理 难以管理
分割的一个例子 健康保险 生命保险 事故保险 1999 分片1 分片2 分片3 2000 分片4 分片5 分片6 2001 分片7 分片8 分片9
3.4 数据仓库的数据组织形式 • 简单堆积数据 • 轮转综合数据 • 简化直接数据 • 连续数据
简单堆积文件 1月1日 1月2日 1月3日 …… …… 2月1日 2月2日 2月3日 …… …… 3月1日 3月2日 3月3日 …… ……
轮转综合文件 星期一 星期二 ……星期天 …… 第一周 第二周 …… 第五周 …… 一月 二月 …… 十二月 ……
简化直接文件 一月份顾客表 姓名 顾客号 地址 张平 C960100 北京 王珂 C960101 上海 刘辉 C960102 天津 李强 C960103 成都 . . . 数据库快照 操作性数据 生成简化直接文件
连续文件 1月份顾客表 姓名 顾客号 地址 张平 C020100 北京 王珂 C020101 上海 张顺 C020102 天津 李强 C020103 成都 1-2月份顾客表 姓名 顾客号 日期 地址 张平 C020100 1-2月 北京 王珂 C020101 1-2月 上海 张顺 C020103 1月 天津 张顺 C020103 2月 广州 李强 C020103 1-2月 成都 刘诚 C020105 2月 杭州 2月份顾客表 姓名 顾客号 地址 张平 C020100 北京 王珂 C020101 上海 张顺 C020101 广州 李强 C020103 成都 刘诚 C020105 杭州
维 维表 事实表 量 3.5 数据仓库的数据组织模式 • 星型模式(star schema) • 雪花模式(snowflake schema) • 混合模式 中间有一个单一表,沿半径向外连接到多个表 是星型模式的扩展,每一个点都沿半径向外连 接到多个点
产品表 星型模式 产品标识符 类标识符 大类标识符 产品名 类名 大类名 现货存量 日期表 销售表 日期标识符 日 月 季 年 产品标识符 商店标识符 日期标识符 单 价 销售金额 商店表 商店标识符 市名 省名 国名 洲名
季表 月表 日期表 销售表 雪花模式 日期标识符 日 月 产品标识符 商店标识符 日期标识符 单 价 销售金额 季 年 月 季 市表 商店表 国表 省表 商店标识符 市名 省名 国名 市名 省名 国名 洲名 市名 大类表 类表 产品表 产品标识符 类标识符 产品名 现货存量 大类标识符 大类名 类标识符 大类标识符 类名
3.6 数据追加 数据仓库的数据初装完成后,再向数据仓库输入数据的过程。 • 时标方法 对新插入或更新的数据记录,加入更新时的时标,扫描整个数据库。 • DELTA文件 由应用生成的,记录了应用所改变的所有内容。DELTA文件的应用并不普遍。 • 前后映象文件对比 占用大量资源。 • 日志文件 是DB的固有机制,不会影响到OLTP的性能。数据冗余。
4、数据集市 • 数据集市(Data Mart)——具有特定应用的数据仓库,主要针对某个具有战略意义的应用或者具体部门级的应用,支持用户利用已有的数据获得重要的竞争优势或者找到进入新市场的具体解决方案。 人力资源数据集市 财务数据集市 销售数据集市 市场数据集市等
4、数据集市 • 独立的数据集市(Independent Data Mart),数据直接来源于数据源。 • 从属的数据集市(Dependeant Data Mart),数据来源于中央的数据仓库。
数据源 数据源 数据源 数据源 中央数据仓库 独立数据集市 从属数据集市 分析工具 分析工具 分析工具 分析工具 分析工具 两种数据集市
5、数据仓库的应用 • 在证券业的应用:可处理客户分析、帐户分析、证券交易数据分析、非资金交易分析等多个业界关心的主题,为客户提供针对其个人习惯、投资组合的投资建议,从而真正作到对客户的贴心服务。 • 在银行领域的应用:防范银行的经营风险、实现科学管理以及进行决策 . • 在税务领域的应用:可以解决三个方面的问题:一是查出应税未报者和瞒税漏税者,并对其进行跟踪;二是对不同行业、产品和市场中纳税人的行为特性进行描述,找出普遍规律,谋求因势利导的税务征稽策略;三是对不同行业、产品和市场应收税款进行预测,制定最有效的征收计划。 • 在保险业的应用:满足保险行业日益增长的各种查询、统计、报表以及分析的需求,提高防范和化解经营风险的能力,有效利用这些数据来实现经营目标,预测保险业的发展趋势,甚至利用这些数据来设计保险企业的发展宏图,在激烈的竞争中赢得先机. • 在客户服务及营销方面的应用:CRM • 在保健领域的应用:揭示出如何以较低费用获取较高质量的治疗策略趋势和模式.
数 据 仓 库 设 计 1、系统设计的差异 2、设计分析方法 3、提高数据仓库的性能 4、数据仓库设计步骤 5、数据仓库开发成功的关键
2、设计分析方法------SDLC与CLDS • SDLC——操作型环境中,业务过程和规则比较规范和固定。系统设计人员能够清晰地了解应用的需求和数据流程,系统的设计一般采取系统生命周期法 (Systems Development Life Cycle) 。 • CLDS——分析型环境中,DSS分析对决策分析的需求不能预先作出规范说明,只能给设计人员一个抽象模糊的描述。设计人员必须在与用户不断的交流中,将系统需求逐步明确与完善。为了强调这种开发的不确定型,将此设计方法定名为CLDS方法(与SDLC相反)。
外部数据 DB DB 应用C 应用1 应用B 数据仓库建模 收集应用需求 数据获取与集成 分析应用需求 DW 构建数据仓库 DB 构建数据库 DSS应用编程 应用编程 系统测试 系统测试 “数据驱动” 理解需求 系统实施 SDLC方法 CLDS方法
“数据驱动”的系统设计思路 • 识别出当前系统设计与已做工作的共同性; ——出发点 • 从已有数据库系统出发,按照分析领域对数据及数据之间的联系重新考察,组织数据仓库中的主题; • 利用数据模型有效识别原有数据库中的数据和数据仓库中主题的数据的共同性。 ——中心
用自顶向下的方法构建数据仓库 企业数据仓库 • 建造企业数据仓库 • 建设中心数据模型 • 一次性的完成数据的重构工作 • 最小化数据冗余度和不一致性 • 存储详细的历史数据 • 从企业数据仓库中建造数据集市 • 得到大部分的集成数据 • 直接依赖于数据仓库的可用性 外部数据 操作数据 问题 投资效益的时间? • 建设中心数据模型的必要性和可能性? 初始费用 ? 数据集市 数据集市
用自底向上的方法构建数据仓库 操作数据 (全局) & 外部数据 操作数据 (局部) • 建立部门数据集市 • 限制在一个主题区域 • 快速投资收益 • 区域自治 – 设计的可伸缩性强 • 对相关部门的应用容易复制 • 对每个数据集市需要数据重构 • 存在一定的冗余及不一直性 • 逐步扩展到企业数据仓库 (EDW) • 把建造EDW作为一个长期的目标 操作数据 (局部) 问题: 数据集市的数据都是可用的吗? 能生成数据模型吗? 如何解决不一致性? 数据集市 数据集市 企业数据仓库
数据驱动系统设计方法的中心——数据模型 操作型数据库设计 数据仓库设计 数据仓库 数据库 数据模型 操作型数据库 应用开发与设计 DSS应用 开发与设计
数据仓库设计的三级数据模型 数据模型——对现实世界进行抽象的工具。 • 概念模型现实世界到机器世界的中间层次——信息世界E-R法(实体-联系法) • 逻辑模型关系模型 • 物理模型逻辑模型在数据仓库中的实现。物理存取方式、数据存储结构、数据存放位置以及存储分配等。
3、提高数据仓库的性能 提高系统的物理I/O性能 • 粒度划分——细节级、轻度综合级、高度综合级 • 数据分割——分割的标准:时间、业务领域、地理分布 • 物理设计中的其他问题—表合并—引入冗余—建立广义索引—建立数据序列—表的物理分割—生成导出数据
粒度划分 • 粒度划分的决定性因素是表的总行数 数据存取是通过存取索引来实现的,索引是对应表的行来组织的。因此与表的数据量无关。 • 估算数据仓库中数据的行数对每一已知表统计一年内数据行数的最大行数和最小行数; 统计五年内数据行数的最大行数和最小行数。 • 根据估算出的数据行,决定是否要划分粒度
表合并 • 当查询涉及到分散在几个物理块的多个表的数据,表的存取和连接操作会影响系统的性能。 • 为了节省I/O开销,可以把这些表的数据混合存放在一起。 • 表的合并只是物理上的合并,并非逻辑上的合并
学生选课表SC 学号 S# 课程号 C# 成绩 G# 学生表C S1 C1 A 学号 S# 姓名 N 系别 D S1 C3 B S1 C4 A S1 A CS S2 C1 B S2 B MA S2 C4 B S3 C EN S3 C1 B S3 C2 C 物理存储块 S1A S1C1A SAC3B S1C4A S2B S2C1B S2C4B S3C S3C1B S3C2C
引入冗余 • 一些表的某些属性经常会被使用到,且不常更新,就可以将这些属性复制到多个表中,从而减少处理时被存取的表的个数。 • 商品固定信息表(商品号、商品名、类别…)商品销售表(商品名、销售量、销售日期…)商品销售表(商品名、商品名、类别、销售量、销售日期…) • 处理最值问题的方法——广义索引。这个月销售最差的十种商品是什么? • 从操作型数据库抽取数据并装载到数据仓库的同时,根据用户需要建立广义索引。 建立广义索引
1 1 2 3 3 6 6 4 2 5 5 4 7 物理块1 7 物理块1 物理块2 物理块3 物理块2 数据序列
表的物理分割 • “数据分割”——表的逻辑分割。将一个表按一定的分割标准分成两个或多个表。 • 表的物理分割依据数据的存取频率和数据的稳定性来进行;将一张表按照各属性被存取的频率分成两个或多个表。 生成导出数据 • 事先在原始数据的基础上进行总结或计算,生成导出数据。——减少了I/O的次数,免去计算和汇总的步骤;——建立了公共数据源,避免了不同用户进行重复计算可能产生的偏差。