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