监听多个来源的变更
此用法示例演示了如何配置 MongoDB Kafka connector以侦听多个 MongoDB collection上的变更事件,并将其发布到 Kafka 主题。
如果您需要connector侦听一组更特定的数据库和collection上的事件,则可以使用管道。管道是 MongoDB 聚合管道,由发送给数据库的用于过滤或转换数据的指令组成。 有关如何配置connector pipeline
设置以使用表达式匹配多个数据库和collection名称的示例,请参阅下一节。
注意
database
和collection
配置设置还会影响Connector侦听变更事件的数据库和集合。 要学习;了解有关这些设置的更多信息,请参阅 MongoDB源连接属性指南。
示例
以下示例向您展示如何使用聚合管道选择用于侦听变更事件的特定数据库或collection名称。
包括来自多个数据库的变更事件
您可以通过在pipeline
设置中指定以下内容,将聚合管道定义为仅选择多个数据库上的更改事件:
$match
聚合操作符ns.db
,字段用于标识命名空间的数据库部分$regex
操作符和与数据库名称匹配的正则表达式
以下示例配置展示了如何将 Source connector 设置为侦听sandbox
和firewall
数据库上的更改事件:
pipeline=[{"$match": {"ns.db": {"$regex": "/^(sandbox|firewall)$/"}}}]
从多个集合中排除变更事件
您可以通过在pipeline
设置中指定以下内容,定义聚合管道以忽略多个collection上的事件:
$match
聚合操作符ns.coll
字段,用于标识命名空间的collection部分$regex
操作符和匹配collection名称的正则表达式$not
操作符指示封闭的$regex
操作符匹配正则表达式不匹配的所有内容
以下示例配置展示了如何将源connector设置为过滤掉源自任何数据库中名为“hyperspace”的所有collection的更改事件:
pipeline=[{"$match": {"ns.coll": {"$regex": {"$not": "/^hyperspace$/"}}}}]