kettle Hello World教程

article/2025/10/13 14:07:24

kettle Hello World教程

1、HelloWorld 示例

通过这个例子,介绍kettle的一些基础知识及应用:

n  使用Spoon工具

n  转换的创建

n  步骤及连线

n  预定义变量

n  在Spoon中预览和执行

n  使用pan工具在终端窗口执行转换

概述

我们要实现的目标是:通过一个包含人名称的CSV文件,创建一个XML文件,内容是针对每个人添加上问候。

如果csv文件内容如下:

last_name, name

Suarez,Maria

Guimaraes,Joao

Rush,Jennifer

Ortiz,Camila

Rodriguez,Carmen

da Silva,Zoe

 

则输出的XML文件内容如下:

- <Rows>
  - <row>
        <msg>Hello, Maria!</msg>
    </row>
  - <row>
        <msg>Hello, Joao!</msg>
    </row>
  - <row>
        <msg>Hello, Jennifer!</msg>
    </row>
  - <row>
        <msg>Hello, Camila!</msg>
    </row>
  - <row>
        <msg>Hello, Carmen!</msg>
    </row>
  - <row>
        <msg>Hello, Zoe!</msg>
    </row>
  </Rows>

我们要设计的第一个转换就是创建由csv文件生成一个问候XML文件。

转换是由步骤和连接组成,这些步骤和连接构成数据流,因此转换是基于数据流的。

环境准备

开始设计一个转换之前,我们先创建一个文件夹Tutorial,我们将保存所有的文件到该文件夹中,然后创建一个csv文件,内容就是前面人员信息,你可以复制到文本文件中,然后命名为list.csv

 

设计转换

有三个子任务组成:

ü  创建一个转换

ü  设计转换中的步骤和连接

ü  配置步骤和连接诶

创建转换

1)     点击文件菜单中新建,或者通过快捷键Ctrl+N,选择转换.

2)     在“主对象树”视图中点右击转换1,然后点击设置,或者在设计界面中右击,然后点击转换设置,或者使用Ctrl+T快捷方式。

3)    在设置窗口中可以设置转换的相关属性;我们这里写名称和描述,然后保存。

4)     保存该转换到Tutorial文件夹中,命名为hello,最终创建了hello.ktl文件。

 

设置转换中的步骤和连接

步骤是转换中的最小设计单元,spoon中有很多不同的步骤,放在不同的分组中,如输出、输入等。每个步骤被设计完成一个特定的功能,如读取参数或格式化一个数据集。

 

连接是两个步骤之间连接的图形展示,从源到目标。流经连接的数据构成源步骤的输出数据,目标步骤的输入数据。一般连接有一个源步骤和一个目标步骤,但是有时从一个源步骤出来多个连接,这时输出数据流可以是复制或分发给不同的目标步骤;同样多个连接到达一个目标步骤,则需要目标步骤能够合并来自不同源步骤的输入数据。

 

hello.ktl文件需要实现以下功能:读取csv文件、针对每个人员添加问候、保存问候信息到xml文件中;三个环节使用不同的步骤实现,如下图:

这个例子,步骤之间连接是一对一关系,比较简单,详细的设计流程如下:

1)     在核心对象输入类别中选择CSV文件输入,拖动到右边工作区中;

2)     在脚本类别,拖动javascript代码到右边工作区中;

3)     在输出类别,拖动xml 文件输出到工作区;

现在把CSV文件输入javascript代码两个步骤连接起来

1)     选择第一个步骤;

2)     按住shift键并拖动第一个步骤的图标到目标步骤;

3)     按照同样的方式连接javascript代码xml 文件输出两个步骤;

配置步骤行为

每个步骤都有一个配置窗口,不同类别下的不同步骤配置内容不同,但是步骤名称总是需要设置成有意义的名称,步骤描述是对步骤实现功能的描述。

 

配置CSV文件输入步骤

 

1)  双击CSV文件输入步骤

2)     弹出配置窗口界面,我们设置文件位置、格式、内容等;

3)     替换默认步骤名称,一般设置和业务相关的名称,这里我们使用name list

4)     文件名称需要填写文件名称及位置

       注:在文本框的右边有菱形变量图标,表示该文本框中可以使用变量;变量的格式为${name_of_variable},我们可以定位光标在文本框中,然后按快捷键(ctrl+Alt+Space),文本框的下拉框中会出现预定义的变量及用户定义变量,当然我们目前没有定义任何变量。我们写如下内容:

