我读过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或者我需要为这个用例编写一个单独的程序。
谢谢
2条答案
按热度按时间eivnm1vs1#
没有理由不使用单个消息转换来解决这个问题,但是您需要编写一个自定义的转换,因为您所描述的内容在当前提供的转换中不可用。
关于何时使用和何时不使用SMT:2017年纽约Kafka峰会:单一消息转换不是您想要的转换(ewen cheslack postava,confluent)这是一个有用的主题
编辑2020年4月:现在有一个过滤器smt作为融合平台的一部分提供
jyztefdp2#
debezium 1.2提供了一个现成的过滤smt。它允许使用任何与jsr 223兼容的脚本语言来过滤记录,例如:
注意,虽然它是debezium的一部分,但如果您愿意,可以单独使用smt。