关键词:
数据仓库
ETL
资源利用率
Kettle
摘要:
信息是当今社会的重要资源,是各行各业进行科学管理、决策的基础。信息的数据量每年都在指数型增加,这些信息数据蕴含着巨大的价值。然而,目前各个行业对信息资源的利用率非常低,只有2%到4%左右。浪费了大量的时间以及人力物力。因此,如何提高信息资源的利用率成为了社会各界共同关注的话题。数据仓库在此背景下应运而生。ETL是构建数据仓库的重要步骤,它按照统一规则集成数据,进而提高数据的价值。数据仓库的构建过程中,需要大量的ETL作业。如何有效管理这些ETL作业,是提高ETL效率的关键。本文基于Kettle研发出一套全新的ETL管理系统,极大提高了 ETL的效率,从而提升了信息资源利用率。现在ETL技术用到的工具主要有:OWB、OD1、Informatica、Kettle等。其中,Kettle是一款开源的ETL工具,利用JAVA编写,可以在多种系统上运行,数据抽取比较高效。因此,本文选择了 Kettle作为ETL的工具。然而,Kettle在性能上拥有很大的瓶颈,同时作为一个开源的工具,其自身bug较多,而且没有友好的中文版本。另一方面,当前的大部分Kettle作业是以文件状态分散存储在各个机器中,不利于统一管理和监控,且作业多数采用单机执行,效率较低。因此,有必要创建一个ETL作业管理系统。通过ETL作业管理系统的开发使用,清晰、高效地通过作业管理调度的方式处理ETL过程。ETL管理系统基于Kettle集群开发。Kettle集群与许多分布式系统类似,以多服务器运行,能有效防止单点失败,速度较快,适用于大数据量的操作。但Kettle集群存在网络带宽要求高等缺点。为了使整体性能最优,系统重写了Kettle 一些原有的功能,使Kettle集群只负责作业及转换的执行,从而达到集群负担最小化。同时系统针对众多的ETL作业进行统一管理,将ETL作业传输到资源库并完成分类管理,结合Kettle集群及其负载信息,采用实时及定时执行策略,实现作业调度及作业执行过程的监控。并且系统引入了作业流程设计功能,可根据具体的业务场景,提供可视化流程设计器绘制流程图,实现ETL作业按流程执行。另外系统还提供了 ETL作业管理及监控、机器资源监控、服务器环境一键化搭建等功能。系统解决了以往Kettle操作繁琐、效率低下、不稳定、用户体验差等问题,系统页面内容丰富,信息直观明了,用户友好性极高。实现了 ETL作业的统一管理和监控,使众多的作业能在集群上执行,大大提高了执行效率,减小了 ETL失败率,加大了信息资源利用率。