商业智能 (BI)
商业智能那就是帮你把一个数据转化成具有商业价值的,而且可以获取的信息和知识,同时在最恰当的时候,通过某种形式吧信息转递给需要的人。
商业智能的实施步骤:
- 定义需求
- 数据仓库模型
- 数据抽取、清洗、转换、加载(ETL)
- 建立商业智能分析报表
I. 数据仓库
数据仓库的开发以完全不同于开发生命周期进行,有时这种周期称为CLDS. 与SDLC完全相反。一个公司要想成功的重建生产系统和休整遗留系统,最重要的步骤是首先建立数据仓库环境。
数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用户支持管理决策。
面向主题的例子:
保险公司
操作型数据库 数据仓库
汽车 顾客
人寿 保险单
健康 保险费
意外伤亡 索赔
集成在数据仓库中是最重要的。
集成主要有两种形式:
1. 数据的集成
多条信息中的零散信息集成起来。
2. 编码的集成
比如说,在车险部门顾客的性别是用(m、f)表示的,而人寿部门应用系统中是用(男女)表示的,比如还有用(xy)表示。当进入数据仓库前要进行统一的编码。还比如说单位有的系统用cm,有的用英寸,有的用m. 这是属性度量单位,也需要进行统一。
稳定性: 数据仓库数据的操作一般是加载和查询、分析,一般不进行任何修改操作,当超过一定期限之后才会被删除。
随时间变化: 数据仓库的数据仅仅是一系列在某时刻生成的复制的快照。这一系列快照使数据库保留了活动和时间的历史记录。 数据仓库在嵌入的事件可以采用多种形式,如为每个记录加时间锉,为整个数据库加时间戳。
数据仓库与数据库生产系统的区别:
数据库生产系统 数据仓库决策系统
面向应用,事务处理 面向主题,分析型处理数据
实时性高 实时性要求不高
数据检索量小 数据检索量大
只存储当前数据 存储大量的历史数据和当前数据
访问频率高 访问频率中、低
相应时间在1S一下 相应时间几秒或者更长
用户数量很大 用户数量相对较小
1.1 数据仓库模型设计
1) 概念模型
2) 逻辑模型
3) 物理模型
数据仓库的开发过程主要有几个方面:规划分析阶段、设计实现阶段、使用维护阶段。
数据源分析:数据源是数据仓库系统所有信息的源头,主要是操作型业务应用系统存放的数据集合。
数据源的分析的过程分为范围分析、格式分析、更新方式分析、质量分析4个方面。
范围分析:是指分析数据的范围。用户需要确定数据仓库系统需要数据源中的哪些原始数据。
格式分析:是指对原始数据在数据库中的物理存储方式进行分析。包括存储类型、存储长度、数据精度等。
更新方式分析:是指对原始数据在应用系统中的更新方式、更是频率、更新内容进行分析判断。
质量分析:是指分析业务数据的质量,主要是数据的完整性、准确性、一致性。通常这也是数据源分析中最重要和工作量最多的部分。
1.2 数据集市
1) 独立型数据集市
2) 从属型数据集市
一般不推荐独立型的数据集市,这样可能会导致数据不一致,同时也会增加多个额外的进程。数据集市的数据一般从数据仓库中转换、汇总计算后取的,直接支撑应用需求。
数据仓库的实施步骤:
1) 需求分析
2) 数据仓库的逻辑分析
数据仓库逻辑上可以分为操作型数据库、数据仓库层、数据集市层、数据分析应用层和报表层。
1.3 数据仓库的作用
数据仓库的主要作用有3个方面:
1) 利用这些最宝贵的业务数据做出最明智的商业决策。
2) 数据仓库支持多维分析。
3) 数据仓库是数据挖掘技术的关键和基础。
1.4 数据仓库建设的意义
1) 是企业的高层领导能够从全局角度出发,推动企业数据的统一规划,便于业务人员对企业数据的分析与理解。
2) 可以形成企业的概念模型,帮助企业人员更好的理解业务的核心概念和业务之间的关系。
3) 帮助设计人员制定出更加合理的数据架构和统一的数据分布图。
4) 可以明确各个业务部门的关系和职责。
5) 形成有效的数据管理体系。
6) 为业务人员提供各种报表查询功能。
II. 元数据
2.1 元数据的定义
在数据仓库系统的建立、维护、管理和使用过程中,用来描述实际数据的信息,是关于数据的数据。
数据仓库在建设过程中产生的数据源定义、转换规则的定义、目标库的定义都存储在元数据库中。还支持一下几种功能:
1) 描述数据仓库系统存在哪些数据。
2) 描述哪些数据是在数据仓库系统中产生的。
3) 描述哪些数据将要抽取到数据仓库系统中。
4) 评估数据质量的好坏。
5) 记录数据抽取工作的执行情况。
2.2 元数据的类型
元数据主要包括技术元数据和业务元数据
技术元数据 是存储关于商业智能系统技术细节的数据,是用于开发和管理商业智能系统使用的数据。它主要包括对数据源、数据转换、抽取过程、数据加载策略以及对目标数据库的定义等内容;还包括数据仓库使用的模式、视图、维度、层次结构、类别和属性的定义。
业务元数据 从业务角度描述了商业智能系统中的数据,是介于使用者和真实系统之间的语义层。
元数据的主要作用:便于商业智能系统的集成和可重用,保证数据仓库的数据质量和可维护性,帮助业务人员和技术人员更好的理解当前业务和系统数据,提高商业智能系统的管理效率。
2.3 元数据的作用
1) 帮助用户理解数据仓库系统中的数据。
2) 用户数据仓库系统的集成。
3) 保证数据的质量以及提供数据仓库系统的灵活性。
III. ODS系统
ODS的概念:是一个面向主题的、集成的、可变的、反应当前细节的数据集合。为企业决策者提供当前细节性的数据,通过作为数据仓库的过度阶段。
ODS具有以下的特点:
1) 数据是不断更新和易丢失的,当新的业务数据进入到ODS时,旧的数据会被新的数据覆盖或更新,一般不存储历史的数据,只反映当前实时性的信息。
2) ODS系统一般存储的都是细节性的信息,很少有汇总的数据。
3) ODS系统支持快读的数据更新操作,数据刷新频率很快。
4) ODS一般存储在关系型数据库中,通过各个业务系统的数据集成起来,组成企业的全局统一视图。
5) 用户可以频繁访问ODS系统,因为它是基于操作型应用。
ODS可以有两种形式:ODS数据缓冲区和ODS统一视图区
1) ODS数据缓冲区:它是业务数据流动过程的第一个存储区,实现了数据仓库从各个业务系统的数据源将数据抽取出来,并且转载到ODS数据缓冲区的过程,为之后的数据抽取、清洗、转换过程打下坚实的基础。
2) ODS统一信息试图区:是指有选择地集成各类业务源数据,对数据进行抽取、清洗、转换操作,以数据主题狱为数据集成的基础,对数据进行分类和组织,是用户能够通过统一信息视图去获得跟某个主题域相关的实时性数据。
ODS统一信息试图区的数据一般是从ODS数据缓冲区经过转换,抽取得到的。
IV. 数据迁移
数据迁移是商业智能的重点,ETL 是商业智能的核心和灵魂。主流的ETL工具有 PowerCenter 和DataStage等。
4.1 数据的ETL
ETL是数据抽取(Extract)、转换(Transform)、加载(Load)的简写,它的一般过程是将数据源抽取出来,中间经过数据的清洗、转换,最后加载到目标表中,它是构建数据仓库最重要的一步。
1) 数据抽取
数据抽取是元数据进入到数据仓库的第一步,是从源系统中获取业务数据的过程。数据抽取前需要清楚:数据源来自哪几个业务系统,各个业务系统的数据库管理系统分别是什么。
因为每个业务系统数据的质量不相同,所以数据抽取时需要考虑很多的因素(抽取时间,收取方式,抽取周期等),据此对每个数据源建立不同的抽取程序。数据抽取通常有以下几种情况:
- 如果业务操作系统数据库和数据仓库质检的数据库管理系统完全相同,只需要建立相应的连接关系就可以使用ETL工具直接访问,或者调用相应的SQL语句或者存储过程。抽取之前必须确定业务系统数据库为ETL过程提供的数据库用户名、授权给该用户访问的表名称,对该用户授权的方式、数据抽取式相关的安全措施等内容。(直接抽取方式)
- 若数据仓库系统和业务操作型数据库的数据管理器不相同,比较简单的方式是使用ETL工具导出成文本文件或者Excel文件,然后再进行统一的数据抽取。此时需要考虑网络连接、数据库的分布等客观因素。(间接抽取方式或者异步ETL方式)
- 如果需要抽取的数据量非常的庞大,此时必须考虑增量抽取。
抽取的主要功能:
-
-
- 提供数据匹配器的功能:这样使得程序可以与多种业务数据源相连接。
- 提供标准化的功能:抽取最重要的一个功能就是对数据类型的标准化,将业务数据和数据仓库中的数据类型统一。
- 提供批处理的服务。
- 提供过滤的功能。
-
2) 数据清洗*
清洗是源数据进入到数据仓库的第二步。数据清洗就是选择出有缺陷的数据,然后再将他们正确化和规范化,从而保证源数据的数据质量符合数据仓库的要求,同时保证数据的一致性。
清洗的主要功能:
-
-
- 数据修正:使用固定算法或者相应的数据源检查程序区验证信息是否准确。
- 数据标准化功能:将业务数据源的数据标准化,以满足数据仓库中的数据一致的要求。
- 匹配和合并功能:对抽取出来的数据进行重复验证,然后对重复数据进行单独合并。
-
3) 数据转换
数据转换的含义是将业务系统里的各种源数据,根据数据仓库模型的需求,通过自定义的转换脚本或者其他的一些计算方法,将源数据转换成符合数据仓库要求的数据。
数据转换是ETL过程中复杂度最高的过程,包括对数据不一致性的转换,业务指标的计算和某些数据的汇总,为决策系统提供数据支持。
数据转换过程中可能包含几个方面:
- 对空值进行处理:在进行加载是需要将空值替换成某一数据或者直接进行加载。
- 对数据格式规范化:例如,统一将数值型转化为字符型。
- 根据业务需求进行字段的拆分和合并。
- 对缺失数据的替换。
- 根据业务规则对数据进行过滤。
- 根据编码表进行数据唯一性的转换。
数据转换的功能:
-
-
- 对数据进行计算:根据业务需求的特点对业务源数据进行相关的计算,以满足数据仓库的要求。
- 对数据进行放大:根据实际的业务需求,为数据调加额外的信息,从而保证数据仓库的一致性和正确性。
-
4) 数据加载
这是ETL的最后一步。主要负责将数据加载到目标表中,这些目标表可能是事实表,也可能是维度表。此时需要保证加载工具必须有高效的性能去完成数据加载,同时还需要考虑加载的时间周期和数据加载的策略。
ETL的加载方法:
1. 以时间戳作为加载条件
利用时间戳的方式对目标表进行数据加载是相对简单的一种方法。这种时间戳作为数据加载条件的优点是使ETL设计简单清晰,抽取的效率相对较高,并且可以实现ETL数据加载的需求,缺点是需要对业务数据源的时间戳进行维护。
2. 利用源表的日志信息对目标表进行加载
在业务系统中为源表中的数据增加、删除、修改时,及时更新该源表的日志表。优点是不需要更改数据源表结构和数据,降低了数据加载的风险。缺点是需要维护日志表数据,增加了系统的开销。
3. 进行全表对比的方式进行数据的加载
对目标表的每一条数据进行比较,当目标表不存在该主键时,进行插入操作,如果该主键值已经存在,则需要对其余字段进行比较,如果有不相同的数值,则需要进行更新操作。优点:安全性高。缺点:流程较为复杂,一般抽取的效率较低。
4. 全表删除后再进行数据加载的方式
ETL是数据流动的过程,是从不同的数据源流向统一的目标数据库。ETL在数据仓库中具有以下的几个特点:
-
-
-
- 数据流动具有周期性。
- 因为数据仓库中的数据量巨大,一般采用成熟的ETL工具去完成抽取、转换、加载,以降低设计开发的和维护的复杂度,使设计开发人员有更多的时间去专注于业务转化规则。
- ETL的过程一般是批量的。
-
-
4.2 定义ETL的流程
1) 从源数据抽取到ODS数据缓冲区
ODS数据缓冲区是指数据临时存储区域,它基本上与源系统的数据结构保持一致。
2) 从ODS数据缓冲区到ODS统一信息视图区
一般来说是定时抽取的,除了第一次做全量抽取外,其余时间都是做增量抽取,可以按照某种
更新策略进行抽取。
3) 从ODS统一信息视图区抽取到数据仓库
数据仓库是根据业务需求,对企业所进行整合,同时又是存储历史数据的地方。
4) 从数据仓库抽取到数据集市
数据集市是针对某个主题域、部门或者是特定用户的数据集合。
ETL设计的规范要点:
- 在ETL设计之前,需要根据业务的需求确定所要分析的主题和数据结构。根据数据仓库的模型,考虑在ETL设计中是否增加预留字段和属性。
- 确定数据的粒度。
- ETL抽取周期的确定。
- 以增量抽取的方式作为ETL设计的重点,减少数据抽取的压力和抽取时间。
- 通常抽取和清洗可以分成很多步骤。
- 对异常情况进行处理。包括网络中断等情况进行处理,保证数据的正确性。
- 对ETL的运行管理和监控措施。
4.3 ETL的本质
用户应该理解ETL本质上就是数据从源到目标的过程。
大多数的ETL工具价格昂贵,宏观上一般都适合处理海量的数据,但是在微观上需要考虑ETL处理的不同情况。元数据是ETL过程的重要体现,藐视了数据源的属性、数据源到目标库的转换规则,数据抽取历史记录等。构建一个商业智能系统,设计开发人员应更多的在ETL开始之前先将所有的业务规则弄清楚。
影响ETL数据质量的关键因素:
1) 可能会有一部风数据因为客观或者人为的原因到时数据格式混乱。
2) 源系统设计存在不合理性。
3) 在开发过程中,因为开发人员的错误或者设计人员对业务规则描述的问题,导致数据质量出现问题。
保证数据质量的方法:
首先用户必须遵守数据仓库项目中的数据源的质量要求,对业务源数据进行仔细分析,以便对数据源的任何错误或不规范的地方有相应的处理方法,如对错误进行修改或者舍弃。
其次,在保证数据源的质量之后,在设计ETL过程中,对每一个步骤应该有一个衡量数据质量的方法,需要重视ETL的每一个过程。
最后,就是规范业务流程,保证ETL正确性,避免误删或者重复加载数据。
其中对质量的衡量有几种方式:
1) 定义的数据是否和实际值相同。
2) 指标数据是否符合业务规则。
3) 数据是否和业务源系统中的信息保持一致。
4) 数据时违背自然规律或者不符合常理。
V. 数据仓库系统应用
5.1 商业智能项目的流程

