上一篇文章我们介绍了一下Kettle以及Kettle的安装部署,本文我们来具体看几个例子,看看Kettle是怎样使用的。使用示例我们基于Windows安装的Kettle进行演示说明。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~


目录

一、案例一:把stu1的数据按id同步到stu2,stu2有相同id则更新数据。

二、案例二:使用作业执行上述转换,并且额外在表stu2中添加一条数据。

三、案例三:将Hive表的数据输出到HDFS。

四、案例四:读取HDFS文件并将sal大于1000的数据保存到HBase中。

五、Kettle调优


一、案例一:把stu1的数据按id同步到stu2,stu2有相同id则更新数据。

1、需求

把stu1的数据按id同步到stu2,stu2有相同id则更新数据。

2、在MySQL中创建两张表并插入一些数据

create table stu1(id int,name varchar(20),age int);
create table stu2(id int,name varchar(20));insert into stu1 values(1001,'xzw',20),(1002,'fq',18), (1003,'yxy',23);
insert into stu2 values(1001,'lyq');

3、在kettle中新建转换

4、分别在输入和输出中拉出表输入和插入/更新

5、双击表输入对象,填写相关配置信息。

6、双击更新/插入对象,填写相关配置信息

7、保存转换,运行

8、在MySQL中查看运行结果,发现已经完成了数据的同步。

二、案例二:使用作业执行上述转换,并且额外在表stu2中添加一条数据。

1、需求

使用作业执行上述转换,并且额外在表stu2中添加一条数据。

2、新建作业

3、拉取相关组件,如下图所示。

4、双击start编辑start

5、双击转换,选择案例一保存的文件。

6、双击SQL,编辑SQL语句。

7、保存执行,查看MySQL中的结果

三、案例三:将Hive表的数据输出到HDFS。

1、需求

将Hive表的数据输出到HDFS。

2、修改配置文件

(1)修改解压目录data-integration\plugins\pentaho-big-data-plugin下的plugin.properties。

active.hadoop.configuration=hdp26

(2)将下面的配置文件拷贝到data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26目录下。

3、启动Hadoop集群以及相关组件,启动hiveserver2功能

[root@master hive]# bin/hiveserver2

进入beeline:

[root@master hive]# bin/beeline
Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:hive2://master:10000
Connecting to jdbc:hive2://master:10000
Enter username for jdbc:hive2://master:10000: root
Enter password for jdbc:hive2://master:10000: ********
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://master:10000> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| default        |
| xzw            |
+----------------+--+
2 rows selected (1.66 seconds)
0: jdbc:hive2://master:10000>

4、创建两张表并导入数据