${Internal.Transformation.Filename.Directory}/list.csv

当程序运行时,变量会被替换成当前转换文件的路径,然后在该目录下搜索 list.csv文件;

 

5)     点击获取字段,增加输入文件的列名称到表格中,该操作默认假设CSV文件有行标题。

6)     表格中展现了列名称last_name和name,如下图:

7)     取消“简易转换”(懒转换)

8)     点击预览,确认文件正确加载,会弹出窗口显示数据。

9)     点击确定,完成CSV文件输入配置。

 

配置javascript代码步骤

1)     双击javascript代码步骤,弹出配置窗口

2)     与前面步骤不同,这里可以写javascript代码,输入“hello”,连接到每个名称前面。

3)     命名该步骤为Greetings.

4)     在配置窗口的主区域写代码,左边窗口,有一组变量及函数,可以在代码中使用;尤其是最后两个节点,输入字段和输出字段,可以在代码中使用;这个例子中有两个字段last_name和name,写入下面代码:

var msg = 'Hello, ' + name.getString() + "!";

注:name.getString()可以手动写入,或在左边树双击自动录入。

5)     在最下面的表格里,可以写代码中创建的任何变量作为输出流中的字段;这里我们创建一个msg变量,因为我们需要把msg内容写到xml输出文件中。如下图所示。

       注:不要混淆这里的代码变量和kettle内置变量,他们完全不同。

6)     点击确定完成JavaScript代码步骤配置。

7)     选择刚才配置的步骤(JavaScript代码),为了检查离开这步骤的输出新的字段,我们将查看输入及输出字段。输入字段就是到达该步骤的数据列;输出字段就是离开步骤的数据列;有些步骤简单传输输入数据,这时,输入数据和输出数据通常相同;有些步骤增加字段到输出流中,如:计算步骤;还有一些步骤过滤或合并数据,这样输出数据中字段减少相对输入数据字段,如:分组步骤。

8)     在该步骤上点击右键,弹出上下文菜单。

9)     选择显示输入字段,可以看到输入字段,last_name和name,来自csv文件输入步骤。

10)  选择显示输出字段,可以不仅有已经存在的字段,而且还增加了msg字段。

 


配置XML文件输出步骤

1)    双击XML输出步骤,弹出配置界面,这里可以设置输出文件的名称和位置,以及输出字段。可以设置全部或部分字段;

2)   设置步骤名称:File With Greetings;

3)    在文件设置框中录入:${Internal.Transformation.Filename.Directory}/Hello.xml

4)    点击获取字段,用三个输入字段填充表格,输出文件中我们只想显示消息,所以删除name和last_name;

5)    再次保存该转换设计文件;

运行机制

      当你执行一个转换,几乎所有步骤是同时执行的,因为转换时异步执行的;行数据流按照设计步骤流转,每个处理流执行到下一个步骤无需等待其他步骤。实际开发时,不了解这个特性,可能出现和设想不一样的结果。

 

至此,该示例基本配置完毕。该转换读取输入文件,然后通过javas代码步骤给每行添加问候,最后该内容被发送到输出文件中。因为例子中行数很少,很难看出了是异步执行。但是,切记,有可能在消息被写在输出文件的同时,有数据行刚离开第一步。

 

验证、预览和执行

1)     执行转换之前,检查每个属性配置实用验证按钮,spoon将验证语法是否正确,查找不可到达的步骤及不存在的连接。如何你一直跟着本教程的步骤练习,应该能验证通过,可以准备预览输出结果。

2)     选择JavaScript代码步骤,然后点击预览按钮,如下图:

3)     如你所见,spoon假设你预览你选择的步骤,点击快速启动,然后,弹出JavaScript代码步骤的数出数据,如何数据和你期望一致,我们准备执行转换。

4)     点击运行按钮在工具栏中。

5)     spoon将弹出一个窗口,这里可以设置一些信息,如执行参数和日志级别等,点击运行。

6)     在主窗口的日志窗口中可以看到当前执行的日志信息及每步执行情况。

       Read:来自前一步的数据行数;

       Written:离开这步到下一步骤时的数据行数;

       Input:从一个文件或表中读取的数据行数;

       Output:往表或文件中写的数据行数;

       Errors:执行中的错误信息,如果有错误,整行都是红色;

 

