基于风电数据仓库的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页)