kafka connect(单消息转换)行过滤

0mkxixxg  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(593)

我读过Kafka0.10.2.1中介绍的Kafka连接转换https://kafka.apache.org/documentation/#connect_transforms
我注意到所有的转换都是基于列的转换。我有一个需要基于值的过滤的用例。例如:
考虑以下一群人的数据集:

{"firstName": "FirstName1", "lastName": "LastName1", "age": 30}
{"firstName": "FirstName2", "lastName": "LastName2", "age": 30}
{"firstName": "FirstName3", "lastName": "LastName1", "age": 60}
{"firstName": "FirstName4", "lastName": "LastName2", "age": 60}

我希望我的工作人员筛选所有姓氏为lastname2的记录
有没有可能使用kafkaconnect或者我需要为这个用例编写一个单独的程序。
谢谢

eivnm1vs

eivnm1vs1#

没有理由不使用单个消息转换来解决这个问题,但是您需要编写一个自定义的转换,因为您所描述的内容在当前提供的转换中不可用。
关于何时使用和何时不使用SMT:2017年纽约Kafka峰会:单一消息转换不是您想要的转换(ewen cheslack postava,confluent)这是一个有用的主题
编辑2020年4月:现在有一个过滤器smt作为融合平台的一部分提供

jyztefdp

jyztefdp2#

debezium 1.2提供了一个现成的过滤smt。它允许使用任何与jsr 223兼容的脚本语言来过滤记录,例如:

transforms=filter
transforms.filter.type=io.debezium.transforms.Filter
transforms.filter.language=jsr223.graal.js
transforms.filter.condition=value.lastName == 'LastName2'

注意,虽然它是debezium的一部分,但如果您愿意,可以单独使用smt。

相关问题