在 BigQuery 接收器连接器中过滤主题列表

问题描述 投票:0回答:1

我正在使用 kafka connect 将数据从 kafka 写入 BigQuery。我有一个单一接收器连接器消耗的多个主题,即使用正则表达式来过滤它消耗的主题,并捕获自动添加的新主题(具有相同的前缀)(~340 个主题,~30 个消费者)。
我想编辑接收器连接器以忽略捕获的特定主题。
连接器配置中的正则表达式字段例如:

"topics.regex": "sourcename_sourcetype_dataset_(.*)"

我正在寻找的是一种“例外”机制。最好不改变正则表达式本身,但这是一个可接受的解决方案(如果是这样,我如何编辑它以不包含名为

products_history
.

的表)
regex apache-kafka apache-kafka-connect
1个回答
0
投票

根据我的经验,正则表达式对于“除了一件事之外的所有事情”都效果不佳。

您可以尝试使用过滤器变换 + 否定规则 + TopicNameMatches 谓词,使所有其他主题(通过

topics
topics.regex
)流过不变。

"transforms": "HistoryFilter",
"transforms.HistoryFilter.type": "org.apache.kafka.connect.transforms.Filter",
"transforms.HistoryFilter.predicate": "IsProductHistory",
"transforms.HistoryFilter.negate": "true",

"predicates": "IsProductHistory",
"predicates.IsProductHistory.type": "org.apache.kafka.connect.transforms.predicates.TopicNameMatches",
"predicates.IsProductHistory.pattern": "sourcename_sourcetype_dataset_products_history"

https://docs.confluence.io/platform/current/connect/transforms/filter-ak.html

© www.soinside.com 2019 - 2024. All rights reserved.