ETL工具 Kettle 中怎么通过变量传参

第一章 ETL工具 Kettle 中怎么通过变量传参

文章目录


前言

作为一个数据产品经理,什么都要会点,今天就说下 Kettle ,大企业的数据开发职位用的会比较多。但 Kettle 核心对象用的最频繁 不会超过 10个

一般主要 有2种

转换 : 表输入,表输出 ,执行 sql 脚本 ,邮件(提醒),变量(传参)。

作业: start ,作业,转换,成功。

下面我来举个例子我最简单的方法告诉大家

太基础的我就不说了,本示例请先安装好 Kettle(8.0以上版本) 和MySQL 数据库

一、新建示例用的表

c 复制代码
请在mysql 下执行 

 drop table movies
 drop table ods_movies
  
CREATE TABLE `movies` (
  `yyyy_mm_dd` Date DEFAULT NULL,
  `movies_name` varchar(50) DEFAULT NULL,
  `total_gross` double DEFAULT NULL,
  `currency` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

CREATE TABLE `ods_movies` (
  `yyyy_mm_dd` Date DEFAULT NULL,
  `movies_name` varchar(50) DEFAULT NULL,
  `total_gross` double DEFAULT NULL,
  `currency` varchar(50) DEFAULT NULL,
  `etl_time` Datetime DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

insert into movies(yyyy_mm_dd,movies_name,total_gross,currency)
values 
('2019/7/1','《复仇者联盟:终局之战》','2885000000','USD'),
('2015/12/1','《星球大战:原力觉醒》','2486000000','USD'),
('2019/12/1','《星球大战:天行者崛起》','1085000000','USD'),
('2018/6/1','《超人总动员2》','1243000000','USD'),
('2016/11/1','《海底总动员2:多莉去哪儿》','1053000000','USD'),
('2017/3/1','《美女与野兽》','1263000000','USD'),
('2019/9/1','《狮子王》','1106000000','USD'),
('2019/8/1','《美国队长3:内战》','1157000000','USD'),
('2018/2/1','《黑豹》','1345000000','USD')

说明:如果要用 MYSQL 8.0建立数据仓库 建议表引擎用ENGINE=MyISAM ,原理这里就不说的,懂的都懂。😃

二、使用

1.新建转换-时间变量

2.转换中加入表输入


c 复制代码
select yyyy_mm_dd as 'cur_day' from movies where yyyy_mm_dd='2019-07-01'
///这里将字段名先设置为 cur_day

3.设置变量


这个将 变量名设置为 CUR_DAY
变量活动类型设置为 :Valid in the Java Virtual Machine

4.变量设置完成

5.再新建转换-传参数插入表

拖入 表输入和 表输出

6.传参数插入表-表输入

c 复制代码
select yyyy_mm_dd,movies_name ,total_gross ,currency ,
now() as 'etl_time'
from movies where yyyy_mm_dd='${CUR_DAY}'

替换SQL语句里的变量这个很重要已经要勾上

7.传参数插入表-表输出

目标表 ods_movies

目标是 将 movies表数据输出到 ods_movies表中

8.新建作业

在通用里面拖入 3个对象,

9.执行作业和保存



10.数据库结果

总结

以上就是今天要讲的内容,本文仅仅简单介绍了变量的基础使用。希望可以帮助到 一些朋友。

相关推荐
用户36105886261214 分钟前
SparkStreaming 之 Kafka 与 SparkStreaming 参数配置详解
大数据·spark
浔溺14 分钟前
al+大数据每日学习笔记31
大数据·笔记·学习
山岚的运维笔记21 分钟前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba
Raas10029 分钟前
AI网关和大模型网关区别?MAI Gateway(魔芋企业级AI网关)如何实现AI流量统一治理
大数据·人工智能·gateway·ai网关·mai gateway·企业级产品
聚美智数32 分钟前
网安查询-备案查询-网络安全查询API接口介绍
网络·数据库·web安全
坐吃山猪1 小时前
【多线程】Semaphore使用
java·数据库·oracle·多线程
数智启示录1 小时前
PostgreSQL 内存调优实战(第 12 篇):work_mem 只调大 64 倍,峰值为什么远不止 64 倍
运维·数据库·经验分享·postgresql·面试
DO_Community1 小时前
AMD旗舰GPU仅需4美元每小时,DigitalOcean上线Spot GPU实例
大数据·人工智能·agent·ai编程
2601_962077981 小时前
利用Python,四步掌握机器学习
python·机器学习·数据挖掘·数据分析·编程
有书Show2 小时前
GEO发稿平台哪家好:2026生成式引擎优化新规下的平台评估维度
大数据·人工智能