regex debezium主题路由3表

sh7euo9m  于 2023-02-25  发布在  其他
关注(0)|答案(2)|浏览(127)

我有3种表类型

raw_app_logs_$daystamp
raw_users_logs_$daystamp
city_logs_$daystamp

现在,以下主题“重新路由”适用于1表格类型:

transforms=Reroute
transforms.Reroute.type=io.debezium.transforms.ByLogicalTableRouter
transforms.Reroute.topic.regex=(.*)raw_app_logs(.*)
transforms.Reroute.topic.replacement=$1raw_app_logs

这将raw_app_logs_20200720raw_app_logs_20200721等写入到raw_app_logs主题中。
如何添加其他2个条目,以便它们匹配并发送到各自的主题名称?
例如:在同一个配置文件中,raw_app_logs_20200720转到主题raw_app_logs,而raw_users_logs_20200720转到名为raw_users_logs的主题,city_logs_20200720转到名为city_logs的主题。

jhdbpxl9

jhdbpxl91#

找到了答案:
使用正则表达式组,然后只打印第一组:

transforms=Reroute
transforms.Reroute.type=io.debezium.transforms.ByLogicalTableRouter
transforms.Reroute.topic.regex=(.*)([^0-9]).*
transforms.Reroute.topic.replacement=$1
kzmpq1sx

kzmpq1sx2#

可以为每个表使用不同的转换别名:

transforms=app, users, city
transforms.app.type=io.debezium.transforms.ByLogicalTableRouter
transforms.app.topic.regex=(.*)raw_app_logs(.*)
transforms.app.topic.replacement=$1raw_app_logs

transforms.users.type=io.debezium.transforms.ByLogicalTableRouter
transforms.users.topic.regex=(.*)raw_users_logs(.*)
transforms.users.topic.replacement=$1raw_users_logs

transforms.city.type=io.debezium.transforms.ByLogicalTableRouter
transforms.city.topic.regex=(.*)city_logs(.*)
transforms.city.topic.replacement=$1city_logs

相关问题