上一篇 文章 ,主要讲了 kettle 的原理、安装及简单的使用。其中用到了一种输出方式:插入更新。

这篇文章,主要介绍下常用的输出方式:插入更新、表输出、执行 SQL 脚本。

插入更新

插入更新,顾名思义,包括插入和更新两种情况。

我们需要先设置一个条件,符合条件时,进行更新操作;否则,进行插入操作。常见的条件就是判断表中的 ID 和流(上一个步骤的结果,可以理解为内存)中的 ID 是否相等,相等则更新;不等则插入。

我们再来回顾下上一篇文章中的例子。

整体流程为:

表输入的设置及预览:

插入更新的设置:

运行结果(user_copy 表数据):

运行后,user 表的数据被同步到 user_copy 表中,并且不管运行多少次,数据始终是那么多。

这就是插入更新的特点,ID 一样时,只会进行更新,不会再次插入。

注:

  • 对于一个节点,可以右键点击 显示输入字段/显示输出字段来查看输入、输出字段信息

  • 源表和目标表字段不一致时,无法匹配上,需要手动编辑映射

表输出

表输出,就是单纯地将数据输出到另一个表。

我们来看这个例子。

整体流程为:

表输入和上面的例子一致。

表输出的设置:

运行结果(user_copy 表数据)和插入更新的方式一致。但是当我们第二次运行后,kettle 就会报错,说主键已经存在。

这就表示表输出只能输出一次,如果目标表中已经存在相应的主键,则不会进行更新,会报错。

如果我们修改下表输出的设置,我们来指定下输出字段:

运行结果(user_copy 表数据):

我们可以看到,运行后 ID 由数据库自动生成,并且可以运行多次不报错,数据库也会重复插入数据。

因此表输出只是单纯的输出操作。

执行 SQL 脚本

执行 SQL 脚本,就是可以自定义一条 SQL 来执行。

我们来看这个例子。

整体流程为:

运行结果(user_copy 表数据):

我们可以看到,每取出一条数据,就执行了一次 SQL ,将数据插入目标表。运行多次后,就会插入多次数据。

执行 SQL 脚本比较灵活,我们可以用来处理较为复杂的 SQL 。

总结

插入更新、表输出、执行 SQL 脚本是比较常见的输出方式。

插入更新由于可以更新数据,用的比较多。

表输出,容易插入重复数据,请慎用。

执行 SQL 脚本则比较灵活,比如我们可以用它来保存日志、错误信息等。

本文转自: https://blog.csdn.net/qqfo24/article/details/82215761

kettle 常用输出(插入更新、表输出、执行 SQL 脚本)相关推荐

  1. Win10DB210.1企业版的安装卸载DB2建库建表空间执行sql脚本SQL5005C、SQL8027N license许可证等报错详解

    注意事项 以下是我在使用DB2软件在过程中遇到的一系列的问题和报错,我将它们全部总结归纳在一起,希望对其他和我一样的同学能有帮助. ①.Win10的系统貌似是只支持DB210以上的版本的安装,我层尝试 ...

  2. postgresql常用命令和执行sql脚本

    postgresql连接数据库命令,执行sql脚本 //登录pgsql数据库 psql -U postgres(用户名) //输入用户的口令 //列举数据库 \l //创建数据库 cretae dat ...

  3. Java使用数据库命令执行sql脚本(Windows版)

            传统使用Java ScrptRunner类执行sql脚本时会有很多语法限制,程序只能最简单的sql语句,该功能并不适用于实际应用场景:因此可以改变思路,使用Java直接执行Dos命令的 ...

  4. linux下db2创建批量存储过程,DB2批量执行SQL脚本以及存储过程的实现

    使用过的命令: 进入db2cmd db2 connect todb_aliasuserusernameusingpassword db2 -tvfc:\abc.sql-labc.log 参考如下: 可 ...

  5. Oracle 在Sqlplus 执行sql脚本文件。

    首先在随便1个地方建立1个sql语句的文件. 例如: 执行命令为: sqlplus loginID/passwd@serverIP/servcie_name @path/file.name 例如: 见 ...

  6. 服务器脚本执行sql文件命令行,sh命令执行sql脚本

    sh命令执行sql脚本 内容精选 换一换 GAUSS-51400 : "Failed to execute the command: %s."SQLSTATE: 无错误原因: 执行 ...

  7. bat脚本执行sql脚本

    查阅的很多的博客和资料,发现讲的挺多的多,但实践起来总是出错.因此楼主将总结汇聚如下,简单明了的执行操作供大家参考 一:简介 bat文件是dos下的批处理文件.批处理文件是无格式的文本文件, 它包含一 ...

  8. oracle里面cat,Oracle 12c 中推荐使用 catcon.pl 执行SQL脚本

    https://www.cndba.cn/dave/article/225https://www.cndba.cn/dave/article/225 1    说明 在Oracle 12c中,Orac ...

  9. 如何在plsql/developer的命令窗口执行sql脚本

    转自:https://www.cnblogs.com/1540340840qls/p/8649527.html 在plsql/developer的命令窗口执行sql脚本的命令是@+路径 示例如下: 第 ...

最新文章

  1. C#入门面向对象编程(委托的使用)
  2. python 任务计时器 apscheduler.schedulers
  3. 最强六大开源轻量级人脸检测项目分析 | 附打包下载
  4. 产品狗,工作三年,转行AI应该怎样规划?
  5. python画xy轴折线在拐点处加汉字_解决python中画图时x,y轴名称出现中文乱码的问题...
  6. CCNA培训课总结笔记--RIP的基本配置(五)
  7. 1075. PAT Judge (25)
  8. 关于ionic中几个问题
  9. 2021雪花飘新年倒计时源码
  10. 如果你想学数据科学,这 7 类资源千万不能错过...
  11. 超市会员积分管理系统
  12. 【献血小常识】------- 献血者健康检查标准
  13. 毕业季,作为程序员(it软件开发工程师),如何培养强大的解决问题的能力
  14. LCD12864液晶显示屏引脚,功能介绍【160字】【原创】
  15. 关于js中获取div中的数据
  16. APP移动应用测试策略与工具思维导图
  17. Qt 串口通信软件开发教程
  18. 无题(2011.10.26)
  19. python——小例子 及 end=““ 和“t“的用法
  20. QTabWidget——创建标签页的多页面切换

热门文章

  1. RINEX2.10、2.11 : (观测值文件)不同观测值类型对比
  2. B2C销售网站的设计与实现
  3. 电影《大长今》励志启示
  4. mkdir命令的功能作用及其如何使用
  5. MMORPG游戏的典型架构
  6. 蓝牙麦克风 android,带蓝牙麦克风的Android语音识别器
  7. win32api 中mouse_event、GetFullPathName(fileName)、.GetLocalTime()、GetSystemDirectory()等函数的用法
  8. 三分钟看懂5G NSA和SA
  9. java面试——集合(ArrayList、lterator、LinkedList)源码理解
  10. 2018世界杯所有场次记录