首页 > 其他分享 >快速上手kettle(四)壶中可以倒出些啥?

快速上手kettle(四)壶中可以倒出些啥?

时间:2023-06-15 22:48:00浏览次数:25  
标签:输出 控件 -- kettle 出些 设置 上手 数据

目录

前言

通过前面的文章中我们对kettle 这把“” 做了简单介绍,并对“” 里能装些啥也具体说了下。

大家应该对kettle这把壶有了整体的认知,本篇文章我们就来说一说kettle 通过对各种数据加工后,

能倒出来什么?

一 、kettle 这壶里能倒出啥?

启动kettle新建转换-->核心对象-->输出 中我们能看到经过各种加工后也是能倒出来各种五花八门的数据。

具体的可以参照下面截图

-- kettle 加工出来的 -- kettle 加工出来的
image-20230614060505287 image-20230614060525627

一眼看过去很多都能见名知意,文章不一一介绍每个输出控件,我们只挑其中常用控件进行说明。

说明: 前面的文章中,我们没有具体说哪个输入对应着哪个输出,而是分别介绍了常用输入。

因为输入控件 可以和输出控件 进行自由搭配,只要你喜欢就可以进行 Excel输入-->表输出Excel输入-->插入/更新

文本文件输入-->表输出 等等 各种自由搭配

今天为了方便,我们大部分就以表输入 作为输入来一一说明输出控件

表输入配置如下,在配置表之前我们需要配置DB连接(这个在之前文章中说过这里不再赘述)

表输入

二 、Access输出

我们可以将MySQL表中的数据转换成Access输出

Access输出

2.1 Access输出设置

输出设置

2.2 启动转换,查看输出

-- 生成新的Access文件 --
image-20230615075421542 image-20230615075541090

三 、Excel输出

细心的小伙伴可能会发现在输出控件中又两个Excel输出,一个是Excel输出,另一个是Microsoft Excel输出。

它们的区别就是Excel输出只能输出xls文件(适合Excel2003),Microsoft Excel输出可以输出xls和xlsx文件(适合Excel2007及以后)

Excel输出

3.1 选择excel扩展名

--Excel输出 --Microsoft Excel输出
Excel输出 Microsoft Excel输出

3.2 1 将表中数据分别写入到excel中

-- 新建转换 -- 生成文件
image-20230614072545411 image-20230614072627090

四、JSON output

json文件我们之前也说过了,这小节我们要做的就是将MySQL里的数据转换成json文件

json输出

4.1 JSON output设置

-- json输出路径设置 -- 获取字段
image-20230614073615162 image-20230614073757829

4.2 生成json文件

-- 生成文件 -- 文件内容
image-20230614073952273 json文件内容

五、SQL文件输出

将表中的数据转换为sql备份文件

sql文件输出

5.1 sql文件输出控件设置

-- 一般设置 -- 内容设置
sql文件输出设置 内容设置

5.2 启动转换,生成备份文件

-- 生成文件 -- 备份文件内容
image-20230614075413207 image-20230614075505164

六、表输出

表输出控件可以将kettle数据行中的数据直接写入到数据库中的表

表输出控件

6.1 表输出设置

-- 表输出设置 -- 创建表
image-20230614221947832 image-20230614222004255

6.2 启动转换

-- 上一步中点击执行后创建了新表 --新表中插入了数据
image-20230614222909835 image-20230614222922716

注意: 这里有个小坑,如果表字段中包含中文可能会出现乱码。我们需要做如下设置

-- ①点击编辑 -- ② 设置编码
image-20230614223156091 image-20230614223142458

七 、删除

删除控件可以删除数据库表中指定条件的数据,般用此控件做数据库表数据删除或者跟另外一个表数据做对比,然后进行去重的操作

删除控件

接下来我们根据bookid 进行比较,删除目标表t_books_bak 中id在 t_books 中的数据

-- t_books -- t_books_bak
image-20230614231037851 image-20230614231120310

从表中数据我们可以看出 bookid 相同的是 10001,10002,10005 这三条数据

7.1 删除控件设置

删除控件设置

7.2 执行转换,查看数据

重复数据被删除

八、更新

更新是将数据库表中的数据和数据流中的数据做对比,如果不同就更新,如果数据流中的数据比数据库表中的数据多,那么就报错。

表更新

我们准备两张表的数据

-- t_br001 -- t_br002
image-20230614233347750 image-20230614233541665

8.1 根据id,将表一t_br001 中的数据更新到表二t_br002 中

-- 表输入设置 -- 更新设置
image-20230614233844449 image-20230614234245521

8.2 启动转换,更新t_br002 表中的数据

表中数据已更新

注意: 如果数据流中的数据比数据库表中的数据多,如下图所示

-- t_br001 -- t_br002
image-20230614234709409 image-20230614234743749

报错信息

由于更新控件在数据不对等的情况下会报错,所以下一小节中 插入/更新 输出控件做了优化

九、插入/更新

根据条件对数据流和数据库表中的数据进行比较,如果不同就更新,如果数据流中的数据比数据库表中的数据多,就插入

我们就以上一节中的两个表为例子,来进行插入/更新

插入更新

-- t_br001 -- t_br002
image-20230614234709409 image-20230614234743749

9.1 插入/更新 控件设置

-- 表输入设置 --
image-20230614233844449 image-20230614235805446

