我正在使用 kafka connect 将数据从 kafka 写入 BigQuery。我有一个单一接收器连接器消耗的多个主题,即使用正则表达式来过滤它消耗的主题,并捕获自动添加的新主题(具有相同的前缀)(~340 个主题,~30 个消费者)。
我想编辑接收器连接器以忽略捕获的特定主题。
连接器配置中的正则表达式字段例如:
"topics.regex": "sourcename_sourcetype_dataset_(.*)"
我正在寻找的是一种“例外”机制。最好不改变正则表达式本身,但这是一个可接受的解决方案(如果是这样,我如何编辑它以不包含名为
products_history
. 的表)
根据我的经验,正则表达式对于“除了一件事之外的所有事情”都效果不佳。
您可以尝试使用过滤器变换 + 否定规则 + 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