Docs 菜单
Docs 主页
/
MongoDB Kafka Connector
/ /

监听多个来源的变更

此用法示例演示了如何配置 MongoDB Kafka connector以侦听多个 MongoDB collection上的变更事件,并将其发布到 Kafka 主题。

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

注意

databasecollection配置设置还会影响Connector侦听变更事件的数据库和集合。 要学习;了解有关这些设置的更多信息,请参阅 MongoDB源连接属性指南。

以下示例向您展示如何使用聚合管道选择用于侦听变更事件的特定数据库或collection名称。

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

  • $match聚合操作符

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

  • $regex操作符和与数据库名称匹配的正则表达式

以下示例配置展示了如何将 Source connector 设置为侦听sandboxfirewall数据库上的更改事件:

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$/"}}}}]
  • $match 聚合操作符

  • MongoDB 更改事件

  • MongoDB 命名空间

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

  • $not 逻辑查询操作符和表达式

后退

自定义管道