Kettle8.2学习和测试

文章目录

  • 1介绍
  • 2存储方式
  • 3自带设计
  • 4组成
  • 5测试(Mysql<==>Mysql)
  • 6测试(Mysql<==>ES5.x)
    • 6.1Mysql->Es
    • 6.2Es->Mysql
    • 6.3优化
  • 7测试(Mysql<==>Hive2)
    • 7.1Hive->Mysql
    • 7.2Mysql->Hive
    • 7.3优化
  • 8测试(Kafka2.11<==>ES5.x)
    • 8.1Kafka->Es
    • 8.2Es->Kafka
  • 9记录问题
    • 9.1Kettle和ES插件版本对应问题

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的表中。转换过程如下:
Kettle8.2学习和测试_第1张图片

6.2Es->Mysql

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

Kettle8.2学习和测试_第2张图片

6.3优化

考虑到可能需要轮询的方式,因而加入js脚本的方式,判断总页码条件每次page++。工作过程如下:
Kettle8.2学习和测试_第3张图片

7测试(Mysql<==>Hive2)

7.1Hive->Mysql

同Mysql互相导入,直接可以选择hive2的连接输入就行。转换过程如下:
Kettle8.2学习和测试_第4张图片

7.2Mysql->Hive

同Mysql互相导入,直接可以选择hive2的连接输出就行。转换过程如下:Kettle8.2学习和测试_第5张图片

7.3优化

由于Mysql导入hive默认直连方式十分缓慢,而且会有格式问题,所以采取直接将Mysql数据写入hive该表的hdfs路径,提升效率明显。转换、工作过程如下:
Kettle8.2学习和测试_第6张图片Kettle8.2学习和测试_第7张图片

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

8.1Kafka->Es

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

Kettle8.2学习和测试_第8张图片
Kettle8.2学习和测试_第9张图片

8.2Es->Kafka

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

Kettle8.2学习和测试_第10张图片

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附件如下:
Kettle8.2学习和测试_第11张图片

你可能感兴趣的:(大数据——数据集成工具,Kettle,Pentaho)