kettle从入门到精通 第七十七课 ETL之kettle kettle执行存储过程,接收数据集

场景:kettle调用存储过程,存储过程中通过select * from table 方式返回结果集,kettle接收结果集。

解决方案:1)借助临时表。2)表输入步骤。今天主要讲解表输入。

1、创建一个无参存储过程,脚本中通过select * from t1 返回数据集。脚本如下:

sql 复制代码
use test;
drop procedure if exists sp_without_param1;
delimiter //
create procedure sp_without_param1()
begin
      -- 查询数据集
      select * from t1;
  end //
delimiter ;

拖动取表输入步骤、写日志步骤到画布,表输入步骤sql填写call sp_without_param1,如下图所示:

保存,然后点击运行按钮,存储过程中的数据集被正常打印出来,如下图所示:

2、创建一个只有入参的存储过程,脚本中通过select * from t1 where id=pId;返回数据集。脚本如下:

sql 复制代码
use test;
drop procedure if exists sp_with_param2;
delimiter //
create procedure sp_with_param2(IN pId VARCHAR(255))
begin
      -- 查询数据集
      select * from t1 where id=pId;
  end //
delimiter ;

表输入步骤sql填写call sp_without_param2("1"),保存&点击运行按钮,数据集正常打印。如下图所示:

3、创建一个有入参和出参的存储过程,脚本中通过select * from t1 where id=pId;返回数据集。脚本如下:

sql 复制代码
use test;
drop procedure if exists sp_with_param3;
delimiter //
create procedure sp_with_param3(IN pId VARCHAR(255) ,OUT result VARCHAR(255))
begin
      -- 查询数据集
      select * from t1 where id=pId;
      set result="done";
  end //
delimiter ;

表输入步骤sql填写call sp_without_param3("1",@outputParm)。如下图所示:

使用表输入步骤单独获取out参数,sql为select @outputParam;,如下图所示

保存&点击运行,结果集和out参数正常打印。

相关推荐
心止水j4 小时前
数据采集 案例
数据仓库
lisw0519 小时前
社区数据仓库的可持续连接性!
大数据·数据仓库·人工智能·机器学习
p***434819 小时前
后端在消息系统中的顺序保证
数据库·数据仓库·docker
添加shujuqudong1如果未回复1 天前
FJSP中的波搜索算法(WSA)求解柔性作业车间调度问题及其MATLAB实现
etl
en-route2 天前
维度建模之星型模式(Star Schema)
数据仓库
en-route2 天前
深入理解数据仓库架构:ODS、DWD、DWS 和 ADS 层的定义与应用
大数据·数据仓库
張萠飛2 天前
hive date_format函数有性能瓶颈,有个获取时区的逻辑影响性能,具体原因分析
数据仓库·hive·hadoop
en-route2 天前
深入理解数据仓库设计:事实表与事实宽表的区别与应用
大数据·数据仓库·spark
第二只羽毛2 天前
单例模式的初识
java·大数据·数据仓库·单例模式
李兆龙的博客3 天前
从一到无穷大 #61 Hive史诗
数据仓库·hive·hadoop