kettle从入门到精通 第六十四课 ETL之kettle kettle中执行SQL脚本步骤,使用需当心

1、群里有不定时会有同学反馈执行SQL脚本步骤使用有问题,那么咱们今天一起来学习下该步骤。trans中的执行SQL脚本有两方面功能,使用时需小心,不然很容易踩坑。

官方定义:

翻译:

您可以使用此步骤执行 SQL 脚本,可以选择在转换的初始化阶段执行一次,或者针对步骤接收的每一行输入执行一次。第二个选项可用于在 SQL 脚本中使用参数。

2、执行 SQL 脚本的默认功能是只在转换的初始化阶段执行一次,这一点非常容易忽视。示例如下图所示:

1)生成记录步骤生成两条数据。

2)写日志-one记录日志。

3)执行SQL脚本执行简单的查询语句:select now() from dual;

4)写日志two记录日志。

3、执行SQL脚本中的执行每一行不进行勾选,表示此步骤只在初始化阶段执行一次。如下图所示:

根据上图日志可以清楚的看到写日志two步骤只执行了一次,因为它的前置步骤执行SQL脚本也只执行了一次。

另外如果在写日志two中添加前置步骤字段name,流程会出现错误无法正常运行。这是因为执行SQL脚本步骤只在初始化时执行一次,此时流中没有字段name导致的。

看过源码的应该了解执行SQL脚本步骤肯定是根据是否执行每一行参数来决定是在init还是在processRow方法中执行。

4、执行SQL脚本中的执行每一行勾选,表示对步骤接收的每一行输入执行一次。如下图所示:

上图可以清晰的看到写日志two可执行了两次,那是因为执行SQL脚本也执行了两次,同时前置步骤的中的name字段也可以正常打印了。

相关推荐
喜欢的名字被抢了2 小时前
MySQL核心机制:事务、锁与存储引擎
数据库·sql·mysql·教程
阿演5 小时前
DataDjinn v0.2.11:SQL 编辑、AI 协作和表格操作继续打磨
数据库·人工智能·sql
山峰哥7 小时前
‌Explain实战:打开数据库执行计划的黑盒‌
大数据·服务器·数据库·sql·深度优先·宽度优先
RestCloud17 小时前
借助ETL工具,实现AI智能体+数据的落地
数据仓库·人工智能·sql·etl·etlcloud·数据集成平台·java脚本
上海云盾-小余20 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
_Jimmy_1 天前
SQLAlchemy 复杂 SQL 执行指南与模板库
python·sql
2601_954916591 天前
ChatGPT 5.6 深度实践:用 AI 重构云成本治理体系,而不是简单“降本”
人工智能·sql·chatgpt·重构·测试用例
肖永威1 天前
金仓数据库麒麟环境SQL终端使用入门实践(增删改查篇)
数据库·sql·金仓数据库
山峰哥1 天前
数据库工程与SQL优化实战指南‌
数据库·sql·oracle·深度优先·宽度优先
RestCloud1 天前
2026数据集成工具最新选型建议:ETL/ELT怎么选,都应该带有什么功能
数据仓库·etl·etlcloud·数据传输·数据同步·数据集成工具·elt