文档菜单
文档首页
/
MongoDB Kafka 连接器
/ /

监听多个源的变化

本使用示例演示了如何配置 MongoDB Kafka 源连接器以监听多个 MongoDB 集合的变化事件,并将它们发布到 Kafka 主题。

如果您需要连接器监听更特定集合和数据库的变化事件,可以使用 管道。管道是 MongoDB 聚合管道,由向数据库发送以过滤或转换数据的指令组成。有关如何配置连接器的示例,请参阅下一节。pipeline 设置以正则表达式匹配多个数据库和集合名称。

注意

配置设置 databasecollection 也会影响连接器监听变化事件的数据库和集合。有关这些设置的更多信息,请参阅MongoDB 源连接器属性指南。

以下示例展示了如何使用聚合管道来选择特定的数据库或集合名称,以便监听变更事件。

您可以通过在 pipeline 设置中指定以下内容,定义一个聚合管道来选择多个数据库上的仅变更事件

  • $match 聚合运算符

  • ns.db 字段,该字段标识命名空间中的数据库部分

  • $regex 运算符和匹配数据库名称的正则表达式

以下示例配置显示了如何设置您的源连接器以监听 sandboxfirewall 数据库上的变更事件

pipeline=[{"$match": {"ns.db": {"$regex": "/^(sandbox|firewall)$/"}}}]

您可以通过在pipeline设置中指定以下内容来定义一个聚合管道,以忽略多个集合上的更改事件

  • $match 聚合运算符

  • ns.coll字段,用于标识命名空间中的集合部分

  • $regex运算符和与集合名称匹配的正则表达式

  • $not运算符,该运算符指示外围的$regex运算符匹配正则表达式不匹配的所有内容

以下示例配置显示了如何设置您的源连接器以过滤出来自任何数据库中所有名为“hyperspace”的集合的更改事件

pipeline=[{"$match": {"ns.coll": {"$regex": {"$not": "/^hyperspace$/"}}}}]
  • 以下$match 聚合运算符

  • MongoDB更改事件

  • MongoDB命名空间

  • 使用Patterns类的正则表达式语法

  • $not 逻辑查询运算符和正则表达式

返回

自定义管道