ETL数据仓库工具Kettle(PDI)轻量级Web应用服务器环境搭建

一、Kettle工具简介

        最近做的项目用到了ETL工具Kettle,这个工具相当好用,可以将各种类型数据作为数据流,经过处理后再生成各种类型的数据。正如其名“水壶”,将各个地方的水倒进水壶里,再用水壶倒入不同的容器。 

        本教程主要介绍kettle轻量级服务器 Carte的部署与应用,主要记录研究过程中踩的坑。

二、Kettle组件说明

 Kettle里有不同的工具,用于ETL的不同阶段。主要工具如下:

  • Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。
  • Kitchen:运行作业的命令行工具。
  • Pan:运行转换的命令行工具。
  • Carte:轻量级的(大概1MB)Web服务器,用来远程执行转换或作业,一个运行有Carte进程的机器可以作为从服务器,从服务器是Kettle集群的一部分。

三、Linux环境Kettle Carte部署搭建

1、首先基于Centos7环境安装Java环境(略),查看java环境安装版本

java -version 

2、Kettle为绿色安装包,下载后解压即可,Linux通windows解压即可。

3、修改Carte 轻量级服务配置文件,kettle安装目录,例如\data-integration\pwd。

修改carte-config-master-8080.xml.

4、启动Carte 服务,启动命令如下。看到日志创建Web监听服务器打印日志,服务启动成功。

./carte.sh ./pwd/carte-config-master-8080.xml

5、webAPI调用接口启动Kettle脚本,使用PostMan调用接口

HTTP请求,支持POST、GET方式

127.0.0.1:7000/kettle/executeJob/?rep=KettleFileRepository&job=/testjob

rep=KettleFileRepository  :  rep kettle资源仓库,KettleFileRepository    为资源仓库ID

job=/testjob                        :job 为需要运行的工作脚本名称,特别注意,此处任务名称是job,任务名称后缀是kjb.

服务器端日志显示执行成功

如果提示  Error 401 Unauthorized错误,是Carte服务默认启用了Base Auth。默认用户名密码为 cluster

四、特别注意要点,Kettle资源仓库的配置

资源仓库为xml配置文件,windows系统默认在当前用户目录C:\Users\abc\.kettle;centos用户目录 /root/.kettle

资源库名称KettleFileRepository,就是http请求的资源库名称

base_directory 资源库物理路径,存放Kettle脚本的路径 

资源库配置文件 repositories.xml

<?xml version="1.0" encoding="UTF-8"?>
<repositories>
  <repository>    <id>KettleFileRepository</id>
    <name>kettleFileRepository</name>
    <description>File repository</description>
    <is_default>false</is_default>
    <base_directory>/JFS/files/kettle/job</base_directory>
    <read_only>N</read_only>
    <hides_hidden_files>N</hides_hidden_files>
  </repository>  </repositories>
脚本物理地址:

 

kettle管理工具专门为kettle这款优秀的ETL工具开发的web端管理工具。项目简介kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几百个job需要管理,这时在使用客户端管理已经很难完成了。我所知道的解决方案有用命令行的调用的,操作麻烦,总之还是很难用啦,还有就是开发web端管理工具kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他没留意到还有没有较好对众多job进行管理的工具。基于以上情况,和我近两年的kettle定制开发与使用经验。我设计并开发了这款kettle web端管理工具。本系统当前支持oracle和mysql项目功能job运行参数设置,可以在页面上设置作业运行参数,每次运行作业时会用设置的参数覆盖默认值,这个很多人用不上。定时设置,操作界面与kettle中的开始控件界面一致,这个可能是最优用的功能之一。作业的运行与停止,核心功能就不说了。实时查看作业运行日志,最大显示行数可以配置,这个功能看起来不起眼,实际应该是很有用的。后台有一个作业专门完成将运行的作业日志写入日志文件,文件按天分文件夹存放,日志文件大小可以配置,若觉得占用空间,可以设计一个作业进行定时清理以前的日志文件,后续会提供该作业。也可以配置为不写日志文件。作业的运行状态会定时反映到管理界面,我们可以通过多种条件筛选我们需要的作业进行批量运行或停止。本系统是基于数据库资源库设计的,暂时不考虑支持文件资源库。本系统还附带了一个kettle插件,类似kettle已有的自定义类控件(可以在转换中写java代码)。该控件的设计时为了避免每一个需求都去开发一个kettle控件,从后台元数据管理到操作界面设计。该控件采用灵活的JSON传递参数,然后继承一个基类就可以完成一个任务了,就是说基于该控件,只需要开发一个具体的操作类就可以了。有兴趣可以看一下,详细介绍参看:http://www.cnblogs.com/majinju/p/5767046.html。界面截图主界面定时设置界面参数设置界面运行日志查看界面平台级日志,支持查询下载项目介绍主页:kettle-manager主页 标签:Kettle  ETL工具框架
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值