• 1. 数据仓库、ETL入门培训---梁东旭
  • 2. 数据仓库 数据集市 ETL 项目scjd内容提要
  • 3. 引言   经过多年的计算机应用和市场积累,许多企业保存了大量原始数据和各种业务数据, 它是企业生产经营活动的真实记录,并且这些数据以几何的方式增长 由于缺乏集中存储和管理,这些数据不能为本企业加以利用, 不能进行有效的统计、分析及评估,无法将这些数据转换成企业有用的信息
  • 4. 如何在堆积如山的企业交易数据中发现具有商业价值的闪光点? 如何使您的企业或组织在激烈的市场竞争中保持对客户的吸引力? 如何预先发现和避免企业运作过程中不易察觉的商业风险?面临的挑战面临的挑战
  • 5. 什么是数据仓库?A data warehouse is a subject-oriented, integrated, nonvolatile, and time-variant collection of data in support of management’s decisions. 数据仓库之父——Bill Inmon
  • 6. 数据仓库是一个面向主题的、集成的、随时间变化的、信息相对稳定的数据集合,它用于对企业管理和决策提供支持。 数据仓库之父——Bill Inmon 数据仓库的概念
  • 7. 从数据库到数据仓库 由数据库(DB)发展到数据仓库(DW)主要有以下几点原因: 数据太多,信息贫乏(data rich,information poor):随着数据库技术的发展,企事业单位建立了大量的数据库,数据越来越多,而辅助决策信息却很贫乏,如何将大量的数据转化为辅助决策信息成为了研究的热点。 异构环境数据的转换与共享:由于各类数据库产品的增加,异构环境的数据随之增加,如何实现这些异构环境数据的转换和共享也成了研究的热点。 利用数据进行事务处理转变为利用数据支持决策:数据库用于事务处理,若要达到辅助决策,则需要更多的数据,例如:如何利用历史数据的分析来进行预测。对大量数据的综合得到宏观信息等均需要大量的数据。 就在数据仓库的概念提出后的几年时间内就得到了迅速的发展,各种各样的数据仓库产品也不断出现并陆续进入市场。 目前市场上主流的数据仓库产品有以下几种: (Business Objects、Oracle、IBM、Sybase、Informix、NCR、Microsoft、SAS、CA)。
  • 8. 数据出库的产品
  • 9. 数据仓库与数据库的区别1、数据库用于事务处理,而数据仓库则用于决策分析 2、数据库保持事务处理的当前状态,而数据仓库既保存过去的数据也保存当前的数据。 3、数据仓库的数据是大量数据库的集成 4、对数据库的操作比较明确,操作数据量少;而对数据仓库的操作不明确,操作数据量大。
  • 10. 数据库与数据仓库的详细对比数据库数据仓库数据库数据仓库面向应用面向主题一个操作存取一个记录一个操作存取一个集合数据是详细的数据是综合或提炼的数据非冗余数据时常冗余保存当前数据保存过去和现在的数据操作频繁相对不频繁数据可更新数据几乎不更新事务处理需要当前数据决策分析需要过去和现在的数据重复地操作数据启发式地操作数据很少有复杂计算很多复杂的计算操作需求事先可知操作需求临时决定支持事务处理支持决策分析
  • 11. 从OLTP到OLAP On-Line Transaction Processing 联机事务处理系统(OLTP) 也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以即时地处理输入的数据,及时地回答。也称为实时系统(Real time System)。衡量联机事务处理系统的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即用户在终端上送入数据之后,到计算机对这个请求给出答复所需要的时间。   OLTP 数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务。 定义 On-Line Analysis Processing 联机分析处理系统(OLAP) 联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库复杂查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求,因此Codd提出了多维数据库和多维分析的概念即OLAP。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果,OLAP的技术核心就是“维度”这个概念。定义
  • 12. 数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的《建立数据仓库》一书中所提出的定义被广泛接受,数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。 数据仓库是一个过程而不是一个项目;数据仓库是一个环境,而不是一件产品。数据仓库提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效的把操作形数据集成到统一的环境中以提供决策型数据访问,的各种技术和模块的总称。所做的一切都是为了让用户更快更方便查询所需要的信息,提供决策支持。
  • 13. subject-oriented 主题:是指用户使用数据仓库进行决策时所关心的重点方面,如收入、客户、销售渠道等 所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。
  • 14. integrated集成:是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总,因此数据仓库中的信息是关于整个企业的一致的全局信息。
  • 15. nonvolatile相对稳定的是指一旦数据载入数据仓库以后,一般很少进行修改,更多的是对信息进行访问查询操作。
  • 16. time-variant反映历史变化是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时刻到当前各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
  • 17. 数据仓库的数据量很大:通常数据仓库的数据量为10GB级,相当于一般数据库(100M左右)的100倍,而且大型的数据仓库更可以达到TB级的数据量。 数据仓库中数据量的比重是:索引和综合数据占2/3以上,而原始数据则占不到1/3,这和数据库正好形成了鲜明的对比。 数据仓库软硬件要求较高:既需要一个巨大的硬件平台又需要一个并行的数据库系统。 其他特点:
  • 18. 粒度 是指数据仓库的数据单位中保存数据的细化或综合程度的级别 粒度级越小,细节程度越高,综合程度越低,回答查询的种类越多 粒度影响数据仓库中数据量的大小 粒度问题是设计数据仓库的一个重要方面
  • 19. (本页无文本内容)
  • 20. 粒度的选择双重粒度: 大多数组织的最佳解决方法就是采用多重粒度级的形式 短期储存的低粒度(真实档案),满足细节查询 具有综合的高粒度(轻度综合),做分析,可以满足综合查询如何权衡?
  • 21. 数据仓库数据库 数据抽取工具 元数据 访问工具 数据集市(Data Marts) 数据仓库 - 组成
  • 22. 数据仓库的数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。 数据仓库数据库
  • 23. 数据抽取工具把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。 数据抽取工具
  • 24. 元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。 技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。 商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表; 元数据为访问数据仓库提供了一个信息目录,这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。 元数据
  • 25. 为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;经理信息系统(EIS)工具;联机分析处理(OLAP)工具;数据挖掘工具。 访问工具
  • 26. 为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。 数据仓库管理:安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。 信息发布系统:把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。 数据集市(Data Marts)
  • 27. IBM数据仓库解决方案产品组成
  • 28. 数据集市是数据仓库的一部分 有关决策支持型数据库的数据集市是面向企业中的某个部门或是项目小组的。 一些专家顾问将数据集市的建造描述为建立数据仓库全过程中的一步。首先,一个储存企业全部信息的数据仓库被创建,其中,数据均具备有组织的、一致的、不变的格式。数据集市随后被创立,其目的是为不同部门提供他们所需要的那部分信息。数据仓库聚集了所有详细的信息,而数据集市中的数据则是针对用户们的特定需求总结而出的。数据仓库和数据集市
  • 29. 而另外一些专家则认为数据集市的建立并不需要首先建立一个数据仓库。在这个模型中,数据直接由事务型数据库转入数据集市中。一个公司可能建立有多个数据集市,而彼此之间毫无联系。 这种不在建立数据仓库的基础上创建数据集市的方式会更便宜、更快速,因为它的规模更加易于管理。 第二种观点的缺陷在于无法实现最初创建数据仓库的最主要的目的——将企业所有的数据统一为一致的格式。现有的事务处理系统的数据往往是不一致、冗余的。如果首先建立起一个全公司范围的数据仓库,组织就能够获得一个统一关于企业的活动和客户的知识库。如果先建立起一个个独立的数据集市,那么数据仓库的诸多优势都能够得以实现,但是企业远远无法做到对数据的一致的储存。 数据仓库和数据集市
  • 30. 数据仓库与数据集市的区别
  • 31. 数据集市也叫数据市场,是一个从操作的数据和其他的为某个特殊的专业人员团体服务的数据源中收集数据的仓库。从范围上来说,数据是从企业范围的数据库、数据仓库,或者是更加专业的数据仓库中抽取出来的。数据中心的重点就在于它迎合了专业用户群体的特殊需求,在分析、内容、表现,以及易用方面。数据中心的用户希望数据是由他们熟悉的术语表现的。   数据仓库是一个集成的、面向主题的数据集合,设计的目的是支持DSS(决策支持系统)功能。在数据仓库里,每个数据单元都和特定的时间相关。数据仓库包括原子级别的数据和轻度汇总的数据,是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合,用以支持经营管理中的决策制定过程。   那么数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。为了解决灵活性和性能之间的矛盾,数据集市就是数据仓库体系结构中增加的一种小型的部门或工作组级别的数据仓库。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。 数据集市(Data Mart)
  • 32. 数据集市的特征包括规模小 有特定的应用 面向部门 由业务部门定义、设计和开发 业务部门管理和维护 能快速实现 购买较便宜 投资快速回收 工具集的紧密集成 提供更详细的、预先存在的、数据仓库的摘要子集 可升级到完整的数据仓库 数据集市的特征
  • 33. 事实表 维表 详细数据 汇总数据 数据集市中数据的结构
  • 34. 数据仓库的真正关键是数据存储和管理。数据仓库一般遇到的几个问题: 大数据量的存储和管理 并行处理 针对决策支持查询的优化 支持多维分析的查询方式数据仓库-存储和管理
  • 35. 数据仓库的数据来源哪里? 数据仓库的数据怎么样来的?--数据抽取工具 数据仓库的数据来源
  • 36. 总述: 将原来业务系统的数据经过抽取、转换、加载到数据仓库所在的中心存储库的过程称为ETL (Extraction, Transformation and Loading)过程,制定这个过程的策略称之为ETL策略,而完成ETL过程的工具则是ETL工具。相对于数据仓库中的表而言,业务系统数据库中的表称为源表,业务系统数据库称为源数据库,数据仓库中所有的数据都来自于业务系统数据库。在打造一个数据仓库的过程中,ETL的实施是一项繁琐、冗长而艰巨的任务,因为它关系到数据仓库中数据的质量问题,如果导入的数据漏洞百出,对决策者来说无疑是个噩耗。ETL 概念
  • 37. ETL的作用ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础  ETL是数据仓库中的非常重要的一环。它是承前启后的必要的一步。相对于关系数据库,数据仓库技术没有严格的数学理论基础,它更面向实际工程应用。所以从工程应用的角度来考虑,按着物理数据模型的要求加载数据并对数据进行一些系列处理,处理过程与经验直接相关,同时这部分的工作直接关系数据仓库中数据的质量,从而影响到联机分析处理和数据挖掘的结果的质量
  • 38. 提高数据质量数据清洁 补充缺失值,平滑噪声数据,识别与删除异常数据以及有效解决数据的一致性问题 数据集成 多个数据库、数据立方体或文件的数据整合 数据转换 实现数据的归一化 数据简化 在不影响分析结果的前提下,缩减数据量 数据离散化 对于数值型数据可通过取样实现离散化以降低数据量
  • 39. ETL功能-搭建数据仓库现有数据的特点 分散的 非整合的 难以访问的 多种的数据源 多种的平台 低劣的数据质量 冗余的数据 难于理解 不能分析 数据量很大,甚至是海量的
  • 40. ETL功能-搭建数据仓库本质上,ETL过程完成了将“生数据”(Raw Data)转化为“信息”(Information)的过程,即传递有用的数据至数据仓库(中央数据库)中; -首先是从各种操作型数据源中抽取“有用”的数据; -然后,将操作型数据转换成“具有战略意义”的信息; -最后,将“具有战略意义”的信息装载到数据仓库中,以备决策支持使用。
  • 41. ETL的目标提高数据质量 提供一种统一的、跨平台的存取数据方法 将数据“信息化”,为企业决策者的经营分析提供信息来源
  • 42. ETL的结构体系
  • 43. ETL的流程抽取 转换/清洁 装载 数据仓库 临时存储区 数据源 抽取转换 /清洁装载All driven by metadata
  • 44. ETL的流程(1)预处理。这是正式开始作业之前的准备工作,包括清空工作区、检查过渡/准备区。如果需要直接访问操作型数据源系统时,要检查远程数据库服务器状态,并核对目标区数据加载状态,以核算出加载作业的参数,如加载数据的时间间隔和范围(是24小时的数据,还是前3天的数据)。 (2)启动数据加载的批作业。 (3)因为维度表有事实表所参照的主键,所以要先完成对维表的加载,生成维表主键,并作为以后加载事实表所需要的外键。在加载维表时,有时要处理好缓慢变化的维的问题,并可能涉及到版本号的处理问题
  • 45. ETL的流程(4)事实表加载完成后,再对总计方阵体系进行刷新,以保障总计方阵与它的基础数据同步。 (5)应设计具有完善的出错处理机制和作业控制日志系统,以监测和协调整个加载的过程。 (6)应设计具有完善的出错处理机制和作业控制日志系统,以监测和协调整个加载的过程。
  • 46. ETL流程之数据抽取 数据提取是ETL处理的首要部分,解决的主要问题是确定需要提取的数据,并确定适当的提取方式。 指从一个或多个源数据库中通过记录选取进行数据复制的过程。抽取过程将记录写入ODS(Operational Data Store)或者临时区(Staging Area)以备进一步处理。
  • 47. ETL流程之数据抽取预抽取 识别数据(Formal;Informal) 元数据(Metadata) 元数据定义(实体、记录、数据项、模型、主键、外键) 源应用系统(操作系统、DBMS、位置) 更新的频率 数据(交易)量 源数据的拥有者(IS管理员、经营部门主管) 业务含义描述 可靠性、完整性评估(通过浏览数据)
  • 48. ETL流程之数据抽取预抽取 识别数据(Formal;Informal) 元数据(Metadata) 元数据定义(实体、记录、数据项、模型、主键、外键) 源应用系统(操作系统、DBMS、位置) 更新的频率 数据(交易)量 源数据的拥有者(IS管理员、经营部门主管) 业务含义描述 可靠性、完整性评估(通过浏览数据)
  • 49. ETL流程之数据抽取预抽取(续) 选择数据源(原则) 可访问性 操作型活动的最近阶段 最接近真实的数据(不是派生的) 与新开发的OLTP系统一致 注意:任何没有被选中的数据源,应该记录原因 分析源数据 理解源系统的元数据(数据字典) 业务规则获取( Business Rule Capture )
  • 50. 数据抽取的实现在多数情况下,数据源系统与数据仓库并不处于同一个数据服务器中,它们往往是独立的,并处在远程系统中。数据的提取往往是以远程的、分布式的提取模式进行,并涉及各种各样的方法和手段,其中包括: (1)应用SQL*Plus提取到文本文件; (2)应用OCI or Pro*C程序,或者Oracle UTIL_FILE提取到文本文件; (3)应用Oracle Export Utility实用程序提取到Oracle Export Files文件;
  • 51. 数据抽取的实现(4)远程数据复制 (5)信息流
  • 52. ETL流程-数据清洁 来自操作型数据源的数据如果含有不洁的成分和不规范的格式,将对数据仓库的建立维护,特别是对联机分析处理的使用,造成很多问题和麻烦。这时必须在ETL处理过程中加以解决,通常包括以下处理方法: a. 设计拼写检查、分类并与标准值表对照检查 b. 处理名字和地址 c.为名字和地址建立辅助表格或联机字典,据此进行检查修正 d.数据转换函数以及子程序库
  • 53. ETL流程-数据清洁 “脏”数据(Dirty Data) 数据不符合一致性 用数据库设计工具定义 数据库设计者不是很清楚DBMS 删除了“约束”,因为它们会降低操作性能 使用一些特定代码、标志或“哑元”(Dummy values) 多目标域(Fields)—某域依赖其他域,但不一致
  • 54. ETL流程-数据清洁 “脏”数据(Dirty Data) 数据不符合一致性 用数据库设计工具定义 数据库设计者不是很清楚DBMS 删除了“约束”,因为它们会降低操作性能 使用一些特定代码、标志或“哑元”(Dummy values) 多目标域(Fields)—某域依赖其他域,但不一致
  • 55. ETL流程-数据清洁数据清洁的过程 (1)预处理:对于大的数据加载文件(特别是新的文件和数据集体)进行预先诊断和检测,不能贸然加载。有时需要临时编写诊断小程序进行验证; (2)标准化处理:应用建于数据仓库内部的标准字典; (3)查重:应用各种数据查询手段,避免引入重复数据; (4)出错处理和修正:将出错的记录和数据写入到日志文件,留待进一步处理。
  • 56. ETL流程-数据装载装载过程 将转换/清洁后的数据装载到企业数据仓库中。 在完成数据提取和转换/清洁后,接下来是将数据加载到数据仓库中。在进行数据加载时,可供选用的实用程序和工具很多,可选择最基本的Import、SQL Loader 和 SQL语言进行必要的转换。 为了提高程序和实用过程的复用性,编制和设计数据转换的函数库/子程序库是十分必要的。
  • 57. ETL流程-数据装载装载过程 将转换/清洁后的数据装载到企业数据仓库中。 在完成数据提取和转换/清洁后,接下来是将数据加载到数据仓库中。在进行数据加载时,可供选用的实用程序和工具很多,可选择最基本的Import、SQL Loader 和 SQL语言进行必要的转换。 为了提高程序和实用过程的复用性,编制和设计数据转换的函数库/子程序库是十分必要的。
  • 58. ETL在技术上涉及到:增量、全量、定时、调度、监控等方面技术 增量数据:流水类数据、话单类数据的抽取 全量数据:用户信息类数据,状态会更新发生变化的数据 定时抽取:数据抽取一般在生产系统比较闲暇的时候进行,凌晨时候比较多,而且按照要分析数据的周期,还分为按日、按月数据 作业调度:由于涉及到的业务系统的业务量庞大,需要分批进行抽取,以及抽取数据后面的一系列出来过程 作业监控:对所有作业执行的监控ETL相关概念
  • 59. (本页无文本内容)
  • 60. ETL的工具协助完成ETL过程开发的工具称作ETL或ETLM工具。它们可以标准化ETL过程开发,使运行和正在进行的维护过程提高效率。 Design Studio(Sagent公司) Decision Stream(Cognos公司)
  • 61. 数据仓库应用现状 目前数据仓库在很多企业中的应用还是停留在完成 了报表的生成和日常事务的分析,并没有对数据 进行深人的挖掘,这样并不能给银行带来真正的 效益,也远远没有发挥出数据仓库的商业应用价值。 在对数据仓库的应用中还存在着一个问题, 由于业务系统平台不统一,依然有许多错综复杂的数据互不关联,导致数据仓库不能有效地发挥其作用。 另外,数据仓库的提出和应用通常都是技术 部门在其中扮演重要角色,业务部门参与的较少, 但实际上,没有业务部门与技术部门之间的很好 协调,数据仓库是不可能应用成功的。因为数据 仓库技术是管理科学、计算机科学、网络科学以及一系列分析手段的大融合。 在我国,由于现在对数据仓库的分析还缺乏经验。 数据仓库在使用时很重要的一个问题是如何建立模型,而这要求使用者对相关的业务非常熟悉并具有相应的 管理和分析能力,否则得出的结论很可能是就无 用的。
  • 62. 数据仓库发展方向 首先要统一信息系统的平台,采用统一的数据结构,在数据抽取方面,未来的技术发展将集中 在系统集成化方面。他将互连、转换、复制、调度、 监控纳入标准化的统一管理,使所有的数据都按相同的结构集中存放在一起,以适应数据仓库本 身或数据源可能的变化,使系统更便于管理和维 护。 其次,为了让电脑技术人员知道数据仓库可以“做什么”,业务人员知道具体的分析要“怎么做”,应将技术部门与相关的业务部门进行很好协调,充分发挥技术人员和业务人员的优势,根据具体情况选用合适的方法建立模 型。 最后,当数据模型建好以后,要使其发挥应有的作用,就应在其上建立相应的应用系统,包括客户关系管理系统、市场分析和风险控制系统等等。这就需要在数据仓库上进行数据挖掘,构建决策 支持系统(DSS),充分体现建设数据仓库的意义,从而最终为企业带来经济和社会效益。