目录
kettle系列教程二
概述
环境准备
设计转换
创建转换
设置转换中的步骤和连接
配置CSV文件输入步骤
配置javascript代码步骤
配置XML文件输出步骤
运行机制
验证、预览和执行
pan命令
首页 数据库 mysql教程 kettle系列教程二

kettle系列教程二

Jun 07, 2016 pm 04:01 PM
教程 系列

kettle系列教程二 1、Hello World 示例 通过这个例子,介绍kettle的一些基础知识及应用: n 使用Spoon工具 n 转换的创建 n 步骤及连线 n 预定义变量 n 在Spoon中预览和执行 n 使用pan工具在终端窗口执行转换 概述 我们要实现的目标是:通过一个包含人名称的C

\\\\\

kettle系列教程二

1、Hello World 示例

通过这个例子,介绍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 - The transformation has finished!!

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

pan命令

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

简单命令如下:

pan /file /Hello.ktl /norep

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

/file是转换文件的名称;

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

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

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

得物使用教程 得物使用教程 Mar 21, 2024 pm 01:40 PM

得物APP是当前十分火爆品牌购物的软件,但是多数的用户不知道得物APP中功能如何的使用,下方会整理最详细的使用教程攻略,接下来就是小编为用户带来的得物多功能使用教程汇总,感兴趣的用户快来一起看看吧!得物使用教程【2024-03-20】得物分期购怎么使用【2024-03-20】得物优惠券怎么获得【2024-03-20】得物人工客服怎么找【2024-03-20】得物取件码怎么查看【2024-03-20】得物求购在哪里看【2024-03-20】得物vip怎么开【2024-03-20】得物怎么申请退换货

升级numpy版本:详细易学的指南 升级numpy版本:详细易学的指南 Feb 25, 2024 pm 11:39 PM

如何升级numpy版本:简单易懂的教程,需要具体代码示例引言:NumPy是一个重要的Python库,用于科学计算。它提供了一个强大的多维数组对象和一系列与之相关的函数,可用于进行高效的数值运算。随着新版本的发布,不断有更新的特性和Bug修复可供我们使用。本文将介绍如何升级已安装的NumPy库,以获取最新特性并解决已知问题。步骤1:检查当前NumPy版本在开始

夏天,一定要试试拍摄彩虹 夏天,一定要试试拍摄彩虹 Jul 21, 2024 pm 05:16 PM

夏天雨后,经常能见到一种美丽且神奇的特殊天气景象——彩虹。这也是摄影中可遇而不可求的难得景象,非常出片。彩虹出现有这样几个条件:一是空气中有充足的水滴,二是太阳以较低的角度进行照射。所以下午雨过天晴后的一段时间内,是最容易看到彩虹的时候。不过彩虹的形成受天气、光线等条件的影响较大,因此一般只会持续一小段时间,而最佳观赏、拍摄时间更为短暂。那么遇到彩虹,怎样才能合理将其记录下来并拍出质感呢?1.寻找彩虹除了上面提到的条件外,彩虹通常出现在阳光照射的方向,即如果太阳由西向东照射,彩虹更有可能出现在东

微信关收款声音的步骤教程 微信关收款声音的步骤教程 Mar 26, 2024 am 08:30 AM

1、首先打开微信。2、点击右上角【+】。3、点击二维码收款。4、点击右上角三个小点。5、点击关闭收款到账语音提醒。

DisplayX(显示器测试软件)使用教程 DisplayX(显示器测试软件)使用教程 Mar 04, 2024 pm 04:00 PM

在购买显示器的时候对其进行测试是必不可少的一环,能够避免买到有损坏的,今天小编教大家来使用软件对显示器进行测试。方法步骤1.首先要在本站搜索下载DisplayX这款软件,安装打开,会看到提供给用户很多种检测方法。2.用户点击常规完全测试,首先是测试显示器的亮度,用户调节显示器使得方框都能看得清。3.之后点击鼠标即可进入下一环节,如果显示器能够分清每个黑色白色区域那说明显示器还是不错的。4.再次单击鼠标左键,会看到显示器的灰度测试,颜色过渡越平滑表示显示器越好。5.另外在displayx软件中我们

photoshopcs5是什么软件?-photoshopcs5使用教程 photoshopcs5是什么软件?-photoshopcs5使用教程 Mar 19, 2024 am 09:04 AM

PhotoshopCS是PhotoshopCreativeSuite的缩写,由Adobe公司出品的软件,被广泛用于平面设计和图像处理,作为新手学习PS,今天就让小编为您解答一下photoshopcs5是什么软件以及photoshopcs5使用教程。一、photoshopcs5是什么软件AdobePhotoshopCS5Extended是电影、视频和多媒体领域的专业人士,使用3D和动画的图形和Web设计人员,以及工程和科学领域的专业人士的理想选择。呈现3D图像并将它合并到2D复合图像中。轻松编辑视

小米 15 系列全代号曝光:Dada、Haotian、Xuanyuan 小米 15 系列全代号曝光:Dada、Haotian、Xuanyuan Aug 22, 2024 pm 06:47 PM

小米15系列预计将于10月份正式发布,其全系列代号已在外媒MiCode代码库中曝光。其中,旗舰级小米15Ultra代号为"Xuanyuan"(意为"轩辕"),此名源自中国神话中的黄帝,象征着尊贵。小米15的代号为"Dada",而小米15Pro则以"Haotian"(意为"昊天")为名。小米15SPro内部代号为"dijun",暗指《山海经》创世神帝俊。小米15Ultra系列涵盖

专家教你!华为手机截长图的正确方法 专家教你!华为手机截长图的正确方法 Mar 22, 2024 pm 12:21 PM

随着智能手机的不断发展,手机的功能也变得越来越强大,其中截长图功能成为了许多用户日常使用的重要功能之一。截长图可以帮助用户将一个较长的网页、对话记录或者图片一次性保存下来,方便查阅和分享。而在众多手机品牌中,华为手机也是备受用户推崇的一款品牌之一,其截长图功能也备受好评。本文将为大家介绍华为手机截长图的正确方法,以及一些专家技巧,帮助大家更好地利用华为手机的

See all articles