kettle从入门到精通 第二十五课 kettle 再谈 kafka-consumer 步骤

前面写过kafka-consumer步骤初步使用教程,参考https://www.cnblogs.com/zjBoy/p/17296564.html,不过在使用此步骤的过程中还是遇到了一些问题,故在此和大家重新学习下kafka-consumer。
重点讲解下如下参数:

Duration(ms):
请指定一个以毫秒为单位的时间。此值表示在执行转换之前该步骤将花费多少时间来收集记录。
如果将此选项设置为0,则根据参数Number of records记录数触发消费。要运行转换,持续时间或记录数选项都必须包含一个大于0的值。

Number of records
指定一个数字。在每收集到‘X’条记录之后,指定的转换将被执行,并且这些‘X’条记录将被传递给转换过程。
如果将此选项设置为0,则将参数Duration按持续时间触发消费。为了运行转换,持续时间或记录数选项都必须包含一个大于0的值。

Maximum concurrent batches

指定用于同时收集记录的最大批次数。默认值为1,表示使用单个批次来收集记录。仅当您的消费者步骤无法跟上数据流的速度时,才应使用此选项。
您的计算环境必须具备足够的 CPU 和内存来进行此实现。如果您的环境无法处理指定的最大并发批次数,将会出现错误。


Message prefetch limit
请指定此步骤将排队等待处理的传入消息的限制,即从 kfakfa broker接收到的消息。
设置此值会强制kafka broker处理超过指定限制的消息的背压。默认排队消息的数量是100000条。

 

Offset management

Commit when record read(当记录读取时提交):

当选择这个选项时,在读取每一条记录后,都会立即进行提交操作。这意味着每读取一条记录,就将数据提交到目标数据库中。
这种方式可以确保即使在处理中断或出现错误时,已经读取的记录都已经提交到目标数据库中,不会出现数据丢失的情况。
但是,由于频繁的提交操作可能会影响性能,特别是在处理大批量数据时。
Commit when batch completed(当批处理完成时提交):

当选中这个选项时,数据会在某个批处理(如每1000行)完成后进行一次提交操作。
这种方式会减少提交的频率,提高了处理性能,尤其是在处理大量数据时。
但是在处理中断或出现错误时,已经读取的记录尚未提交到目标数据库,可能出现部分数据未能成功写入。

注意:

1、Duration和Number of records参数是两种拉取数据的方式,设置其中一个即可,另外一个设置为0,根据自己情况自行设置。
2、Message prefetch limit 参数的值,必须大于等于Number of records,否则运行转换文件会出错。

 

 

 

posted @ 2023-12-21 19:27  慕容尘轩  阅读(432)  评论(0)    收藏  举报