对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

Change Streams

在本指南中,您可以了解变更流及其在 MongoDB Kafka 源连接器中的使用方式。

变更流是 MongoDB 的一项功能,可让您接收数据更改的实时更新。变更流会返回变更事件文档

更改事件文档包含幂等指令,用于描述 MongoDB 部署中发生的更改以及与该更改相关的元数据。 更改事件文档是根据oplog 中的数据生成的。

重要

变更流仅在 MongoDB 副本集和分片集群上运行

独立运行的 MongoDB 实例无法生成变更流。

要查看变更流的所有配置选项的列表,请参阅变更流属性页面。

要了解有关变更流的更多信息,请参阅以下资源:

要了解有关oplog的更多信息,请参阅MongoDB手册中有关副本集oplog的条目。

使用聚合管道配置源connector的变更流。 您可以将connector变更流配置为使用聚合管道来执行包括以下操作在内的任务:

  • 按操作类型筛选变更事件

  • 项目特定领域

  • 更新字段值

  • 添加字段

  • 减少变更流产生的数据量

要了解您可以将哪些聚合操作符用于变更流,请参阅 MongoDB 手册中的修改变更流输出指南。

若要查看使用聚合分析管道修改变更流的示例,请参阅以下页面:

在 MongoDB 手册中查找变更事件文档的完整结构,包括所有字段的描述。

注意

完整文档选项

如果您希望 Kafka Connect 仅接收通过变更操作创建或修改的文档,请使用 publish.full.document.only=true 选项。有关详细信息,请参阅 Change Stream Properties(变更流属性)页面。

oplog 是一种特殊的固定大小集合,无法使用索引。 有关此限制的更多信息,请参阅Change Streams生产建议。

如果要提高变更流性能,请为MongoDB cluster使用更快的磁盘,并增加WiredTiger缓存的大小。 要了解如何设置WiredTiger缓存,请参阅WiredTiger storage engine指南 。

源连接器的工作原理是使用 MongoDB 打开单个 change stream 并将数据从该 change stream 发送到 Kafka Connect。您的源连接器在其运行期间维护其 change stream,并且当您停止运行时,您的连接器将关闭其 change stream。

要查看可用于配置源连接器变更流的选项,请参阅变更流属性页面。

您的连接器使用恢复令牌作为偏移量。偏移量是连接器存储在 Apache Kafka 主题中的值,用于跟踪其已处理的源数据。当连接器必须从重启或崩溃中恢复时,会使用其偏移值。恢复令牌是引用 MongoDB oplog 中更改事件文档 _id 字段的数据块。

如果您的源连接器没有偏移量,比如在您首次启动连接器时,连接器会启动新的变更流。连接器一旦收到首份变更事件文档并将该文档发布到 Apache Kafka 上,就会将该文档的恢复令牌作为偏移量进行存储。

如果源连接器偏移量的恢复令牌值与 MongoDB 部署的 oplog 中的任何条目都不对应,则连接器的恢复令牌无效。要了解如何从无效恢复令牌中恢复,请参阅无效令牌故障排除指南。

若要了解有关恢复令牌的详细信息,请参阅以下资源:

要了解有关偏移的更多信息,请参阅以下资源: