
ETL-Kettle
文章平均质量分 54
ETL专栏,主要介绍Kettle常见组件的使用案例。
代码与脚本见https://codechina.csdn.net/shenliang1985/ETL-Kettle
ShenLiang2025
『沈亮』_聚焦数据科学领域的技术研究与实践,擅长数据库开发、ETL、数据仓库、大数据、数据分析、机器学习、基础数学等方向。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kettle REST Client获取token调用接口解析JSON入文件实战
Kettle REST Client获取token调用接口解析JSON入文件完整实例原创 2023-09-18 22:48:03 · 3353 阅读 · 0 评论 -
Kettle lookup 流查询组件关键词匹配应用案例
Kettle 流查询组件lookup应用案例详解。原创 2023-08-10 16:37:03 · 777 阅读 · 0 评论 -
基于Kettle跑批参数传递的案例
Kettle跑批的案例说明,参数传递配置原创 2023-04-05 08:17:50 · 2235 阅读 · 0 评论 -
Kettle使用_31 CSV文件输入跳过前几(首)行之过滤记录
Kettle使用_31 CSV输入结合过滤记录需求:对csv文件输入不在第一行的情况进行数据装载,这里假定数据在第6行。解决方法:通过CSV文件输入结合过滤记录组件,即在CSV文件输入里指定行号,在过滤记录里通过条件刷选记录并输出到文件或者数据库内。#Ⅱ 步骤-Step by Step-- 1 准备给csv文件,内容见下,列分隔符是制表符即"\t"(可以是任意单字符分隔符),行分隔符是换行("LF")。12 36 7817 91 1624 83 5014 ...原创 2021-07-28 11:08:50 · 2281 阅读 · 1 评论 -
Kettle转换作业50个案例代码
Kettle转换作业应用案例本文是Kettle转换作业微案例相关的脚本(代码)及注释的说明。本项目旨在技术交流与学习,由于本人能力有限,代码中难免有些错误,欢迎留意、私信反馈给我,希望对你有所帮助。Kettle 50个实用例子3.1代码地址CodeChinaGithub3.2项目简介内容简介:该案例代码是围绕Kettle常见组件(覆盖95%)的实用案例,共50个ktr、kjb。兼容版本:Kettle8.2、Kettle9...原创 2021-02-23 10:49:11 · 7032 阅读 · 18 评论 -
Kettle使用_30 作业里使用参数
Kettle使用_30 作业里使用参数需求:通过Kettle对作业、转换进行参数传递解决方法:通过环境变量、命名参数、获取系统信息、获取变量等组件对转换进行传值。Step1:新建个作业Step2:拖个开始组件,在作业的通用分类下。Step3:拖个设置变量组件,通过SHIFT连接开始组件与当前组件,同时配置该组件见下:Step4:拖个转换,并SHIFT连接设置变量与该组件,转换组件主要配置要连接的转换的路...原创 2021-02-03 16:20:43 · 596 阅读 · 0 评论 -
Kettle使用_29 转换里使用参数
Kettle使用_29 转换里使用参数需求:通过Kettle对转换进行参数传递解决方法:通过环境变量、命名参数、获取系统信息、获取变量等组件对转换进行传值。Previous work:这里通过参数组件直接结合文本文件输出的方式展示,实际使用时结合自己的转换即可。方法一 环境变量Step1:新建个转换。Step2:设置环境变量,详细步骤见下:Step3:GUI调用,见方法三 命名参数里的step2,在获取变量里直接获...原创 2021-02-03 11:30:41 · 1511 阅读 · 0 评论 -
Kettle使用_28 转换之数值范围与字符串操作
Kettle使用_28 转换之数值范围与字符串操作需求:通过Kettle将score字段进行去重、数值范围转换,对字段进行字符串操作(去除空格、改成大写、字符串替换)解决方法:通过去除重复记录、数值范围、字符串操作、增加常量、字符串替换等组件来实现。Step1:新建个转换Step2:拖个自定义常量组件,初始化结构和数据见下:元数据定义:数据内容:Step3:拖个去除重复记录组件,SHIFT连接自定义常量...原创 2021-01-26 16:27:31 · 2171 阅读 · 1 评论 -
Kettle使用_27 行转列与列转行方法汇总
Kettle使用_27 行转列与列转行方法汇总需求:通过kettle实现行列转换与列转行。解决方法:主要通过排序记录、行专列、列转行、行扁平化组件解决。Previous work:这里的数据是学生成绩数据和员工数据,内容见下:多行的数据见下:Name key Subject Result张冠 0 语文 73张冠 1 数学 83张冠 2 物理...原创 2021-01-26 13:00:15 · 2415 阅读 · 1 评论 -
Kettle使用_26 根据增删改标识处理数据
Kettle使用_26 根据增删改标识处理数据需求:已知数据的状态标签(insert、update、delete)利用kettle对其进行相应的操作。解决方法:主要通过过滤记录组件来解决如上问题。Previous work:数据库(以mysql为例)里准备源数据,表结构与数据见下:DROP TABLE tb_user;CREATE TABLE tb_user(id integer,name varchar(12...原创 2021-01-25 21:18:00 · 1005 阅读 · 0 评论 -
Kettle使用_25 改变文件编码压缩与邮件
Kettle使用_25 改变文件编码压缩与邮件需求:通过Kettle实现文本文件编码的改写(GBK到UTF-8),复制后压缩并记录执行日志,最后将该压缩文件以附件形式发送出去。解决方法:通过获取文件名、改变文件编码、处理文件、压缩文件、写日志、Java Script脚本、发送文件等组件来实现。其中Java Script脚本主要是定义变量,方便引用。注:本部分应用的组件主要位于转换的应用分类下。Step1:新建...原创 2021-01-25 15:29:11 · 984 阅读 · 2 评论 -
Kettle使用_24 Kettle输入输出组件汇总
Kettle使用_24 Excel输入输出组件汇总需求:通过Kettle实现对文本文件、固定宽度文件输入、表输入、XML数据输入、JSON数据输入、表输入等输入和相应的输出。解决方法:通过文本文件、固定宽度文件输入、表输入、XML数据、JSON数据、表输入、文本文件输出、固定宽度文件输出、表输出、XML数据输出、JSON数据输出、表输出组件来实现,该组件支持如上Excel引擎。Previous work:这里的数...原创 2021-01-25 12:45:32 · 827 阅读 · 0 评论 -
Kettle使用_23 Excel表格输入ODS POI
Kettle使用_23 Excel表格输入ODS POI需求:通过Kettle实现对Open Office ODS、Excel 97-2003、Apache POI、Excel 2007 XLSX等表格格式的解析。解决方法:通过Exel输入组件来实现,该组件支持如上Excel引擎。Previous work:这里的数据是Excel97-2003格式(xls),内容见下:Step1:新建个转换...原创 2021-01-25 10:39:12 · 472 阅读 · 0 评论 -
Kettle使用_22 维度更新 缓慢变化维 拉链表
Kettle使用_22 维度更新 Type2 拉链表需求:通过Kettle实现对员工维度数据的更新和插入。解决方法:通过维度查询更新组件实现。Previous work:准备源数据和维度表结构与数据。Slow Changing Dimensions(SCD 缓慢变化维)即数据仓库里的Type2数据仓库里维度的变化较慢,常用的有三类,分别为:Type1:cust_id name...原创 2021-01-24 20:44:10 · 1728 阅读 · 0 评论 -
Kettle使用_21 分组与分析窗口函数
Kettle使用_21 分组与分析窗口函数需求:通过Kettle实现对数据的统计分析(排序、统计)。解决方法:通过Kettle的自定义常量数据、分组、排序记录组件来解决。Step1:新建个转换Step2: 拖个自定义常量数据组件,该组件位于转换的输入分类下。Step3:配置自定义常量数据组件。元数据定义:数据:Step4:拖个排序组件,SHIFT连接自定义常量组件,配置如下:Step5...原创 2021-01-23 20:08:37 · 2993 阅读 · 0 评论 -
Kettle使用_20 笛卡尔积与前一行后一行Lead Lag
Kettle使用_20 笛卡尔积与前一行后一行Lead Lag需求:通过Kettle通过两种数据源(其中一个是随机数)实现120条记录并生成两列,分别对应每条记录的前一行和后一行。解决方法:通过Kettle的生成记录、增加序列、生成随机数、关联(笛卡尔积)、前后行查询组件来解决。Step1:新建个转换Step2: 拖个生成记录组件,(该组件位于转换的输入分类下),配置如下:Step3: 拖个增加序列组件,(该组件位于...原创 2021-01-23 19:38:55 · 516 阅读 · 4 评论 -
Kettle使用_19 HTTP Client与XML JavaSript解析
Kettle使用_19 HTTP Client与XML JavaSript解析需求:通过Kettle实现http://mirrors.163.com/centos/7/os/x86_64/repodata/repomd.xml的远程访问并将数字类型的timestamp解析为时间类型。解决方法:通过Kettle的生成记录、HTTP Client、XML文件输入、选择改名值、JAVA Script组件来解决。其中HTTP Client负责接口的调用,X...原创 2021-01-23 16:24:58 · 727 阅读 · 1 评论 -
Kettle使用_18 分组组件计算百分位数
Kettle使用_18 分组组件计算百分位数需求: 通过Kettle的组件对emp的sal字段计算百分之25、50、75、90数。解决方法:结合表输入、排序记录、分组组件解决,这里主要是通过应用分组组件的Percentile方法来解决。Previous work:准备员工emp表结构和数据(mysql)。create table emp( empno int unsigned auto_increment COMMENT...原创 2021-01-23 13:48:14 · 984 阅读 · 0 评论 -
Kettle使用_17 计算器生成时间维度数据
Kettle使用_17 计算器生成时间维度数据需求: 通过Kettle的组件自动生成时间维的数据。解决方法:结合增加序列、计算器、选择字段等组件解决,这里主要是通过计算器里的支持的计算类型来实现的,这里的时间维一般包括年、月、日、所在周、年所在周、月所在周、周所在日等。Step1: 新建个转换。Step2: 拖个生成记录组件,该组件位于转换的输入分类下。Step3:配置生成记录组件。Step4:拖增加序列组件,该...原创 2021-01-22 16:05:57 · 1435 阅读 · 0 评论 -
Kettle使用_16 闭包Closure Generator树形数据
Kettle使用_16 闭包Closure Generator树形数据需求: 通过Kettle的组件实现对树形结构数据的深度(层次)的生成。解决方法:结合闭包Closure Generator、排序等组件解决。Previous work:准备树形数据(以公司组织架构为例)。 parent_id id name role 1 ...原创 2021-01-22 11:23:59 · 750 阅读 · 0 评论 -
Kettle使用_15 文件操作复制文件到结果
Kettle使用_15 文件操作复制文件到结果需求: 通过Kettle的组件实现文件夹下所有文件的复制到另外个文件夹。解决方法:结合获取文件名、复制文件名到结果、执行作业、添加到结果文件列表、复制/移动结果文件组件解决。Step1: 新建个转换。Step2: 拖个获取文件名到转换里,该组件位于转换的输入分类下。Step3:配置获取文件名组件:Step4:拖动个复制文件名到结果组件,并通过SHIFT...原创 2021-01-21 20:37:50 · 4342 阅读 · 0 评论 -
Kettle使用_14 文件操作复制移动删除结合JS
Kettle使用_14 文件操作复制移动删除结合JS需求: 通过Kettle的组件实现文件夹下所有文件的复制和重命名。比如:将文件名1快乐成语001【持之以恒】.mp3 重命名为001持之以恒.mp3解决方法:结合获取文件名、Javascript脚本和处理文件组件解决。注:同理我们可以对文件进行移动、删除操作,详见文末的补充部分。Previous work:准备数据(这里是5个mp3文件)。Step1: 新建个转换。...原创 2021-01-20 17:24:51 · 3080 阅读 · 1 评论 -
Kettle使用_13 表输入并发运行与复制数量
Kettle使用_13 表输入并发运行与复制数量需求: 通过并行方式完成事实表sales_fact_1998(该表有约16万条记录)到文本的输出。解决方法:结合表输入和文件文本输出组件解决,这里需要同时设置表输入、文本文件输出组件的复制数量。Previous work:准备FoodMart数据库并初始化数据。其中建表语句见下:CREATE TABLE `sales_fact_1998` ( `product_id...原创 2021-01-20 13:51:33 · 2760 阅读 · 1 评论 -
Kettle使用_12 CSV文件仅并发运行与复制数量
Kettle使用_12 CSV文件仅并发运行与复制数量需求: 通过并行方式完成customers-100.txt的文本输出。解决方法:结合CSV文本输入和文件文本输出组件解决,这里需要设置CSV文本输入的并行运行以及组件的复制数量。说明:1 总体步骤参考:Kettle使用_11 CSV文件并行读写复制数量2 这里需要勾选CSV文本输入组件的 并发执行和复制数量选项(详见Step3、Step7),文件文本输出组件则不需要填写复制数量。P...原创 2021-01-20 11:53:31 · 643 阅读 · 1 评论 -
Kettle使用_11 CSV文件输入输出复制数量
Kettle使用_11 CSV文件与并行读写复制数量需求: 通过并行方式完成customers-100.txt的文本输出。解决方法:结合CSV文本输入和文件文本输出组件解决,这里需要设置组件的复制数量。Previous work:准备并下载customers-100.txt数据到指定的目录(如F:\KettleWorkSpace\KettleInput\files\customers-100.txt),数据详见下: 链接:https://pan.baidu...原创 2021-01-20 11:27:03 · 1006 阅读 · 0 评论 -
Kettle使用_10 存储过程与命名参数
Kettle使用_10 存储过程与命名参数需求: 通过传递给kettle位置参数的方式执行存储过程。其中存储过程的需求是往tb_user(字段user_id, name)里插入一条记录(覆盖式,即有则删除;参数是用户id和用户名)。解决方法:结合获取变量(设置参数名)和DB存储过程(指定数据库连接和参数)组件解决。Step1:新建一个转换。Step2:拖一个获取变量组件到转换,该组件位于转换的作业分类下。Step3:配置获取变量组件...原创 2021-01-19 15:03:50 · 718 阅读 · 0 评论 -
Kettle使用_9 存储过程与设置变量
Kettle使用_9 存储过程与设置变量需求: 通过传递给kettle位置参数的方式执行存储过程。其中存储过程的需求是往tb_user(字段user_id, name)里插入一条记录(覆盖式,即有则删除;参数是用户id和用户名)。解决方法:结合设置变量(设置参数名)和DB存储过程(指定数据库连接和参数)组件解决。Step1:新建一个转换。Step2: 拖动一个表输入或者自定义常量组件到转换里,该组件位于转换的输入分类下。Step3:...原创 2021-01-19 14:34:24 · 1354 阅读 · 0 评论 -
Kettle使用_8 存储过程结合获取系统信息
Kettle使用_9 获取存储过程结合系统信息需求: 通过传递给kettle位置参数的方式执行存储过程。其中存储过程的需求是往tb_user(字段user_id, name)里插入一条记录(覆盖式,即有则删除)。解决方法:结合获取位置信息(设置参数名)和DB存储过程(指定数据库连接和参数)组件解决。Step1:新建一个转换。Step2: 拖动一个获取位置信息到转换里,该组件位于输入分类下。Step3:配置获取系统信息组件(...原创 2021-01-19 10:14:19 · 618 阅读 · 0 评论 -
Kettle使用_7 数据校验组件应用
Kettle使用_8 数据校验组件应用需求:通过数据校验组件完成数据字段、长度、类型、字段是否为空、字段是否在指定的范围内的检验 统计出错误的个数(错误类型的个数) 能根据错误个数做流程终止的控制。解决方法:通过数据校验组件结合分组统计、过滤记录和终止流程组件来完成。场景一:字段最大长度检验Step1: 拖动一个自定义常量组件(字段是name,类型是string,数据见下图)到转换并Step2...原创 2021-01-18 18:45:53 · 5749 阅读 · 0 评论 -
Java结合POI清洗Excel
Java结合POI清洗Excel下文是Java结合POI清洗Excel的示例代码,详细内容如下:ShipEntry.javapackage com.liang.bi.excelmodel;public class ShipEntry {private String sheetid; ...原创 2019-12-10 10:52:40 · 1654 阅读 · 0 评论 -
Kettle使用_5 结合js的数据处理与SetVariable设置动态表输入
需求:熟悉JS脚本在kettle数据处理的应用解决方法:结合Generate Rows(数据生成)和Java Script Value(JS组件)及文本输入组件完成该功能1):拖动一个数据生成组件,并填充数据2):拖动一个Java Script Value(JS组件),补充如下JS代码并获取变量3):拖动一个文本文件输出,选择要输出的目录 4):完成流程示意,此步骤在step2...原创 2018-04-21 09:52:29 · 6339 阅读 · 1 评论 -
Kettle使用_4 Excel批量数据输入
需求:批量导入格式统一的excel文件到表中解决方法:借助Excel输入和正则表达式以及表输入组件完成该功能1)拖个Excel输入组件并按照下图示意操作: 2)拖个表输出组件并按照下图示意操作: 3)完整示意: ...原创 2018-04-21 09:49:11 · 3878 阅读 · 1 评论 -
Kettle使用_3变量替换之获取系统信息与命名参数
需求:SQL里定义动态的变量并能替换变量的值后将数据导入到文本文件中解决方法:通过获取系统信息组件和SQL替换变量的参数来完成该功能1) 新建转化,将结合获取系统信息、表输入、输出到文本文件的组件并命名转换为tran_kettleval2)新建job并保持名字为job_para2,保存时对命令行参数进行赋值,见下: 3)运行job,见下:1)查看运行结果: ...原创 2018-03-18 09:52:32 · 5979 阅读 · 2 评论 -
Kettle使用_2变量替换之设置标量
需求:在SQL里定义动态的变量并能替换变量的值后将数据导入到文本文件中解决方法:通过设置变量组件和SQL替换变量的参数来完成该功能1) 新建转化,将表输入到文本文件中并命名转换为tran_kettleval2) 新建作业,拖动变量设置和转换组件并将组件串在一起,具体见下图:3)点击执行定义好的job,并查看执行结果:通过结果不难看到,这里选择出来的是ID大于2且小于4的记录,也就是ID...原创 2018-03-17 19:14:02 · 6938 阅读 · 0 评论 -
Kettle使用_6 配置资源库
Kettle7 配置资源库需求:将kettle里的流程保存在数据库中.解决方法:通过Kettle自带的资源库解决该问题.1) 打开Kettle7.1点击右上角选择资源管理菜单2) 接上图按照提示选择资源库并配置.这里演示的是配置在mysql数据库中.3)接Kettle使用_1转换之错误处理章节配置个流程,见下图示意:4) 资源库里验证配置的转换及其关系,通过如下SQL可以清晰的看到当...原创 2018-03-15 22:43:44 · 2519 阅读 · 0 评论 -
Kettle使用_0 Windows下安装图解
Kettle7 Windows安装图解1 Kettle 7简介Data Integration (or Kettle) delivers powerfulExtraction, Transformation, and Loading (ETL) capabilities, using agroundbreaking, metadata-driven approach.简单翻译过来的大概意思是:K...原创 2018-03-11 23:28:47 · 4935 阅读 · 0 评论 -
Kettle使用_1转换之错误处理
需求:通过kettle配置数据转换失败的日志记录.解决方法:通过表输入、表输出、文本文件输出等组件完成该功能.1) 配置数据库连接,这里输入连接名、主机名称、数据库名称、数据库用户名、密码等数据库的基本信息2) 新建立个转换,或者通过快捷键Ctrl+N建立3) 在核心对象里找到输入这个分类,然后下拉找到表输入组件4)定位到表输入这个组件并将其拖放到右边的面板中5)双击表入组件,对组件相应...原创 2018-03-14 23:19:24 · 15235 阅读 · 3 评论