快速上手kettle(四)壶中可以倒出些啥?
前言
通过前面的文章中我们对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(四)壶中可以倒出些啥?的更多相关文章
- 快速上手Linux核心命令(四):文件内容相关命令
@ 目录 前言 cat 合并文件或查看文件内容 more 分页显示文件内容 less 分页显示文件内容 head 显示文件内容头部 tail 显示文件内容尾部 tailf 跟踪日志文件 diff 比较 ...
- 【RL-TCPnet网络教程】第3章 初学RL-TCPnet的准备工作及其快速上手
第3章 初学RL-TCPnet的准备工作及其快速上手 俗话说万事开头难,学习一门新的知识,难的往往不是知识本身,而是如何快速上手,需要什么资料和开发环境.一旦上手后,深入的学习就相对容易些 ...
- 快速上手Linux核心命令(五):文本处理三剑客
@ 目录 前言 正则表达式 第一剑客 grep 第二剑客 sed 第三 剑客 awk 小结 剑仙镇楼~ O(∩_∩)O 前言 上一篇中已经预告,我们这篇主要说Linux文本处理三剑客.他们分别是gre ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
- Netron开发快速上手(一):GraphControl,Shape,Connector和Connection
版权所有,引用请注明出处:<<http://www.cnblogs.com/dragon/p/5203663.html >> 本文所用示例下载FlowChart.zip 一个用 ...
- 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
(目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...
- UnityShader快速上手指南(三)
简介 这一篇还是一些基本的shader操作:裁剪.透明和法向量的应用 (纠结了很久写不写这些,因为代码很简单,主要是些概念上的东西) 先来看下大概的效果图:(从左到右依次是裁剪,透明,加了法向量的透明 ...
- 快速上手如何使用FluentData
http://blog.itpub.net/29511780/viewspace-1194048/ 目录: 一.什么是ORM? 二.使用ORM的优势 三.使用ORM的缺点 四.NET下的ORM框架有 ...
- mysql快速上手3
上一章给大家说的是数据库的视图,存储过程等等操作,这章主要讲索引,以及索引注意事项,如果想看前面的文章,url如下: mysql快速上手1 mysql快速上手2 索引简介 索引是对数据库表中一个或多个 ...
随机推荐
- http-server 服务配置跨域
http-server --cors -p 9999 http-server --cors -p 9999 -c-1 (禁用缓存)
- 集合-LinkedList 源码分析(JDK 1.8)
1.概述 LinkedList 是 Java 集合框架中一个重要的实现,其底层采用的双向链表结构.和 ArrayList 一样,LinkedList 也支持空值和重复值.由于 LinkedList 基 ...
- 使用kubeadm初始化IPV4/IPV6集群
使用kubeadm初始化IPV4/IPV6集群 图片 CentOS 配置YUM源 cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kube ...
- [Windows]BAT脚本自定义函数
1 helloworld @echo off call :helloworld helloworld goto :EOF :helloworld setlocal echo %1 endlocal&a ...
- [Windows/Linux]Linux下的正斜杠"/"和"\"的区别 [转载]
执行某一条Linux命令时,遇到了此问题,甚为不解.[文由] 本篇属于全文转载自: Linux下的正斜杠"/"和""的区别 - 博客园 >>> ...
- Nordic nRF52系列/nRF5340硬件设计(一)选型及原理图设计
Nordic 的BLE系列芯片从第一代的nRF51系列,到第二代的nRF52系列,发展到目前最新的第三代的nRF5340.目前市场中使用最多的nRF52系列一共有七款芯片,它们是:nRF52805.n ...
- 添加索引后SQL消耗量在执行计划中的变化
不同索引的执行效率也是不一样的,下面比较三条SQL语句在正常查询与建立普通索引与位图索引后的CPU消耗量的变化,目的为了是加强对索引的理解与运用 实验步骤:1.创建有特点的大数据表.为了保证索引产生前 ...
- C++ 基于libbfd实现二进制加载器
构建工具解析二进制文件,基于libbfd实现,提取符号和节 BFD库 文档参考: LIB BFD, the Binary File Descriptor Library BFD及Binary File ...
- SMBMS超市管理系统(Javaweb项目)
SMBMS超市管理系统(Javaweb项目) 项目环境 jdk 1.8.0_261 mysql 8.0.21 IDEA 2021.2.2 项目架构 数据库 项目源代码 filer 字符编码过滤器 pa ...
- 火山引擎 DataTester:让企业“无代码”也能用起来的 A/B 实验平台
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当数字化变革方兴未艾,无代码正受到前所未有的关注.Salesforce 的数据显示,52%的 IT 部门表示,公司 ...