5.2 利用ETL构建企业级数据仓库
1) 在构建数据仓库的时候,通常的做法是将业务系统部署在一台服务器,而数据仓库部署在另一台服务器中。
2) 构建企业级数据仓库需要充分发挥时间戳的作用。
3) 在构建企业数据仓库时,可以使用ETL过程中产生的日志信息区查看数据处理的情况。
5.2.1 生命周期模型的选择
为了达到数据仓库项目质量管理的要求,可以选择合适的模型建立数据仓库项目的生命周期。
1) 使用瀑布模型
条件:
- 从用户的角度来说,他们已经完全理解项目的需求,并且有现成的文档作为支持,同时用户希望用新系统替代旧的系统,并且项目工期相对紧迫。
- 从项目开发人员的角度来说,项目分工明确,资源充分,系统可以被划分成相对独立的模块,比较适合工作任务的分配。
2) 使用原型模型
用户对项目需求的理解比较模糊。
5.2.2 数据仓库粒度的划分
数据仓库粒度的划分是设计的重要内容,因为它直接影响了数据仓库查询的效率、查询的灵活性和数据仓库数据量的大小。如果数据仓库的粒度级别越低,则它的细节程度越高;反之,则相反。
在数据仓库设计过过程中,应该慎重考虑粒度的问题,既要满足所有的查询需求,也需要考虑查询的效率、存储空间等问题。
5.3 Infromatica
5.3.1 Infromatica使用流程

5.3.2 Infromatica PowerCenter工具概况
主要有以下几部分组成:
1) Administration Console(管理控制台): 主要负责管理Informatica服务、目录、域、节点、日志、账户等信息,基于B/S结构。
2) Repository Manager: 主要用来进行资源库的管理、安全性的管理等。
3) PowerCenter Designer: 用来进行设计ETL开发的工具,包括数据源、目标数据库、映射方法等的定义及使用。
4) Workflow Manager: 主要用来进行工作流程的设计。
5) Workflow Monitor: 用来监控、管理工作流程及任务,记录回话、工作流程日志等信息。
浙公网安备 33010602011771号