【kettle 7.1】再次体验
2018-03-06 00:00
162 查看
1 前言
在 <kettle 初体验> 中,我们新建了一个 转换 ,做了一个任务:从CSV文件中读取数据,并加入问候的信息,并输出到XML文件中,在本文中,我们将在前一篇文章的基础上,新建一个job,并完成下面的任务:1、新建两个 转换 ,第一个转换的工作是 从输入变量中获取 需要转换的文件名 (这里是CSV文件),并输出到环境变量 MY_FILE 中;另一个转换的任务是从环境变量中拼接CSV文件的路径,该文件作为转换的输入,并加入问候的信息,并输出到XML文件。可以看到,其实第二个转换是由上一篇文章进行修改而成的。
2、新建一个job,该job如下所示。该job由两个 transformation 组成,分别对应上面所述的两个转换。除了这两个转换外,还连接了两个中断和一个文件存在的判断条件。当第一个转换遇到异常抛出时,将会走 abort job,成功时将会往下执行;此时将会通过一个判断条件,该条件根据从上面获取到的变量拼接的字符串,判断该文件是否存在,如果不存在将会流转到abort job2,否则将会流转到 transformation 2 中,进行转换2的任务。
由于kettle只做了部分的汉化处理,为了更好的对照教程学习,这里把kettle软件的语言设置为english
2 完成目标
为了完成上面设定的目标,我们需要做一些准备工作。(1)在存储路径下新建文件夹,并在spoon中新建一个job,并保存该job在新建的文件夹中。笔者所命名的文件如下:
job的文件扩展名是kjb。
(2)新建好job后,我们设置两个环境变量,一个是FILES_PATH,另一个是MY_FILE,前一个变量是指定文件存放路径,后一个是存储文件名的变量
2.1 设置转换:获取输入,设置为环境变量
新建转换:get_file_name.ktr
从左边窗口中拉下面的step到工作台,并按照上面的图进行连接。
(a)input -> Get System Info
(b)Flow -> Filter rows
(c)Flow -> Abort
(d)Job -> Set Variables
这里的打勾的连接意思是当上面的step执行的结果为true时,走该流程。上面整个转换过程的意思是:获取系统输入的第一个参数,并判断输入是否有值,如果没有就流转到abort这个step,并抛出异常。
设置 Get System Info 步骤
双击 Get System Info 步骤,设置值域为my_file,类型设置为从命令行的第一个参数中获取。
设置filter row步骤
设置判断条件为 my_file 变量不为空
设置Abort步骤
记得勾选 "abort with error" ,否则在job中嵌入该转换,进行流程流转时是永远都为true,也就是肯定会继续往下执行。
设置Set Variables步骤
这里把my_file的变量设置到环境变量 MY_FILE 中。
2.2 设置转换:读取CSV文件数据,输出到XML中
新建另一个转换:hello_with_param.ktr。该转换可以参考上一篇文章<kettle 初体验> 和下面的图示。和前文有所区别的地方是:
(1)CSV file input 的文件名是使用环境变量拼接得到的
通过 ctrl+alt + 空格 可以选择设置好的环境变量。
(2)XML output 的文件输出路径也是通过环境变量得到的
2.3 设置job
(1)在Transformation step中选择前面保存的转换get_file_name.ktr(2)abort job,设置报错日志消息 “没有获取到文件名”
(3)file exists,设置需要判断的文件,这里使用环境变量
(4)Abort job 2,设置报错消息“文件 ${FILES_PATH}/${MY_FILE} 不存在”
(5)Transformation 2,选择转换 hello_with_param.ktr
3 测试和执行
添加命令行参数,我这里需要测试的文件名为customer_list.csv执行后,可以在底下看到每个step的执行状况
如果在命令行参数的赋值有问题,整个流程是不能跑通的,此时会发生某个abort,下面是在没有任何输入的情况下,报没有文件输入,这是在前面部署的step判断条件的流转情况
相关文章推荐
- Ubuntu再次体验之【美化】--更改开机引导grub分辨率
- Kettle7.1 创建数据库资源库方法整理
- Kettle7.1 学习笔记
- 获取Kettle7.1源码,利用Eclipse配置并运行该源码。
- ubuntu再次体验之【美化】--修改主题、字体、字体大小
- Kettle7.1 无法连接sqlserver2014
- 发布两年后,再次体验Win10 10240
- Win10预览版Build 9860再次提升触控体验
- 天地图再次使用体验(2017.3.4)
- KETTLE6.0版本体验小结
- KETTLE6.0版本体验小结
- Pentaho Data Integration 7.1(kettle) 安装手册
- 【kettle 7.1】行转列 Row denormaliser
- kettle7.1连接sqlserver连不上报异常解决
- Kettle 7.1 资源库配置&&无法配置资源库&&自定义配置文件路径
- 【kettle 7.1】data grid -> 数据库表输出
- 【kettle 7.1】从一个数据库表抽取到另一个数据库表
- kettle 7.1 集成 HDP2.6 写入HDFS 报错问题
- 【kettle 7.1】data grid 输入 -> txt文本输出
- 今天再次体验了一次张江的高消费