Kettle8.2学习和测试

1介绍

Kettle是一款开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

2存储方式

(1)以XML形式存储;
(2)以资源库方式存储(数据库资源库和文件资源库),这里用mysql(5.1.73)数据库。

3自带设计

Kettle本身自带Transformation(转换)以及Job(作业)。
(1)转换是数据流,由数据的输入->处理逻辑->输出;
(2)作业是步骤流,由多个步骤(可以是转换、作业)组成。

4组成

由Spoon、Pan、Kitchen、Carte组成,Spoon是主要的工作台的图形化的界面,Pan是用命令行的形式调用转换,Kitchen是命令行调用作业,Carte是一个轻量级的Web容器。

5测试(Mysql<==>Mysql)

测试采用的是转载在Linux上的5.1.73版Mysql,采用转换的格式直接实现表的输入->抽取字段->插入表

6测试(Mysql<==>ES5.x)

6.1Mysql->Es

采用的是Rest client 进行Get请求获取es数据,再进行Json数据格式的解析,最后将数据插入Mysql的表中。转换过程如下:
在这里插入图片描述

6.2Es->Mysql

采用的是将表中数据转换为json格式的数据,再通过Rest client进行Post请求往Es中输入数据。转换过程如下:

在这里插入图片描述

6.3优化

考虑到可能需要轮询的方式,因而加入js脚本的方式,判断总页码条件每次page++。工作过程如下:
在这里插入图片描述

7测试(Mysql<==>Hive2)

7.1Hive->Mysql

同Mysql互相导入,直接可以选择hive2的连接输入就行。转换过程如下:
在这里插入图片描述

7.2Mysql->Hive

同Mysql互相导入,直接可以选择hive2的连接输出就行。转换过程如下:在这里插入图片描述

7.3优化

由于Mysql导入hive默认直连方式十分缓慢,而且会有格式问题,所以采取直接将Mysql数据写入hive该表的hdfs路径,提升效率明显。转换、工作过程如下:
在这里插入图片描述在这里插入图片描述

8测试(Kafka2.11<==>ES5.x)

8.1Kafka->Es

由于kettle已经集成了kafka的consumer以及producer,这里就可以直接使用kettle的Streaming中的Kafka consumer,但需要consumer组件需要加一个transformation,这边加上流处理的以及日志打印即可,这边提取到kafka的信息后还是用的rest将消息发post请求给es。转换过程如下:

在这里插入图片描述
在这里插入图片描述

8.2Es->Kafka

同理,这里使用的是kafka producer,直接使用rest发get请求获取es中的数据转换为json直接导入kafka特定的主题即可。转换过程如下:

在这里插入图片描述

9记录问题

9.1Kettle和ES插件版本对应问题

由于kettle8.2自带的elasticsearch的plugins默认是es6版本的,所以需要换插件的操作,进入data-integration\plugins\elasticsearch-bulk-insert-plugin,这里保存的就是es的插件,需要更换lib下的所有包以及elasticsearch-bulk-insert-core-xxxx.jar,可直接从maven仓库里拉取如下红框内的包替换kettle插件内,elasticsearch-bulk-insert-core-xxxx.jar附件如下:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友培

数据皆开源!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值