基于风电数据仓库的ETL技术研究

  • 格式:pdf
  • 大小:256.41 KB
  • 文档页数:3

责任编辑:刘辉TEL/01 0-61 773233 

基于风电数据仓库的ETL技术研究 

张 宁 CEPE 

!叠 憨 

摘要:作为数据仓库的关键部件,支持数据抽取、转换和装载的ETL-T-具是一个必不可少的成功因素。以风电数据仓库为背景,介绍 

了数据仓库ETL的必要性、ETL流程,重点提出了一种ETL_T-具与自行编码相结合的ETL实现方法。针对风电海量数据的特点,通过优 

化过的ETL技术,大大提高了风电信 系统的运行效率。 

关键词:数据仓库;ETL;数据抽取;数据转换;数据装载 作者简介:张宁(1986一),女,山东莱芜人,中能电力科技开发有限公司,工程师。(北京100034) 

中图分类号:TM614 文献标识码:A 文章编号:1007—0079(2013)33—0229—02 

目前,风电行业信息化迅速发展,多种信息系统得到了开 

发和应用,如风电生产运行实时监测系统、风电场功率预测系 

统、风电机组故障诊断系统等,但它们都是针对某一特定应用 

用途的,数据单一,而且风电业务数据具有数据量庞大、数据格 

式复杂等特点,这些无疑限制了风电信息化中数据分析和决策 

支持的应用。而这时,数据仓库出现了,通过将来自各个数据平 

台的格式多样的数据进行抽取、转换和装载, ̄PETL过程,建成 

一个符合系统功能需要的相对统一集成的数据仓库应用体系, 

为各个风电业务信息系统提供高质量的数据分析和决策平台。 

ETL'性能的好坏对数据仓库乃至整个系统的运行和效果有着直 

接而巨大的影响。 

一、ETL技术简介 

数据ETL是由数据抽取(EXt ractiOn)、数据转换 

(Transformation)、数据装载(Loading)三部分组成,是构建数 

据仓库过程中必不可少也是相当重要的一个环节。_1] 

1.运用数据" ̄",YeETL技术的必要性 

数据仓库的建立是风电信息化系统实现的基础。在风电业 

务管理中,业务人员希望能有一个独立集成的数据环境容纳各 

种从外部不同的数据存储媒介或者外部文件中提取汇总的业务 

数据,但这些数据是大量的、分散的、冗余的,差异主要表现为 

以下几个方面: 

(1)数据所存储的数据环境不同。主要指运行同一个业务 

系统的不同主机所部署的操作系统不同,硬件平台不同,或者 

采用的业务数据库不同。体现在风电业务中,例如运行在不同 

地区的风电项目公司或者风电场的同一个信息系统,有的采用 

关系型数据库, ̄HSQL Server、Oracle、PI等,还有的仅使用了简 

单的文件型数据库, ̄NAecess、Foxpro等,这就造成了数据所在 

环境的差异。 (2)数据格式不同,即对于同一个数据对象,所采用的语 

义表达、命名方法、编码规范等方面,存在着差异或者冲突造成 

的不一致。 

这些问题加剧了待转移数据的复杂性,给风电信息化系统 

数据仓库的建立带来一定难度。而这时ETL过程在很大程度上 

可解决这一难题。数据ETL就是要解决源数据各方面的不一致 

性,从各种外部纷杂的风电业务系统中提取风电业务数据和基 

础数据,按照设计好的规则对这些数据进行必要的清理和转 换,完成二次数据的加载,从而形成一个清洁、一致的数据仓库 

环境。风电数据仓库建立完成之后,即可在这些加工好的数据 

基础上进行进一步的数据分析和挖掘工作。因此ETL不仅是数 

据仓库建立过程中极其必要的一部分,也是极其复杂的工作。『2 

2.ETL方法和流程 数据ETL的实现可以有多种不同方法,主要可以归纳为以下 

三种: 

(1)直接调用数据库自带的ETL模块。例 ̄IISQL ServeT、 

Oracle、OWB等数据库都有自带的方便操作的ETL32具,使用自 

带ETL32具可以避免大量的代码编写工作,快速建立起ETL工 

程,较为容易。但在风电业务这种海量实时运行数据的处理过 

程中,这种人工干预过多的方法,显然在灵活性方面缺少了优 

势,不能自动完成数据的抽取,效率较低。 

(2)白行编写代码完成ETL过程。这种从实际需求出发实 

现的ETL过程具有更强的灵活性。但同时这种自行编码的方式 

也相对更繁琐、复杂,花费开发人员更多的时间和精力,而且通 

用性不高。 

(3)上述两种方式相结合的方法。它综合了』人工和智能两 

种方法的优点,在满足实际需求的基础上,充分调用数据库系 

统自带的ETI|方法和过程,既具备灵活性,又极大提高了ETL的 

开发速度和使用效率。 

针对风电的业务特点——数据是海量的、实时更新的,更 

是分散的、异构的,本文采用第三种方法完成风电数据ETL过 

程,即在数据库自带的ETL32具基础上,通过自行编码,实现风 

电业务数据从各个数据源端抽取到数据准备区临时存放,在临 