9.2 执行转换,查看结果

转换完成后,我们发现t_br002 表中根据id比较后更新了一条数据,插入了一条数据

插入更新

十、文本文件输出

将数据输出成文本的控件,我们发现输出控件中没有csv输出控件,其实csv是逗号分隔符的一种文本文件

本小节我们就根据表输入转换输出为txt,csv 文件

文本文件输出

10.1 文本文件输出控件设置

-- csv文本文件设置 -- csv文本文件设置分隔符
image-20230615071312243 image-20230615071416105
image-20230615071744461
-- txt 文本文件设置 --
image-20230615072012332 image-20230615072130869
image-20230615072227724

10.2 启动转换,查看输出

-- --
image-20230615072325975 image-20230615072504360 image-20230615072607087

十一、XML output

本小节我们将表中数据转换为xml文件

11.1 xml文件输出设置

-- --
image-20230615073111269 image-20230615073211272
image-20230615073332802

11.2 启动转换,查看输出

-- 生成xml文件 -- xml内容
image-20230615073430991 image-20230615073600494

本期内容介绍了kettle 的各种输出控件 ,希望对你有所帮助,本期内容就到这,我们下期再见 (●'◡'●)

标签:输出,控件,--,kettle,出些,设置,上手,数据
From: https://www.cnblogs.com/xiezhr/p/17484271.html

相关文章

  • kettle和Flink做ETL的区别
    Kettle和Flink都可以用于ETL(抽取、转换和加载)处理,但它们有一些不同之处。Kettle是一款基于图形化界面的ETL工具,可以通过拖放组件的方式来设计和构建ETL流程。它提供了大量的内置组件和步骤,可以用于处理各种数据源和格式。Kettle的优点是易于使用和学习,适合于小型数据处理任务和快......
  • springboot kettle gralde dockerfile 多阶段构建
    dockerfileFROMopenjdk:8-jdk-alpineASTEMP_BUILD_IMAGEENVENVREFRESH_DATE2023-06-1215:00RUNset-eux&&sed-i's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g'/etc/apk/repositoriesRUNapkupdate&&apkadd--no-cacheb......
  • Zephyr配置系统保姆级上手教程
    本文结合代码演示讲解Zephyr配置系统,代码部分是基于聆思科技的CSK6011ANano开发板配套的SDK。主要分三个部分来讲解:第一部分:zephyr配置系统简介第二部分:介绍Kconfig的常用的基础语法第三部分:通过简单的示例工程演示应用配置zephyr配置系统简介构建流程来了解一下zephyr的一个配置......
  • Kettle - 核心概念
     可视化编程转换    可视化编程kettle可以被归类为可视化编程语言(VisulaProgrammingLanguages,VPL),因为Kettle可以使用图形化的方式定义复杂的ETL程序和工作流。可视化编程一直是Kettle里的核心概念,它可以让你快速构建复杂的ETL作业和减低维护工作量。它通过隐......
  • Kettle - hello world
     Kettle下载页面:点这里Kettle版本:pdi-ce-9.4.0.0-343  流程概览  详细步骤1、首先打开Kettle的Spoon.bat2、在主对象树中选择转换3、然后在核心对象的输入中找到CSV文件输入并拖拽到右侧的转换1中,在输出中找到MicrosoftExceloutput并拖拽到右侧的转换1中4......
  • [Animations] 快速上手 iOS10 属性动画
    概述今天要说的UIViewPropertyAnimator,是iOS10新的API详细基础动画,核心动画到自定义转场动画其实都不是什么新东西了,所以我也是草草看一遍就能够读个大概,但今天要说的UIViewPropertyAnimator,是iOS10新的API,其他的好处我还不太清楚,但抽象动画逻辑和监控......
  • 手把手教你用Python做一个图像融合demo,小白可上手!
    1.创作背景说到融合,一下子会让我们这些95后想起来童年的动漫游戏王了!发动魔法卡——融合!哈哈,今天说得当然不是游戏王里的魔法了,但是我们使用的是Python魔法,今天我们将使用Python编程语言,以及自带的图像处理工具包进行图像融合操作,来实现图像融合的酷炫效果!前几天在网上看了一个dem......
  • Kettle连接MySQL报错:Driver class 'org.gjt.mm.mysql.Driver' could not be found, ma
    在Windows系统里面安装kettle后打算连接MySQL的时候突然报错错误连接数据库[wanghui]:org.pentaho.di.core.exception.KettleDatabaseException:ErroroccurredwhiletryingtoconnecttothedatabaseDriverclass'org.gjt.mm.mysql.Driver'couldnotbefound,mak......
  • Kettle - 概述
    【官网】|【历史版本】   ETL简介Kettle简介transformation和job的区别      ETL简介ETL,Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程。市面上常用的ETL工具有很多,比如Sqoop,DataX,Kettle,Talend等。  Kettle简介Kettle是一款国外......
  • 【20230607】【用Python让Excel飞起来】 第一章 python 快速上手 I
    001安装Anacondaanaconda.com直接下载,然后安装记得安装的时候将path和link.py点上,不然回头去配置环境变量有一些麻烦如何判断成功安装在CMD中输入conda-V即可查看002安装配置pycharm直接安装即可,官网下载,然后安装注意pycharm的pro版本是收费的,edu邮箱可以免费1年......