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参数正常打印。

相关推荐
liupenglove6 小时前
自动驾驶数据仓库:时间片合并算法。
大数据·数据仓库·算法·elasticsearch·自动驾驶
LucianaiB2 天前
AI 时代的分布式多模态数据处理实践:我的 ODPS 实践之旅、思考与展望
大数据·数据仓库·人工智能·分布式·odps
༺水墨石༻2 天前
低版本hive(1.2.1)UDF实现清除历史分区数据
数据仓库·hive·hadoop
Leo.yuan3 天前
数据清洗(ETL/ELT)原理与工具选择指南:企业数字化转型的核心引擎
大数据·数据仓库·数据挖掘·数据分析·etl
isNotNullX3 天前
实时数仓和离线数仓还分不清楚?看完就懂了
大数据·数据库·数据仓库·人工智能·数据分析
Leo.yuan3 天前
数据分析师如何构建自己的底层逻辑?
大数据·数据仓库·人工智能·数据挖掘·数据分析
梦想画家5 天前
数据仓库:企业数据管理的核心枢纽
数据仓库
梦想画家6 天前
数据仓库中的代理键:概念、应用与实践指南
数据仓库·代理键·缓慢维度变化
zhuiQiuMX7 天前
脉脉maimai面试死亡日记
数据仓库·sql·面试
面朝大海,春不暖,花不开8 天前
使用 Python 实现 ETL 流程:从文本文件提取到数据处理的全面指南
python·etl·原型模式