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调优(下)
android·大数据·数据库·后端·sql·mysql·database
注塑机数据采集联网5 小时前
数据采集网关入门:ZK-D1/D3从零开始构建你的数据运用
大数据·数据仓库·人工智能·物联网·数据库架构·注塑机网关
呆萌很7 小时前
达梦(DM8)数据库常用SQL
数据库·sql
跟太阳说早安7 小时前
极简数据库SQL
数据库·sql
凤凰院凶涛QAQ9 小时前
《MySQL内核拆解:从SQL到InnoDB》(三) : 数据库设计 & 聚合查询 & 分组查询
数据库·sql·mysql
Decay__10 小时前
01_MySQL 体系架构全解 —— 连接层、SQL 层、存储引擎层与 InnoDB 深入
运维·数据库·sql·mysql·架构
roman_日积跬步-终至千里10 小时前
【数据建模入门】从一家小店看懂数仓与机器学习:先理业务,再串技术
数据仓库·人工智能·机器学习·数据分析·数据建模
liminla!1 天前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
数据库·sql·算法
l1t1 天前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb
TangGeeA1 天前
数据库、SQL 与 DB AI
数据库·人工智能·sql