CREATE TABLE dept(deptno int, dname string,loc string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';CREATE TABLE emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm int,
deptno int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';insert into dept values(10,'accounting','NEW YORK'),(20,'RESEARCH','DALLAS'),(30,'SALES','CHICAGO'),(40,'OPERATIONS','BOSTON');insert into emp values
(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),
(7499,'ALLEN','SALESMAN',7698,'1980-12-17',1600,300,30),
(7521,'WARD','SALESMAN',7698,'1980-12-17',1250,500,30),
(7566,'JONES','MANAGER',7839,'1980-12-17',2975,NULL,20);

5、建立流程图

6、设置表输入,连接Hive。

7、设置排序属性

8、设置连接属性

9、设置字段选择

10、设置文件输出

(1)编辑HDFS连接

(2)配置内容、字段等等

11、保存并测试

四、案例四:读取HDFS文件并将sal大于1000的数据保存到HBase中。

1、需求

读取HDFS文件并将sal大于1000的数据保存到HBase中。

2、首先在HBase中创建一张用于存放数据的表

3、建立流程图

4、设置文件输入,连接HDFS

5、设置过滤记录

6、设置HBase输出

(1)设置映射

(2)连接参数

7、保存并测试

五、Kettle调优

1、修改Kettle根目录下的Spoon脚本,调整JVM大小进行性能优化。

1、-Xmx2048m:设置JVM最大可用内存为2048M。
2、-Xms1024m:设置JVM促使内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
3、-Xmn2g:设置年轻代大小为2G。整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
4、-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

2、调整提交(Commit)记录数大小进行优化,Kettle默认Commit数量为:1000,可以根据数据量大小来设置Commitsize:1000~50000。

3、尽量使用数据库连接池。

4、尽量提高批处理的commit size。

5、尽量使用缓存,缓存尽量大一些(主要是文本文件和数据流)。

6、Kettle是Java做的,尽量用大一点的内存参数启动Kettle。

7、可以使用sql来做的一些操作尽量用sql。

8、插入大量数据的时候尽量把索引删掉。

9、尽量避免使用update、delete操作,尤其是update,如果可以把update变成先delete后insert。

10、能使用truncate table的时候,就不要使用deleteall row这种类似sql合理的分区,如果删除操作是基于某一个分区的,就不要使用delete row这种方式(不管是deletesql还是delete步骤),直接把分区drop掉,再重新创建。

11、尽量缩小输入的数据集的大小(增量更新也是为了这个目的)。

12、尽量使用数据库原生的方式装载文本文件(Oracle的sqlloader、mysql的bulk loader步骤)。

以上就是本文的所有内容,比较简单。你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了哪些问题~

七十八、Kettle的几个使用案例相关推荐

  1. JavaScript学习(七十八)—实现对数据的浅拷贝和深拷贝

    JavaScript学习(七十八)-实现对数据的浅拷贝和深拷贝 一.浅拷贝 浅拷贝:对于引用类型的数据只拷贝该数据的地址,这种拷贝称为浅拷贝 注意:拷贝出来的数据和原有的数据指向同一个空间,即他们操作 ...

  2. 中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八-->12345678)

    昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2-十换成10.可是那么问题来了- 一十二呢-不能是11 ...

  3. 七十八首适合相册视频的背景音乐

    七十八首适合相册视频的背景音乐 转载▼ 记得初次接触相册视频制作时,没有意识到音乐的重要性,胡乱添加自己喜欢的音乐,结果很多时候相册总给人的感觉"不搭配",没法提起兴致继续下去. ...

  4. “任性”华为 | 七十八岁老人的“四渡赤水”(二)

    导读 华为是一家"任性"的企业--因为任正非将自己的性格赋予了华为--在企业前进的每一个路口,都会看见这种性格的印记. 2022年12月,当美国总统拜登出现在凤凰城出席台积电工厂迁 ...

  5. 七十八、 回溯法解决八皇后问题

    @Author:Runsen 八皇后问题 八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后. 来自百度百科,皇后的走法是可 ...

  6. 真题详解(数字签名算法)-软件设计(七十八)

    真题详解(有限自动机)-软件设计(七十七)https://blog.csdn.net/ke1ying/article/details/130748759 可用于数字签名算法的是_____. 答案:非对 ...

  7. Java程序员从笨鸟到菜鸟之(七十八)细谈Spring(七)spring之JDBC访问数据库及配置详解

    利用spring访问数据库是我们ssh程序中必不可少的步骤,在没有hibernate之前,我们一般都用jdbc访问数据库,所以用jdbc访问数据库必不可少的要进行一些配置,spring中为我们提供了访 ...

  8. 七十八、Antd 实现 TodoList 页面布局和Redux入门

    2020/11/20. 周五.今天又是奋斗的一天. @Author:Runsen React,相比于Vue,React更加灵活,但是对JavaScript基础的要求也更高一些.我继续学习React A ...

  9. 七十八、SpringBoot监听rabbitmq和创建交换器,队列

    @Author:Runsen 来源:尚硅谷 下面建议读者学习尚硅谷的B站的SpringBoot视频,我是学雷丰阳视频入门的. 具体链接如下:B站尚硅谷SpringBoot教程 文章目录 AmqpAdm ...

最新文章

  1. 吴恩达,45岁生日快乐!提出著名二八定律:80%数据+20%模型=更好的AI
  2. 深入理解计算机系统-之-内存寻址(四)--linux中分段机制的实现方式
  3. webclient 和 webrequest获取网页源码的
  4. 用Heartbeat实现web服务器高可用
  5. java 图片服务器 上传_Java实现把图片上传到图片服务器(nginx+vsftp)
  6. Visual Studio Code 支持TensorFlow配置支持
  7. 如何使用百度云人脸识别服务(V3版接口python语言) (九)批量向人脸库中添加人脸
  8. linux mtd 块设备,基于块设备子系统的MTD子系统(2.6.26)
  9. Error from chokidar (C:\): Error: EBUSY: resource busy or locked, lstat ‘D:\DumpStack.log.tmp
  10. ubuntu20.04搭建janus服务器
  11. 制造业信息化的长治久安之计--Agentflow解决方案简介
  12. k8s coredns ContainerCreating
  13. bilibili正在缓冲却无法播放
  14. 第三只眼看费城自由钟---旅美散记之四
  15. ADATE320介绍
  16. 工欲善其事必先利其器——Elasticsearch安装
  17. NeuroImage:脑网络分析揭示社交焦虑症患者的大脑功能环路异常
  18. 吴恩达ex3_吴恩达机器学习代码及相关知识点总结--ex3(1.神经网络)
  19. 免费空间2015大主机免费的时代
  20. 自己动手写CPU(7)流水线暂停机制+乘累加累减+除法指令

热门文章

  1. 代码块的渲染类型选择测试
  2. Hash 和 History模式的区别
  3. 全新版PS色环插件Coolorus,支持PSCS6-CC2022
  4. php中下列哪些说法是正确的,关于PHP函数,下列定义方式正确的是
  5. 未名企鹅极客 | 医药数据管理中的短文本高效匹配技术
  6. 恒星结构和演化-学习记录2-第三章-物态方程1
  7. 操作系统课程设计——时间片轮转算法模拟
  8. Web 3浪潮席卷东南亚 越南为何会成为“热点”地区
  9. 超强大的dnsmasq及hosts全自动脚本扶墙去广告详细教程
  10. 安卓 文本框怎么贴近边缘_flash怎么设置帧频-Adobe flash修改帧频的方法