煤炭企业数据中心ETL智能化调度研究*
2012-12-02王振宇陈红星刘道园
王振宇 陈红星 刘道园
(煤炭科学研究总院,北京市朝阳区,100013)
煤炭企业数据中心ETL智能化调度研究*
王振宇 陈红星 刘道园
(煤炭科学研究总院,北京市朝阳区,100013)
ETL(Extraction Transformation Loading)作为煤炭企业数据中心建设过程中的重要环节,通常需要人为调度来实现数据的抽取、转换、清洗以及装载,数据挖掘的实时性和便利性存在着很大局限。本文对ETL调度过程进行研究,提出了智能化调度策略,实现了数据调度无需人工干预即可按照预定规则执行。经过煤炭企业数字化矿山建设项目的应用实例检验后,证明了此方案的可行性。
数据中心 数据挖掘 ETL 智能调度
随着国家对数字化矿山建设的有效推进和煤炭企业的快速发展,国内很多煤炭企业都建立了自己的数据中心以适应各种生产数据、经营数据、管理数据的爆炸性增长以及为管理层分析决策提供支持。其中数据仓库是数据中心建设过程的核心内容,而ETL过程又是数据仓库过程中的关键一环。由于井下生产环境的复杂性,安全相关的监控数据随时产生,而当前的ETL工具大都需要人为触发调度才能够实现数据抽取、转换、装载到数据仓库。在这种情况下,数据达到数据仓库的时间存在滞后性,具有很大的误判率,为数据分析决策埋下安全隐患。因此,一种数据挖掘过程的智能化调度方案急需问世。
1 ETL在数据仓库中的重要性
由于煤炭企业各地区各部门信息化发展程度的差异以及各部门的操作系统平台、数据模式、数据库类型等等的不同,导致了资源分散、各部门各自为政、互不通讯、互不兼容,形成了诸多信息孤岛,致使整个煤炭企业管理部门的数据应用水平不高,综合分析能力较弱,难以为决策者提供综合、高效、准确的信息。企业生产经营活动所产生的信息量逐渐增大,真正具有直接利用价值的数据却很少,需要对大量的数据信息进行更深层次地过滤与分折,以发现和挖掘内在关联、有利于提高企业竞争力、为领导决策提供依据和用户所需要的信息。这就是企业竞争对数据中心建设的需要,而数据中心建立的首要问题就是ETL过程:按照预先定义的规则,将分布在多处的数据源数据经过清洗、过滤汇聚到规模庞大的数据仓库中。
2 ETL体系架构及功能描述
2.1 体系架构
数据中心把数据源和目标数据库分开,系统从最左边的数据源开始抽取数据,经过清洗、转换后传输装载到右边的目标数据库。数据中心整体框架示意图如图1所示。
图1 数据中心整体框架示意图
2.2 数据抽取
在同一业务系统中可能会遇到多种数据源的情况,因此要对各种工具提供的数据源接口类型深入了解。比如,针对同一种数据库使用原厂商自己的专用接口还是通用接口(JDBC/ODBC),数据抽取的效率将会有较大差别,这直接影响到在有限的时间内能不能完成预订的数据交换任务。考虑到数据交换的扩展性和通用性,应该尽可能地支持常用数据源对象。目前,煤炭系统数据中心常用的数据源对象(数据源类型)包括数据库、数据文件和消息队列3种。
(1)数据库。主要支持的数据库包括Oracle、SQL Server、DB2、MySQL等主流数据库。
(2)数据文件。支持的文件类型包括有分隔符的TXT、Excel、CSV、XML等格式的文件。
(3)消息队列。由客户端API传来的数据或者是消息队列传来的数据,以数据流的形式存储,经过处理后的数据也可以以数据流的形式输出或放到消息队列中,由消息中间件作可靠的传输处理。
2.3 数据转换、清洗及装载
在煤炭企业内部所用的业务系统中,由于对业务系统的研发一般都有一个较长的时间周期,这就造成一种数据在业务系统中可能会存在多种不同的数据类型和存储格式,造成了各个不同数据源之间的关键字不一致、度量单位不统一、字符编码不一致、字段命名不一致、数据记录的合并与拆分不一致、增量数据维护以及数据清洗规则不统一等问题,甚至还有许多数据仓库中所要求的数据在业务系统中并不直接存在,而是需要根据某些算法公式或者某些计算公式对各部分数据进行运算才能得到。因此,这就要求ETL必须对所抽取到的数据能够进行灵活的计算、合并、拆分、过滤、排序、映射、笛卡尔积等转换操作。经转换后的数据,可以直接装载到目标数据仓库,也可以通过消息中间件以消息的方式传输到远程目标。
3 ETL智能化调度策略
当数据源中的数据发生变化时,ETL智能化调度能够将新增的数据自动传到数据仓库内,无需人工触发即可执行ETL过程,这样在减少劳动力和降低企业成本的同时,提高了企业生产运营效率。
在煤炭生产现场突然监测到威胁井下作业人员安全的数据后,为了在尽可能短的时间内让这些数据到达数据中心进而为分析决策提供支持,就需要让ETL过程能够自动触发调度。具体策略为利用数据库的触发器机制完成自动触发,通过触发器建立存储过程,再通过存储过程调用ETL过程。一旦数据源中的数据有增量,数据库会自动触发调度ETL实现增量抽取,从而实现数据实时到达数据仓库内。然而,TXT、Excel、CSV以及XML等类型的数据源文件由于自身技术的限制,采用上述增量触发的方式难度较大,但是可以采用定时执行机制,即让ETL经过一定的时间间隔自动执行,为了不影响执行效率,最短可以设定到1s。
3.1 基于数据库触发器智能化调度
触发器实际上是一种特殊的存储过程,当某一个数据库表的数据发生变化时,它隐藏式地被触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。下面以Oracle数据库为例讲解其触发调度实现过程:首先准备好ETL调度程序ETLRun.Class,在$ORACLE_HOME/bin目录下有个LOADJAVA命令,使用此命令可将ETLRun.Class程序加载到Oracle数据库中。进入到Oracle数据库,在SQLPLUS命令行输入create or replace procedure Modify(name varchar)as languagejava name'ETLRun.modifyjava.lang.String'执行命令后系统会提示创建存储过程成功。最后,在Oracle数据库管理工具TOAD里直接针对某个表增加触发器trigger,关键代码如下:
begin
if:old.name='time'then
Modify(:new.value);
end if;
end;至此,在Oracle的触发器trigger里,一旦有数据插入就可以自动调用ETL过程。
3.2 多数据源基于定时机制的智能化调度
这里的定时指的是根据预定的时间间隔大小循环执行或者单次执行,煤炭行业常用方式是循环执行。基于Java的循环执行相对简单,只要采用schedule方法的另一个重载函数public void schedule(TimerTask task,long delay,long period)即可实现,其中第1个参数task指要执行的任务名称,第2个参数delay指延迟时间,第3个参数就是时间间隔,它是个long型的毫秒数,如果希望一个ETL任务执行1次/min,第3个参数值就要赋值为60×1000。
以上两种智能化调度方式可以根据实际项目需要来进行选择,频繁地触发调度会使线程堆积,影响执行效率,如果客户对数据的实时性要求不高,或者数据源数据增量少且不频繁,建议选择数据库触发器方式;而如果用户数据的增量较为频繁且数据量又大,建议采用定时机制。
4 应用
图2 定时触发调度配置窗口
本文所研究的ETL智能化调度策略已经在峰峰集团梧桐庄矿数字化矿山建设中得以应用,由于梧桐庄矿现有数据源使用的是SQL Server数据库,源数据为生产数据,数据量大,实时性要求不高,因此选择基于定时机制进行智能化触发调度,并以可视化配置的方式为用户服务。首先按照预定规则对ETL过程进行配置,然后根据实际需要设定执行时间,如图2所示,用户一旦启动Job定时功能,ETL过程将按照预设时间循环执行,满足配置的智能化需求。
5 结语
目前,数据中心ETL的应用已经相当广泛,并向着集成化、智能化方向发展,越少的人工干预就越体现出其在同类产品中的优越性。本文针对不同的数据源提出的两种ETL调度方法解决了以往ETL过程调度的实时性问题。然而,本文提出的方法由于数据源的千变万化存在着局限性,探索一套通用的自动ETL调度机制,使其更加实时、自动、高效和智能仍是下一步研究的重点。
[1] 杨学瑜,顾合英.数据挖掘在选煤中的应用探讨[J].中国煤炭,2004(4)
[2] 杨毅,孙超.基于数据仓库的煤炭运销决策支持系统研究[J].中国煤炭,2009(2)
[3] 葛斌,孟祥瑞,柏杏丽.煤炭企业ERP理论及应用技术研究[J].中国煤炭,2004(7)
[4] 王建伟.煤炭企业如何实施ERP系统[J].中国煤炭,2002(5)
[5] 刘福国.基于数据挖掘的钢球磨煤机运行特性建模和优化[J].中国煤炭,2010(5)
[6] John Poole等.公共仓库元模型数据仓库集成标准导论[M].北京:机械工业出版社,2004
[7] 何雪利.数字化校园建设中ETL技术实现数据集成[J].计算机工程应用技术,2010(6)
Research on ETL intelligent scheduling in data center of coal enterprises
Wang Zhenyu,Chen Hongxing,Liu Daoyuan
(China Coal Research Institute,Chaoyang,Beijing 100013,China)
ETL(Extraction Transformation Loading),being an important link in the construction of Data Center,usually needs manual scheduling to achieve the data extraction,transformation,cleaning and loading.Thus it can be seen that there is a major limitation on the realtime performance and the convenience.Therefore,the scheduling process of ETL was studied,and the intelligent scheduling strategy was proposed,without manual intervention.That is to say,the ETL process can automatically perform according to predetermined rules.A datamation construction project of a coal enterprise proved the feasibility of this scheme.
data center,data mining,ETL,intelligent scheduling
TD76
A
国家科技支撑计划课题——《煤矿安全高可靠性监控系统关键技术研究——监控系统数据可靠性和挖掘技术研究及示范》(2009BAK54B05)
王振宇(1977-),男,北京人,高级工程师,主要从事煤炭企业信息化、数字化矿山、煤炭企业数据中心、信息化集成控制、管理信息系统方面的科研及应用工作。
(责任编辑 路 强)