从 晶 科 技
CONGJINGTECHNOLOGY
设为首页 | 收藏本站
新闻详情

大数据ETL工具 Kettle核心组件及其使用

Kettle 简介


Kettle 是什么


Kettle 是一款国外开源的 ETL 工具,对商业用户也没有限制,纯 Java 编写,可以在 Window、Linux、Unix 上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,它允许管理来自不同数据库的数据,把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle 中有两种脚本文件,Transformation 和 Job, Transformation 完成针对数据的基础转换,Job 则完成整个工作流的控制。通过图形界面设计实现做什么业务,并在 Job 下的 start 模块,有一个定时功能,可以每日,每周等方式进行定时。


Kettle 的核心组件

名称功能
Spoon通过图形接口,允许你通过图形界面来设计 ETL 转换过程(Transformation)
Pan运行转换的命令行工具
Kitchen运行作业的命令行工具
CarteCarte 是一个轻量级别的 Web 容器,用于建立专用、远程的 ETL Server


作业和转换可以在图形界面里执行,但这只适合在开发、测试和调试阶段。在开发完成后,需要部署到生产环境中   Spoon 就很少用到了,Kitchen 和 Pan 命令行工具用于实际的生产环境。

部署生产阶段一般需要通过命令行执行,需要把命令行放到 Shell 脚本中,并定时调度这个脚本。

Kitchen 和 Pan 工具是 Kettle 的命令行执行程序,只是在 Kettle 执行引擎上的封装,它们只是解释命令行参数,调用并把这些参数传递给 Kettle 引擎。

Kitchen 和 Pan 在概念和用法上都非常相近,这两个命令的参数也基本是一样的。唯一不同的是 Kitchen 用于执行作业,Pan 用于执行转换。


Kettle 概念模型


48599163816.jpg


Kettle 的执行分为两个层次:Job(作业,.kjb 后缀)和 Transformation(转换,.ktr 后缀)


简单地说,一个转换就是一个 ETL 的过程,而作业则是多个转换、作业的集合,在作业中可以对转换或作业进行调度、定时任务等。


在实际过程中,写的流程不能很复杂,当数据抽取需要多步骤时,需要分成多个转换,在集成到一个作业里顺序摆放,然后执行即可。


kettle调度现状


kettle使用过程中一般都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几百个job需要管理,这时在使用客户端管理已经很难完成了。


kettle解决方案


我所知道的解决方案有用命令行的调用的,操作麻烦,体验很差(基于命令行上构架出来的一般都用Linux的crontab、或者是Windows下用定时器等);还有就是开发web端管理工具,kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用。


从晶科技针对kettle使用过程中的痛点,开发一套管理系统KettlePack,专门用来调度、监控由kettle客户端创建的任务、管理。

cg.jpg

KettlePack四大产品特色


1.一体化任务管理


KettlePack可将Kettle生成的ktr和kjb文件进行批量导入,支持成千上万个Kettle任务的同时处理。


2.可视化运维监控


提供丰富的运维监控视图,实时查看作业运行日志,log日志,Kettle内部的运行日志,系统操作日志等。


3.基于文件资源库


KettlePack内部集成文件资源库,通过KettlePack文件管理路径来存放所有需要监控运维的作业及转换


4.完整的定时策略


KettlePack集成定时策略,可以根据定时策略来执行Kettle的作业及转换任务


如果您在使用kettle的过程中,出现过类似问题,可以使用KettlePack管理平台,欢迎下载体验哦!



联系客服