PDI Kettle 示例 Hello World!

示例实现一个功能,将原文本转换为目标文本,格式如下:

源文本
last_name,name
Suarez,Maria
Guimaraes,Joao
Rush,Jennifer
Ortiz,Camila
Rodriguez,Carmen
da Silva,Zoe
目标文本
<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格式的问候语,此例要做的事,就是读取以名单列表,生成问候语并转存为XML。

A Transformation is made of Steps, linked by Hops. These Steps and Hops form paths through which data flows.

准备实验环境

新建名为Tutorial的目录,用于存放实验所需文件。新建名为list.csv的文件保存源文本。

转换预排

实验将完成以下三个子任务:

  1. 新建转换器
  2. 通过增加步与跳(steps and hops)设计基本的转换流
  3. 为数据集与期望行为配置步骤
新建转换器
  1. 点击 new file 然后选择 转换。
  2. 点击 以不同名称保存转换,将转换保存在Tutorial目录并命名为hello. 转换被会被保存为hello.ktr文件。
通过增加步骤与跳线(steps and hops)设计基本的转换流

步骤是转换中的最小单元。Kettle中有非常多的步骤,它们被分类组织在一起。每一个步骤都被设计成用于完成一个特定的功能,例如产生随机数或在数据库中插入行。
跳线是以图形表示的源与目的步之间的数据流。沿跳线流动的数据构成了源步骤的输出数据与目的步骤的输入数据。一个跳线仅能有一个源与一个目的,但一个步骤可以连接多个跳线。

实验中的转换将完成如下步骤:

  1. 读CSV文件
  2. 构造问候语
  3. 在XML文件中保存问候语

通过拖拽完成如下形式

image
为数据集与期望行为配置步骤

每一个步骤都有一个配置窗口,依照步骤的功能其配置窗的样式也各不相同。

配置 CSV file input 步骤
  1. 改变步骤名称,键入 读入名称列表
  2. 点击 Browse 选择 list.csv
  3. 点击 Get Fields,名单的第一行被当作列名添加在网格中
  4. Switch lazy conversion off
  5. 点击 OK
配置 Modified JavaScript Value Step
  1. 代码区键入
var msg = 'Hello, ' + name + "!";
  1. 点击 Get variables
  2. 点击 OK
配置 XML Output Step
  1. 点击 Browser,指定一个你喜欢的名字
  2. 点击 Fields 页标签
  3. 点击 Get Fields
  4. 删除 last_name, name
  5. 点击 Content type 选择 Element
  6. OK
  7. CTRL-S

怎样工作?

当转换执行时,所有的步骤同时异步执行。
现在,Hello World差不多已经完成了配置工作。转换读取输入文件,通过JavaScript代码为每一行创建一条信息,然后将信息发送到输出文件。这是一个数据量很少的小示例,所有很难注意到其是异步执行的。但要记住,有可能在某刻一个名字已经写入了输出文件,而其它的还留在转换的第一步。

核查,预览及执行

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容