Kettle 转换与作业

写在前面

本文为本人在学习使用kettle进行数据迁移过程中的学习过程记录,仅供参考

Kettle 的转换与作业

转换(Transformation) 和 作业(Job)是Kettle描述数据转换过程的两个基本部件。

转换更着重于对数据内容进行处理,一个转换中可以包含多个步骤。一般来说,在一个转换中,各个组件是并行执行的。当一个组件的输入流接收到内容时,这个组件便进行工作,并将结果放入到输出流中。

相对而言,作业更加关心更为宏观的数据处理,比如文件和目录操作等等。一个作业可以包含多个作业项。作业和转换均可作为一个作业项,也就是说,一个作业可以包含多个子作业和转换。一个作业中的作业项之间是顺序执行的。对于一个作业项来说,只有当该作业项之前的所有作业项执行完毕后,才会执行该作业项。

为什么要用到作业

在之前,我只使用到了kettle的转换部件。最近我在迁移一个数据库表,需要根据表内的字段找到文件,读取文件内容并写到新数据库中。由于文件数量较多,文件又比较大,如果只使用转换的话,kettle会将文件内容一次性读入到内存里,而这样会超出内存限制,导致转换出错。

那如果我每次只取一条记录,读取一两个文件的内容并写入到数据库中,是不是就能够避免超出内存限制呢?

这种方法是可行的。而要做到每次只取一条记录,需要用到作业。在作业的“转换”和“作业”组件设置中, 有一个“执行每一个输入行”选项,勾选后,每输入一行记录,便执行一次该作业项,与我们上面的设想相符合。

注:据说在转换中一些组件也有“执行每一个输入行”这个选项,但目前我还没见过,实际效果未知。

作业项之间变量的传递

在Kettle中,有丰富的组件实现作业项之间变量的传递。

复制记录到结果(“转换”内组件)

该组件将当前的结果传递给下一个作业项。

复制文件到结果(“转换”内组件)

该组件将一个文件名传递给下一个作业项。

设置变量

该组件可以设置变量,并传递给下一个作业项。

获取变量(“转换”内组件)

该组件可以从上一个作业项中获取变量。

从结果中获取文件(“转换”内组件)

该组件可以从上一个作业项中获取文件名。

从结果中获取记录(“转换”内组件)

该组件可以从上一个作业项中获取相应记录的值。

Kettle 转换与作业相关推荐

  1. Kettle转换与作业

    目录 1.Kettle相关概念 2.转换实操 3.作业实操 1.Kettle相关概念 一个数据抽取过程主要包括创建一个作业,并且每个作业可以包括多个转换操作,此数据抽取过程可以通过kettle工具完成 ...

  2. kettle转换和作业插件开发及调试

    这是一篇几年前写下的文档,最近打算根据这篇文档重写一下kettle插件的教程.结果各种理由,一推再推.今天索性将这篇文档发布出来,分享给大家,例子等有空再补上.这是一篇基于kettle3.2基础上完成 ...

  3. Kettle转换作业50个案例代码

    Kettle转换作业应用脚本 本文是Kettle转换作业微案例相关的脚本(代码)及注释的说明.本项目旨在技术交流与学习,由于本人能力有限,代码中难免有些错误,欢迎留言.私信反馈给我,希望对你有所帮助. ...

  4. 批量处理作业调度工具Taskctl的Kettle转换作业类型的使用(soap服务驱动)

    工具下载:去公众号[taskctl]回复内容 "软件" 即可 TASKCTL默认采用pan命令方式调度kettle转换作业.除此之外,我们还提供了taskctl-plugin-ke ...

  5. Kettle使用_30 作业里使用参数

    Kettle使用_30 作业里使用参数 需求描述 需求:通过Kettle对作业.转换进行参数传递 解决方法:通过环境变量.命名参数.获取系统信息.获取变量等组件对转换进行传值. Kettle步骤 St ...

  6. 【使用指南】Kettle转换使用教程

    #Kettle转换使用教程 ##概述 Kettle是一款国外开源的ETL工具,纯java编写的ETL工具 ,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定.并且Kett ...

  7. kettlejava脚本的api_[翻译]KETTLE JAVA API :编程定制自己的Kettle转换(transformation)...

    本文描述了使用kettle API进行以下操作:1)建立一个新的转换(transformation)...... [翻译]KETTLE JAVA API :编程定制自己的Kettle转换(transf ...

  8. 吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 神经风格转换--编程作业

    吴恩达Coursera深度学习课程 deeplearning.ai (4-4) 神经风格转换–编程作业 注:由于这个作业目前未找到完整的中文版的,所以楼主综合了几篇不完整的,自己完整运行了一遍(pyt ...

  9. kettle转换中文数据出现乱码

    在使用kettle转换数据时,有时会出现中文乱码问题,下面介绍解决办法. 首先先保证你自己创建或连接的数据库是utf-8编码; (1) 设置DB连接,打开kettle中连接的数据库, 在高级中输入se ...

最新文章

  1. 18DOM之节点操作
  2. linux ssh Unused,ssh免密码登录 - leopardlinux的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. ASA对FTP的审查抓包测试
  4. “科学学”视角下的科研工作者行为研究
  5. ubuntu(Linux)使用losetup创建虚拟磁盘(挂载,格式化虚拟磁盘,回环设备)
  6. React 的开发成本太高了?
  7. #puppet#新版puppet的问题
  8. 【攻防世界】九、ext3
  9. 数字化工厂-Process Simulate中的运动学定义
  10. win10计算机桌面天气,win10电脑桌面显示时间和天气日期怎么设置
  11. 定制一款铝合金型材的流程
  12. 三星固态驱动安装失败_三星SSD无法安装Win10无法启动解决方案
  13. 在mini2440上面搞定CC2500物理层驱动
  14. 使用idea启动vue项目
  15. 青客公寓挂牌房源分城市爬取
  16. 漫谈 | 从52个思考题来看《Linux内核设计的艺术》
  17. case和for、while循环详解
  18. 三分钟轻松实现连接西门子PLC
  19. 龙人直线电话计费系统
  20. 一个手游外行怎样杀出万分之一创新血路(上篇)

热门文章

  1. android+仿iphone,Android编程实现仿iphone抖动效果的方法(附源码)
  2. CG-3D渲染器-0.1
  3. android加密墙,Android代码混淆加密配置(Proguard文件解析)
  4. git密钥.pub文件转换为.ppk文件并TortoiseGit配置.ppk
  5. DeFi基准利率今日为3.38%
  6. 松下伺服器A4调试软件 适用于A,A3,A4,B,E,S系列
  7. 我在网络上看到的PDM的概念、定义、优缺点等相关信息
  8. 射频电路基础简窥之低噪声放大器
  9. 在VSCode中自定义文件类型和扩展名关联
  10. IDEA 设置文件关联规则