通过kettle消费Kafka消费者数据

环境介绍:

Oracle 11g

kafka2.8.0

kafka-connect-oracle

kettle 9.1
用8.0的版本测试,流程有调整,放在最后

1.启动

1.1启动zookeeper

1.2启动Kafka

1.3启动连接器

2.kettle配置

2.1添加转换流程

kettle 配置 kafka输出 kettle消费kafka数据_kafka

2.1.1设置Kafka consumer属性

transformation:新建一个,用于返回流中的结果

connection:选择direct ,右侧输入bootstrap-server

topics:选择需要消费的topic

consumer-group:定义消费者组

kettle 配置 kafka输出 kettle消费kafka数据_kettle 配置 kafka输出_02

duration: 处理批次间隔

number-of-records: 处理批次条数

maximum concurrent batches:最大并发批次

message prefetch limit:消息预取限制,防止读取数据量太大,造成kettle挂掉

offset-management: 偏移量管理
在读取到记录时,提交偏移量。
durationnumber-of-records之中任一个满足时,就会把读取到的数据发送给后续流程。

kettle 配置 kafka输出 kettle消费kafka数据_kettle 配置 kafka输出_03

topic中默认信息:

kettle 配置 kafka输出 kettle消费kafka数据_kafka_04

返回记录的路径,会在上边新建的transformation中生成get-records-from-stream流程,

kettle 配置 kafka输出 kettle消费kafka数据_分布式_05

此时看到新增的转换是这样的,并给他添加一个写日志操作(也可以不加),写日志中获取一下字段,方便在控制台输出获取到的记录

kettle 配置 kafka输出 kettle消费kafka数据_分布式_06

设置偏移量,其他不用管

kettle 配置 kafka输出 kettle消费kafka数据_big data_07

2.2.3字段选择

选择需要的字段

kettle 配置 kafka输出 kettle消费kafka数据_kettle 配置 kafka输出_08

2.2.4json-input

从字段获取源,并解析json

kettle 配置 kafka输出 kettle消费kafka数据_kettle 配置 kafka输出_09

kettle 配置 kafka输出 kettle消费kafka数据_kettle 配置 kafka输出_10

2.2.5表输出

提交记录数设置为1,否则不到记录数不会提交到数据库表中;

提前创先存储信息相关表;

kettle 配置 kafka输出 kettle消费kafka数据_分布式_11

字段映射关系:

kettle 配置 kafka输出 kettle消费kafka数据_kafka_12

2.2.6保存,启动

3.效果

kettle 配置 kafka输出 kettle消费kafka数据_kafka_13

kettle 配置 kafka输出 kettle消费kafka数据_字段_14

kettle8.0版本

流程设计如下:

kettle 配置 kafka输出 kettle消费kafka数据_字段_15


在kafka-consumer组件中添加的transformation中进行输出和解析,只需运行Kafka-consumer所在的转换即可

kettle 配置 kafka输出 kettle消费kafka数据_big data_16