时数据缓存中进行数据的清理和转换之后再装载进入目标数据 

仓库存储区的过程。具体的ETL实现流程如图1所示,其中风电 

、 r、 

: 蝎 l风电业务L【数据『= 、、 ——— /fCl 

文件数据 l j 

、、 ————/ \L 数据源/ 

图1 ETL流程图 

229 学术交流Exchange 

业务数据主要包括各风电机组机组实时运行数据,如风速、风 

向、有功功率、无功功率、发电机转速等,文件数据主要指风机 

基础数据,例如机型、机组容量等。 

二、ETL实现的关键技术 

1擞据抽取 

数据抽取是ETL过程的第一步,实现的是从不同类型数据 

源中将业务系统所需要的数据集中到一个临时数据准备区中的 

过程,从而为下一步的数据清洗和转换提供优质的数据基础。 

对于风电业务信息系统所涉及到的海量数据,由于之前介绍的 

数据的复杂性和异构性,需要针对不同的情况采用与之相应的 

数据抽取策略: 

(1)源数据库系统与数据准备区数据库系统相同时,可以 

采用简单的批量加载程序或者SOL语句、存储过程等将数据库 

简单地导入即可。 

(2)源数据库系统与数据准备区数据库系统不同时,开发 

人员可以自行编写程序,对于不同类型的源数据库建立特定的 

数据接口,实现与数据准备区的连接。用户通过在交互界面中 

选择相应的信息,调用程序中建立起来的不同类型数据库的具 

体实现类,完成连接配置,连接到源数据库中。完成数据库之间 

的连接之后,用户登录源数据库,选择所需要抽取的数据字段, 

然后选择目的数据库,提交信息即可完成所选数据的转移。 

(3)当数据源为文件型的数据时,例如风电场基础数据存 

放于风电信息系统内部的文件服务器中,可以利用数据库工具 

 ̄IlOracle的SQL*Loader,调用源数据文件和定义输入数据格式、 

输出表的控制文件,产生包含日志、坏数据、丢弃数据和所需数 

据的输出文件,从而完成数据的抽取。 

2.数据转换 

数据抽取过程之后,数据准备区中已经有了系统所需要的 

初步数据,但这时的数据只是相当于简单从源数据库“复制而 

来”,必须经过“二次加工”,即严格的数据清理转换过程才能 

转换成为系统最终需要的数据格式。数据清理主要是找出并且 

消除错误数据,也就是“脏数据”,得到处理后的“干净数据” 

之后,再经过数据转换过程,最终得到待装载数据。图2反映了 

基本的数据转换流程。 

语义的二义性 

拼写错误\ 

不同的命名习惯— 

重复记录的清洗—— 

简单数据转换—— 

图2数据转换流程 

(1)数据清理。对于数据准备区中由于拼写错误、不同命 

名习惯、不合法值造成的脏数据,可以采用数据库自身函数,或 

者自行编写函数与存储过程完成清理。特别地,对于空值,可 

230 以采用推导的方法,即采用数据库自身函数, ̄1]avg、mid、rain、 

max或者概率统计函数推导出缺失的空值。 

(2)数据转换。数据转换比数据清理要采用更多更复杂的 

方法和技巧,数据转换在数据ETL过程中是最重要的一步,是真 

正将源数据变为目标数据的关键环节,数据转换包括数据的合 

并、汇总、过滤等数据转化和数据的重新格式化计算。根据难 

易程度可以分为字段级的数据转换和复杂数据转换两种。前者 

包括简单变换、参照转换、字符串处理、日期转换、日期运算、字 

段值合并、字段值拆分等;复杂数据转换包括制定主数据源、计 

算衍生数据和计算概况数据。 

3擞据装载 

数据装载就是将清理之后的临时数据缓存中的数据装到已 

经设计好的数据仓库中的过程。图3为本文风电业务数据装载 

过程的策略流程图。 

图3数据装载流程 

数据装载包括初始数据装载和增量数据装载两部分。 

(1)初始数据装载包括维表的装载和事实表的装载。除了 

自动维可以由OWB工具自动生成维数据之外,用户需要自行设 

计并装载系统中无法得到的维数据,称之为手工维。事实表在 

装载时,首先必须完成与该事实表外键相关联的维表的装载, 

否则,无法完成事实表装载。 

(2)增量数据装载是在初始数据装载完成之后,定期对数 

据仓库进行数据更新的操作,又可叫做数据刷新。 

对于维表的增量数据装载,以风电机组基础信息为例,当 

风电场增加一台风机时,需要在系统中增加装机容量,这个时 

候就要对装机容量维进行更新也就是增量数据装载,可以采用 

PL/SQL ̄的游标实现这一功能。 

对于事实表的增量数据装载,也需要考虑事实表之间刷新 

的先后顺序。但由于事实表数量巨大,需要在刷新时注意提高 

准确性和效率,对事实表进行分区或者正确使用PL/SQL中的索 

引策略是一个比较有效的解决办法。 

三、结论 

本文重点研究了针对风电信息系统下大量业务数据的ETL 

(下转第232页)