Change Streams
Overview
在本指南中,您可以了解变更流及其在 MongoDB Kafka 源连接器中的使用方式。
Change Streams
变更流是 MongoDB 的一项功能,可让您接收数据更改的实时更新。变更流会返回变更事件文档。
更改事件文档包含幂等指令,用于描述 MongoDB 部署中发生的更改以及与该更改相关的元数据。 更改事件文档是根据 oplog 中的数据生成的。
重要
变更流仅在 MongoDB 副本集和分片集群上运行
独立运行的 MongoDB 实例无法生成变更流。
要查看变更流的所有配置选项列表,请参阅变更流属性页面。
要了解有关变更流的更多信息,请参阅以下资源:
MongoDB 手册中的Change Streams
变更流简介博客文章
要了解有关oplog的更多信息,请参阅MongoDB手册中有关副本集oplog的条目。
聚合(Aggregation)
使用聚合管道配置源connector的变更流。 您可以将connector变更流配置为使用聚合管道来执行包括以下操作在内的任务:
按操作类型筛选变更事件
项目特定领域
更新字段值
添加字段
减少变更流产生的数据量
要了解您可以将哪些聚合操作符用于变更流,请参阅 MongoDB 手册中的修改变更流输出指南。
若要查看使用聚合分析管道修改变更流的示例,请参阅以下页面:
自定义管道以筛选更改事件使用示例
复制现有数据使用示例
更改事件结构
在 MongoDB 手册中查找变更事件文档的完整结构,包括所有字段的描述。
注意
完整文档选项
如果您希望 Kafka Connect 仅接收通过变更操作创建或修改的文档,请使用 publish.full.document.only=true
选项。有关更多信息,请参阅变更流属性页面。
性能
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 中的任何条目都不对应,则连接器的恢复令牌无效。要了解如何从无效恢复令牌中恢复,请参阅无效令牌故障排除指南。
若要了解有关恢复令牌的详细信息,请参阅以下资源:
要了解有关偏移的更多信息,请参阅以下资源: