目录

前言

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

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

能倒出来什么?

一 、kettle 这壶里能倒出啥?

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

具体的可以参照下面截图

-- kettle 加工出来的 -- kettle 加工出来的

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

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

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

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

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

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

二 、Access输出

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

2.1 Access输出设置

2.2 启动转换,查看输出

-- 生成新的Access文件 --

三 、Excel输出

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

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

3.1 选择excel扩展名

--Excel输出 --Microsoft Excel输出

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

-- 新建转换 -- 生成文件

四、JSON output

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

4.1 JSON output设置

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

4.2 生成json文件

-- 生成文件 -- 文件内容

五、SQL文件输出

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

5.1 sql文件输出控件设置

-- 一般设置 -- 内容设置

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

-- 生成文件 -- 备份文件内容

六、表输出

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

6.1 表输出设置

-- 表输出设置 -- 创建表

6.2 启动转换

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

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

-- ①点击编辑 -- ② 设置编码

七 、删除

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

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

-- t_books -- t_books_bak

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

7.1 删除控件设置

7.2 执行转换,查看数据

八、更新

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

我们准备两张表的数据

-- t_br001 -- t_br002

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

-- 表输入设置 -- 更新设置

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

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

-- t_br001 -- t_br002

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

九、插入/更新

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

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

-- t_br001 -- t_br002

9.1 插入/更新 控件设置

-- 表输入设置 --

9.2 执行转换,查看结果

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

十、文本文件输出

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

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

10.1 文本文件输出控件设置

-- csv文本文件设置 -- csv文本文件设置分隔符
-- txt 文本文件设置 --

10.2 启动转换,查看输出

-- --

十一、XML output

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

11.1 xml文件输出设置

-- --

11.2 启动转换,查看输出

-- 生成xml文件 -- xml内容

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

快速上手kettle(四)壶中可以倒出些啥?的更多相关文章

  1. 快速上手Linux核心命令(四):文件内容相关命令

    @ 目录 前言 cat 合并文件或查看文件内容 more 分页显示文件内容 less 分页显示文件内容 head 显示文件内容头部 tail 显示文件内容尾部 tailf 跟踪日志文件 diff 比较 ...

  2. 【RL-TCPnet网络教程】第3章 初学RL-TCPnet的准备工作及其快速上手

    第3章       初学RL-TCPnet的准备工作及其快速上手 俗话说万事开头难,学习一门新的知识,难的往往不是知识本身,而是如何快速上手,需要什么资料和开发环境.一旦上手后,深入的学习就相对容易些 ...

  3. 快速上手Linux核心命令(五):文本处理三剑客

    @ 目录 前言 正则表达式 第一剑客 grep 第二剑客 sed 第三 剑客 awk 小结 剑仙镇楼~ O(∩_∩)O 前言 上一篇中已经预告,我们这篇主要说Linux文本处理三剑客.他们分别是gre ...

  4. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

  5. Objective-C快速上手

    最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...

  6. Netron开发快速上手(一):GraphControl,Shape,Connector和Connection

    版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...

  7. 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)

       (目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...

  8. UnityShader快速上手指南(三)

    简介 这一篇还是一些基本的shader操作:裁剪.透明和法向量的应用 (纠结了很久写不写这些,因为代码很简单,主要是些概念上的东西) 先来看下大概的效果图:(从左到右依次是裁剪,透明,加了法向量的透明 ...

  9. 快速上手如何使用FluentData

    http://blog.itpub.net/29511780/viewspace-1194048/ 目录:  一.什么是ORM? 二.使用ORM的优势 三.使用ORM的缺点 四.NET下的ORM框架有 ...

  10. mysql快速上手3

    上一章给大家说的是数据库的视图,存储过程等等操作,这章主要讲索引,以及索引注意事项,如果想看前面的文章,url如下: mysql快速上手1 mysql快速上手2 索引简介 索引是对数据库表中一个或多个 ...

随机推荐

  1. 免费1年服务器,部署个ChatGPT专属网页版

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 白皮袄个免费1年服务器,部署个ChatGPT专属网页版! api.openai.com por ...

  2. 机器学习基础07DAY

    分类算法之决策树 决策树是一种基本的分类方法,当然也可以用于回归.我们一般只讨论用于分类的决策树.决策树模型呈树形结构.在分类问题中,表示基于特征对实例进行分类的过程,它可以认为是if-then规则的 ...

  3. 教你如何通过CodeArts IDE插件调用API,高效合成语音

    摘要:本实验基于华为云自研CodeArts IDE,指导用户通过使用华为云API,来实现一个文字合成语音的应用. 本文分享自华为云社区<通过CodeArts IDE插件调用API,高效合成语音! ...

  4. PyCharm在Linux安装出现报错-Java Runtime (class file version 55.0)

    在Linux桌面下安装PyCharm的时候出现如下报错 root@ubuntu:~# cd pycharm-community-2021.1.1 root@ubuntu:~/pycharm-commu ...

  5. [VMware]虚拟网络编辑器

    虚拟网络编辑器 Vmware > 编辑 > 虚拟网络编辑器 VMnet0 VMnet0:用于虚拟桥接模式网络下的虚拟交换机 vmnet0: 实际上就是一个虚拟的网桥 这个网桥有很若干个端口 ...

  6. [JAVA/Maven/IDEA]解决JAR包冲突

    1 前言 想必这个问题,诸多同仁都遇到过. 很不凑巧,这段时间咱也屡次撞上这问题好几次了. 因此,实在是有必要说说怎么解决好这问题了0.0 2 诊断:包冲突的异常信息特征 [类定义未发现错误] NoC ...

  7. Python程序笔记20230302

    Alice.Bob 和他们的朋友们 问题主体 密码学家 Rivest.Shamir.Adleman 于1977年4月撰写了一篇论文<数字签名与公钥密码学>(On Digital Signa ...

  8. 使用Python代码远程连接服务器

    目录 一.paramiko模块的介绍 二.基本使用(用户名密码登录) 三.用公钥私钥连接 一.paramiko模块的介绍 模块介绍 使用Python的第三方模块paramiko实现远程连接服务器 功能 ...

  9. DRF版本控制(源码分析)

    DRF中版本控制的五种情况(源码分析) 在restful规范中要去,后端的API中需要体现版本. drf框架中支持5种版本的设置. 1. URL的GET参数传递(*) 示例: user/?versio ...

  10. React 组件进入和退出动画实现

    在实现一个React中的弹框组件时,想给组件加个进入和退出动画,但发现React没有Vue3那样现成的api,因此需要自己设计. 主要思路为给组件添加一个state来选择className,不同的cl ...