配置debezium以根据自定义条件将数据放在不同的主题上

i34xakig  于 2021-06-07  发布在  Kafka
关注(0)|答案(3)|浏览(413)

我作为代理和debezium迁移到kafka,从所有的微服务获取数据(etl数据)到报告和搜索数据库。
是否有任何方法可以配置debezium,以便它根据自定义条件(如用户或公司或行/数据的某个关键列/属性)将数据放在不同的主题上。

sigwle7e

sigwle7e1#

不确定您是否正在寻找主题路由
假设您不能为debezium本身添加一个filter选项,典型的模式是使用kafka streams、ksql(或基于您前面的问题的flink),将您感兴趣的数据过滤并分发到下游消费者需要的不同主题中。
但是,从单个debezium配置中,必须硬编码名称空间/集合/表。对于其中的多个,您将需要多个配置。

x7yiwoj4

x7yiwoj42#

hi@gunnar对于类似的需求,是否可以根据条件将消息从debezium发送到不同的主题(单个/多个)。例如:对于表a事件到主题a,对于表b事件到主题b1,对于表c事件到主题c1,c2和主题b1等,在源连接器或regex连接器中,只有在org.apache.kafka.connect.connector.connectrecord类中设置一个主题名的选项。有没有办法设置多个主题。如前所述,根据一些业务逻辑将一个事件发送到不同的主题。

ghhkc1vu

ghhkc1vu3#

我建议实现一个定制的smt(单消息转换),它将debezium连接器生成的记录路由到正确的主题中。您可以以cricket_的答案中链接的debezium路由smt作为定制实现的示例。拥有 SourceRecord 可用时,您可以基于所有捕获表的列值来决定目标主题。
Kafka流或类似的工作,但我建议首先研究SMT由于易于操作(没有单独的过程需要),只有寻找替代品,如果SMT是不够的。

相关问题