日志窗口中,可以看到每步骤执行情况。最后一行是:

Spoon - Thetransformation has finished!!

如果没有错误,可以打开新生成的Hello.xml文件,检查是否正确。

 

pan命令

 

pan是在终端执行转换的工具。在window是pan.bat,其他平台是pan.sh,在安装目录可以找到。如果你直接运行pan,不加任何选项,可以看到pan打印所有的选项。

简单命令如下:

pan /file <Job_path>/Hello.ktl/norep

/norep 选项是让spoon不要去连接资源库;

/file是转换文件的名称;                          

<job_path>是我们教程文件夹,如:c:/tutorial 或/home/tutorial

其他选项在运行时是缺省值;

你输入命令并确定后,转换同样被执行。这时,日志被打印到终端界面中,也可以设置日志打印到文件中。日志的格式有点变化,但内容和图形界面一致。

 

 


http://chatgpt.dhexx.cn/article/tq6BBnLW.shtml

相关文章

kettle入门

目录 前言 一、kettle是什么 二、kettle 安装与基本使用 2.1 kettle 安装 2.2 kettle的基础使用 2.21 做一个简单的转换样例 2.2.2 小技巧 三、转换常用组件使用 3.1 输入模块 3.1.1 生成记录 3.1.2 表输入 3.2 输出模块 3.2.1表输出 3.3.2 插入/更新 3.3.3 更新 …

最新版kettle安装教程!!!

终于又想起来要把ketlle装好了&#xff0c;原先我是在虚拟机用的kettle&#xff0c;可是切换还是太麻烦了&#xff0c;今天想说装一个mac版的。进到官网发现它已经换地址了。。。 好巧不巧&#xff0c;刚好是6月5号换的。sad。 1、下载kettle 其实kettle的下载文件是mac和wi…

Kettle使用教程(一)

Kettle自己有三个主要组件&#xff1a;Spoon&#xff0c;Kitchen&#xff0c;Pan。其中Spoon是一个图形化的界面&#xff0c;用于windows的时候&#xff0c;先设置环境变量&#xff1a;pentaho_java_home&#xff0c;例如&#xff1a;C:\Program Files\Java\jdk1.7.0_25&…

Kettle — 安装和部署

前提 Kettle是纯Java编写的ETL开源工具&#xff0c;目前Kettle7和Kettle8都需要Java8或者以上才能正常运行。所以开运行Kettle前先检查Java环境是否正确配置&#xff0c;Java版本是否是8或者以上。 Kettle安装 1&#xff09;创建Kettle的目录&#xff0c;并将Kettle的zip包解…

kettle实战教程-纯实战开发

kettle实战教程-纯实战开发 欢迎关注笔者的公众号: java大师, 每日推送java、kettle运维等领域干货文章&#xff0c;关注即免费无套路附送 100G 海量学习、面试资源哟&#xff01;&#xff01;个人网站: http://www.javaman.cn/kettle/kettle-actual Kettle简介&#xff1a;Ket…

Kettle安装及配置

安装环境说明 jdk 采用 jdk-8u102-windows-x64 kettle采用kettle 8.2 文末&#xff0c;博主会将kettle下载地址附上&#xff0c;还包含其他版本&#xff08;作为本专栏开博小福利&#xff09;。kettle9.0版本以下&#xff0c;本教程都适用&#xff0c;kettle9.0及更新的其他版本…

Kettle的安装和使用

Kettle简介 Kettle是一款国外开源的ETL工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;数据抽取高效稳定。 Kettle是“Kettle E.T.T.L. Envirnonment“只取首字母的缩写&#xff0c;这意味着它被设计用来帮助你实现你的 ETTL 需要&#…

Kettle 使用详解

