关于大数据:大数据-ETL-处理工具-Kettle-入门实践

24次阅读

共计 1874 个字符,预计需要花费 5 分钟才能阅读完成。

Kettle 简介

ETL(Extract-Transform-Load 的缩写,即 数据抽取、转换、装载 的过程),对于数据开发人员来说,咱们常常会遇到各种数据的解决,转换,迁徙,所以理解并把握一种 ETL 工具的应用,必不可少,这里咱们要学习的 ETL 工具就是 Kettle。

Kettle 是什么

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

Kettle 的外围组件

名称 性能
Spoon 通过图形接口,容许你通过图形界面来设计 ETL 转换过程(Transformation)
Pan 运行转换的命令行工具
Kitchen 运行作业的命令行工具
Carte Carte 是一个轻量级别的 Web 容器,用于建设专用、近程的 ETL Server
  • 作业和转换能够在图形界面里执行,但这只适宜在开发、测试和调试阶段。在开发实现后,须要部署到生产环境中 Spoon 就很少用到了,Kitchen 和 Pan 命令行工具用于理论的生产环境。
  • 部署生产阶段个别须要通过命令行执行,须要把命令行放到 Shell 脚本中,并定时调度这个脚本。
  • Kitchen 和 Pan 工具是 Kettle 的命令行执行程序,只是在 Kettle 执行引擎上的封装,它们只是解释命令行参数,调用并把这些参数传递给 Kettle 引擎。
  • Kitchen 和 Pan 在概念和用法上都十分相近,这两个命令的参数也根本是一样的。惟一不同的是 Kitchen 用于执行作业,Pan 用于执行转换。

Kettle 概念模型

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

简略地说,一个转换就是一个 ETL 的过程,而作业则是多个转换、作业的汇合,在作业中能够对转换或作业进行调度、定时工作等。

在理论过程中,写的流程不能很简单,当数据抽取须要多步骤时,须要分成多个转换,在集成到一个作业里程序摆放,而后执行即可。

目录文件性能阐明

下载及装置

官网各个版本下载地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/
国内 Kettle 论坛网:https://www.kettle.net.cn/

Kettle 是纯 Java 编程的开源软件,须要装置 JDK,并配置环境变量,解压后间接应用无需装置。

需筹备的其余货色:数据库驱动,如将驱动放在 Kettle 根目录的 bin 文件夹上面即可。

关上 Kettle 只须要运行 Spoon.bat (win)/ spoon.sh (Linux / macOS),即可关上 Spoon 图形工具。

启动 Kettle

如下图,执行 ./spoon.sh 命令

欢送页面

HelloWorld

把数据从 CSV 文件复制到 Excel 文件

CSV 文件输出

将「CSV 文件输出」拖拽到右侧的工作区,双击进行编辑,浏览抉择筹备好的测试文件,点击「获取字段」主动获取 CSV 文件中表头信息,输出配置实现,下一步进行输入配置。

Excel 输入

将「Excel 输入」拖拽到右侧的工作区,双击进行编辑,这步比较简单,浏览抉择输入目录和设置文件名,实现配置。

转换文件

按住 shift + 鼠标左键能够建设连贯,保留转换配置

运行转换

查看后果

总结

初步理解 Kettle 外围组件及其应用

  • 作业和转换能够在图形界面里执行,但这只适宜在开发、测试和调试阶段。在开发实现后,须要部署到生产环境中 Spoon 就很少用到了,Kitchen 和 Pan 命令行工具用于理论的生产环境。
  • 部署生产阶段个别须要通过命令行执行,须要把命令行放到 Shell 脚本中,并定时调度这个脚本。
  • Kitchen 和 Pan 工具是 Kettle 的命令行执行程序,只是在 Kettle 执行引擎上的封装,它们只是解释命令行参数,调用并把这些参数传递给 Kettle 引擎。
  • Kitchen 和 Pan 在概念和用法上都十分相近,这两个命令的参数也根本是一样的。惟一不同的是 Kitchen 用于执行作业,Pan 用于执行转换。

分步操作一个 HelloWrold 过程

欢送关注公众号:HelloTech,获取更多内容

正文完
 0