论文部分内容阅读
摘要:在商业智能实施过程中,源数据的整合是关键的环节。本文就ETL过程和步骤进行讨论,并就如何实现ETL过程提供相应的实施策略。
关键字:BI;商业智能;ETL;数据仓库
1 引言
商业智能(BI)的关键是从许多来自不同的企业运作系统的数据中,提取出有用的数据,进行清理以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),即ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具、OLAP工具等对其进行分析和处理,最后将知识呈现给管理者,为管理者的决策过程提供支持。ETL在整个BI过程中起到承上启下的作用,ETL的成败将直接影响整个BI项目的成功与否。
2 ETL过程
ETL过程包括Extract(抽取)、Transform(转换)、Loading(装载)3个步骤:
(1) 抽取:数据抽取是捕获源数据的过程。主要是针对各个业务系统及不同地理位置的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定抽取的方法和方式。
(2) 转换:按照预先设计好的规则将抽取得来的数据进行转换、清洗,处理一些冗余、歧义、不完整、违反业务规则的数据,统一数据粒度,使本来异构的数据格式统一起来。
(3) 装载:将经过转换的数据按计划增量或全量装载到数据仓库里面。
3 ETL过程实施策略
目前市场上有很多比较成熟的实现ETL功能的工具,比如IBM的DATASTAGE,DATA MANAGER,Oracle 公司的 WarehouseBuild
er等,无论选择哪个ETL工具,实现ETL过程都必须要经历以下几个步骤,下面将讨论每一步骤的实施要点和策略。
(1) 根据业务的特点建立数据仓库模型:在各业务部门和高层领导的参与下,确定业务分析主题,建立分析模型。在设计过程中要考虑数据的粒度,仓库系统的数据容量以及仓库系统的可扩展性。数据仓库保留了来自于多个业务系统历年来的操作数据,因此数据量比较大,整个数据仓库的移动和改变将会比较复杂和费时,如果设计的容量不能满足业务的需要,会影响后期的实际应用。另外要考虑到业务的可扩展性,比如对制造业而言,新增工厂后,新工厂的数据能否在不改变现有仓库模型的情况下导入。
(2) ETL周期点的确定:在设计ETL时需要根据业务分析模型事先确定抽取的时间点,以尽量保证数据仓库包含完整的业务周期的数据,同时要能尽量避免业务数据的访问高峰期,以免影响业务系统的性能。对于跨国企业,还会考虑到时差的问题。
(3) 定义仓库源:仓库源是为数据仓库提供数据的数据库表或文件。由于仓库源数据库的多样性、数据传输条件不确定性等等因素,使得ETL在处理上即需要考虑业务数据处理性能的要求,还要考虑数据传递过程中如何解决这些多样性和不确定性。通常而言,对于外部不可控数据源,应尽量采用文件抽取的方式;而对于内部数据源,可使用数据库的联邦技术,提高主动性和灵活性,但如果网络不稳定可能会影响业务数据库的性能。另外,由于数据仓库数据量大的特点,通常不会采用数据库备份的方式备份数据,而是采用源文件备份的方式以达到历史数据的可恢复性,从这个角度出发,建议源数据使用文件抽取的方式。
(4) 定义仓库目标:仓库目标用于保存ETL后的数据的数据库表或文件,最终的仓库目标是数据仓库中的数据表。在定义仓库目标时,可考虑利用数据临时对象(如临时表、临时文件等)对业务数据进行预处理,保证集成与加载的高效性。对于事实表最好采用增量数据抽取和加载,以减少网络传输、数据库仓库和业务系统的处理负担。
(5) 数据转换和加载过程的设计:这是整个ETL过程的重点,是设计数据流和工作流程的过程。这里要考虑以下几点:
①数据源的质量:必须建立一个数据验证框架,验证数据文件的有效性(如果用文件获取方式),数据结构的正确性,数据内容的一致性,数据有没有缺失等。这个框架应该是能实时修改的,最好能提供一个界面以方便管理和监控。
②数据转换过程:包括空值的处理,数据格式的规范化,数据映射,数据粒度的转化,数据拆分和组合,数据检验等。
③数据加载:这里除了从性能角度考虑数据加载的方法外,还需要建立数据验证机制,比如输入和实际加载的记录数验证,异常错误处理和转移等。
(6) 安全性设计:ETL过程中定义了访问多个业务系统的连接,有些业务系统可能包括敏感数据,不希望其他人看到的,而仓库系统中用户访问目的不同,需要严格控制用户的权限;另外要考虑系统的可重用性,这涉及到元数据的备份和管理。
4 ETL过程的评价
一般从以下几方面来评价ETL过程的准确有效性:
(1) ETL的质量:ETL的质量问题具体表现为数据的正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。
(2) 稳定、可靠、高性能:仓库系统的实时性要求没有业务系统高,但是系统的可用性是评价BI系统的一个重要方面,这决定了业务人员和管理层能否及时准确地获得相关信息。
(3) 可扩展性:可以提供同各种异构数据系统的接口;系统功能改变时,应用程序很少改变便可适应变化等。
(4) 异常处理能力:异常情况下(如网络问题、数据库死锁等)的可恢复性和自我修复处理能力,以保证数据能被准确地加载到仓库中。
(5) 管理和调度的能力:由于ETL过程的重要性和复杂性,要求在管理和调度功能上都具备相应的功能。管理和调度的基本功能包括过程的备份与恢复、业务流程变化;数据抽取系统流程自动化,并有自动调度功能;支持时间触发方式、支持事件触发方式、支持命令行执行方式、日志及提醒功能、调度过程中能否执行其他任务等。
5 总结
ETL的本质是数据的流动和转换的过程,在整个BI实施过程中ETL是最繁琐、最重要的工作,它的质量直接影响到数据分析的准确性,是BI系统成功的关键。
参考文献
[1]尤玉林,张宪民.一种可靠的数据仓库中ETL策略与架构设计.计算机工程与应用.2004.
[2]Wayne Eckerson.“The ‘Soft Side' of Real-Time BI”.Published in the August 2004 issue of DM Review.
关键字:BI;商业智能;ETL;数据仓库
1 引言
商业智能(BI)的关键是从许多来自不同的企业运作系统的数据中,提取出有用的数据,进行清理以保证数据的正确性,然后经过抽取(Extraction)、转换(Transformation)和装载(Load),即ETL过程,合并到一个企业级的数据仓库里,从而得到企业数据的一个全局视图,在此基础上利用合适的查询和分析工具、数据挖掘工具、OLAP工具等对其进行分析和处理,最后将知识呈现给管理者,为管理者的决策过程提供支持。ETL在整个BI过程中起到承上启下的作用,ETL的成败将直接影响整个BI项目的成功与否。
2 ETL过程
ETL过程包括Extract(抽取)、Transform(转换)、Loading(装载)3个步骤:
(1) 抽取:数据抽取是捕获源数据的过程。主要是针对各个业务系统及不同地理位置的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定抽取的方法和方式。
(2) 转换:按照预先设计好的规则将抽取得来的数据进行转换、清洗,处理一些冗余、歧义、不完整、违反业务规则的数据,统一数据粒度,使本来异构的数据格式统一起来。
(3) 装载:将经过转换的数据按计划增量或全量装载到数据仓库里面。
3 ETL过程实施策略
目前市场上有很多比较成熟的实现ETL功能的工具,比如IBM的DATASTAGE,DATA MANAGER,Oracle 公司的 WarehouseBuild
er等,无论选择哪个ETL工具,实现ETL过程都必须要经历以下几个步骤,下面将讨论每一步骤的实施要点和策略。
(1) 根据业务的特点建立数据仓库模型:在各业务部门和高层领导的参与下,确定业务分析主题,建立分析模型。在设计过程中要考虑数据的粒度,仓库系统的数据容量以及仓库系统的可扩展性。数据仓库保留了来自于多个业务系统历年来的操作数据,因此数据量比较大,整个数据仓库的移动和改变将会比较复杂和费时,如果设计的容量不能满足业务的需要,会影响后期的实际应用。另外要考虑到业务的可扩展性,比如对制造业而言,新增工厂后,新工厂的数据能否在不改变现有仓库模型的情况下导入。
(2) ETL周期点的确定:在设计ETL时需要根据业务分析模型事先确定抽取的时间点,以尽量保证数据仓库包含完整的业务周期的数据,同时要能尽量避免业务数据的访问高峰期,以免影响业务系统的性能。对于跨国企业,还会考虑到时差的问题。
(3) 定义仓库源:仓库源是为数据仓库提供数据的数据库表或文件。由于仓库源数据库的多样性、数据传输条件不确定性等等因素,使得ETL在处理上即需要考虑业务数据处理性能的要求,还要考虑数据传递过程中如何解决这些多样性和不确定性。通常而言,对于外部不可控数据源,应尽量采用文件抽取的方式;而对于内部数据源,可使用数据库的联邦技术,提高主动性和灵活性,但如果网络不稳定可能会影响业务数据库的性能。另外,由于数据仓库数据量大的特点,通常不会采用数据库备份的方式备份数据,而是采用源文件备份的方式以达到历史数据的可恢复性,从这个角度出发,建议源数据使用文件抽取的方式。
(4) 定义仓库目标:仓库目标用于保存ETL后的数据的数据库表或文件,最终的仓库目标是数据仓库中的数据表。在定义仓库目标时,可考虑利用数据临时对象(如临时表、临时文件等)对业务数据进行预处理,保证集成与加载的高效性。对于事实表最好采用增量数据抽取和加载,以减少网络传输、数据库仓库和业务系统的处理负担。
(5) 数据转换和加载过程的设计:这是整个ETL过程的重点,是设计数据流和工作流程的过程。这里要考虑以下几点:
①数据源的质量:必须建立一个数据验证框架,验证数据文件的有效性(如果用文件获取方式),数据结构的正确性,数据内容的一致性,数据有没有缺失等。这个框架应该是能实时修改的,最好能提供一个界面以方便管理和监控。
②数据转换过程:包括空值的处理,数据格式的规范化,数据映射,数据粒度的转化,数据拆分和组合,数据检验等。
③数据加载:这里除了从性能角度考虑数据加载的方法外,还需要建立数据验证机制,比如输入和实际加载的记录数验证,异常错误处理和转移等。
(6) 安全性设计:ETL过程中定义了访问多个业务系统的连接,有些业务系统可能包括敏感数据,不希望其他人看到的,而仓库系统中用户访问目的不同,需要严格控制用户的权限;另外要考虑系统的可重用性,这涉及到元数据的备份和管理。
4 ETL过程的评价
一般从以下几方面来评价ETL过程的准确有效性:
(1) ETL的质量:ETL的质量问题具体表现为数据的正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性。
(2) 稳定、可靠、高性能:仓库系统的实时性要求没有业务系统高,但是系统的可用性是评价BI系统的一个重要方面,这决定了业务人员和管理层能否及时准确地获得相关信息。
(3) 可扩展性:可以提供同各种异构数据系统的接口;系统功能改变时,应用程序很少改变便可适应变化等。
(4) 异常处理能力:异常情况下(如网络问题、数据库死锁等)的可恢复性和自我修复处理能力,以保证数据能被准确地加载到仓库中。
(5) 管理和调度的能力:由于ETL过程的重要性和复杂性,要求在管理和调度功能上都具备相应的功能。管理和调度的基本功能包括过程的备份与恢复、业务流程变化;数据抽取系统流程自动化,并有自动调度功能;支持时间触发方式、支持事件触发方式、支持命令行执行方式、日志及提醒功能、调度过程中能否执行其他任务等。
5 总结
ETL的本质是数据的流动和转换的过程,在整个BI实施过程中ETL是最繁琐、最重要的工作,它的质量直接影响到数据分析的准确性,是BI系统成功的关键。
参考文献
[1]尤玉林,张宪民.一种可靠的数据仓库中ETL策略与架构设计.计算机工程与应用.2004.
[2]Wayne Eckerson.“The ‘Soft Side' of Real-Time BI”.Published in the August 2004 issue of DM Review.