第0章 ETL简介 ETL (Extract-Transform-Load 的缩写&#xff0c;即数据抽取、转换、装载的过程)&#xff0c;对于企业或行业应用来说&#xff0c;我们经常会遇到各种数据的处理&#xff0c;转换&#xff0c;迁移&#xff0c;所以了解并掌握一种ETL工具的使用&#xff0c;必不可…

Kettle基础操作

目录 Kettle基础操作 1 启动Kettle 2 创建本地资源库 3 基础操作 3.1 新建转换 3.2 新建作业 3.3 节点连接 4 导入/导出资源库 5 创建数据库连链接 Kettle基础操作 1 启动Kettle 前置环境&#xff1a;JDK 1.7以上、IE浏览器升级至IE10以上&#xff08;Kettle7.0以下…

kettle(一)kettle介绍

kettle介绍及组成 一、kettle 是什么 kettle 是一个ETL工具&#xff0c;ETL&#xff08;Extract-Transform-Load&#xff0c;数据抽取、转换、装载&#xff09;&#xff1b; kettle 是java编写&#xff0c;绿色无需安装&#xff0c;抽取高效稳定&#xff1b; kettle 主要用来…

Kettle下载与安装教程【保姆版】

Kettle简介 Kettle最早是一个开源的ETL&#xff08;Extract-Transform-Load的缩写&#xff09;工具&#xff0c;全称为KDE Extraction, Transportation, Transformation and Loading Environment。后来Kettle重命名为Pentaho Data Integration 。它由Java开发&#xff0c;支持…

kettle基础教程-kettle9教程

kettle是啥&#xff1f; 一款免费开源的、功能强大的ETL工具&#xff0c;纯 java 开发。可以在 Linux、windows、unix 中运行。有图形界面&#xff0c;也有命令脚本还可以二次开发。 一.安装部署 1.JDK1.8安装及环境变量的配置 https://blog.csdn.net/weixin_39549656/artic…

kettle 简介及入门

介绍 kettle 是纯 java 开发&#xff0c;开源的 ETL工具&#xff0c;用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面&#xff0c;也有命令脚本还可以二次开发。 kettle 的官网是 https://community.hitachivantara.com/docs/DOC-1009855&#xff…

kettle 使用教程(入门)

文章目录 前言一、下载、安装二、启动软件三、转换的使用教程四、作业的使用教程总结 前言 Kettle简介&#xff1a;Kettle是一款国外开源的ETL工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;数据抽取高效稳定。Kettle 中文名称叫水壶&…

kettle 教程(一):简介及入门

介绍 kettle 是纯 java 开发&#xff0c;开源的 ETL工具&#xff0c;用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面&#xff0c;也有命令脚本还可以二次开发。 kettle 的官网是 https://community.hitachivantara.com/docs/DOC-1009855&#xff0…

kettle入门教程

Kettle是一款国外开源的ETL工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;数据抽取高效稳定。Kettle 中文名称叫水壶&#xff0c;该项目的主程序员MATT 希望把各种数据放到一个壶里&#xff0c;然后以一种指定的格式流出。Kettle这个ETL工…

kettle使用教程(超详细)

今天详细详细说一下kettle 的安装&#xff0c;安装的版本&#xff1a; jdk:jdk-8u152-windows--x64 kettle:KETTLE-5.4 一、环境部署 1、安装JDK,按默认值安装即可 2、设置环境变量,如图下图 具体步骤&#xff1a; 1.右击我的电脑-属性-高级系统设置-环境变量-系统变量-新建…

HMC5883L地磁传感器驱动

霍尼韦尔 HMC5883L 是一种表面贴装的高集成模块&#xff0c;并带有数字接口的弱磁传感器芯片&#xff0c;应用于低成本罗盘和磁场检测领域。HMC5883L 包括最先进的高分辨率 HMC118X 系列磁阻传感器&#xff0c;并附带霍尼韦尔专利的集成电路包括放大器、自动消磁驱动器、偏差校…

Arduino Uno + HMC5883L电子罗盘 实验

实现 HMC5883L 电子罗盘 简单的数据读取实验 实验效果 本实验&#xff0c;简单显示从HMC5883L 读取到的数据 BOM表 Arduino Uno * 1 HMC5883L&#xff08;gy-273&#xff09; * 1 跳线若干 接线图 Arduino Uno <----> HMC5883L 5v …

【模块学习】关于磁力计HMC5883L型号探索

关于磁力计HMC5883L型号探索 一&#xff0e;序言 在众多磁力计中&#xff0c;HMC5883L因为其廉价实用而受到大多数嵌入式开发小白的追捧。然而某宝上不仅仅有HMC5883L这一款&#xff0c;还有QMC5883和HMC5983&#xff0c;常有商家搞不清芯片就出售&#xff0c;导致提供的数据手…