Overview
在本指南中,您可以了解变更流及其在 MongoDB Kafka 源连接器中的使用方式。
Change Streams
变更流是 MongoDB 的一项功能,可让您接收数据更改的实时更新。变更流会返回变更事件文档。
A change event document contains idempotent instructions to describe a change that occurred in your MongoDB deployment and metadata related to that change. Change event documents are generated from data in the oplog.
重要
变更流仅在 MongoDB 副本集和分片集群上运行
独立运行的 MongoDB 实例无法生成变更流。
要查看变更流的所有配置选项的列表,请参阅变更流属性页面。
要了解有关变更流的更多信息,请参阅以下资源:
要了解有关 oplog 的更多信息,请参阅副本集操作 Oplog 上的 MongoDB 手册条目。
聚合(Aggregation)
使用聚合管道配置源connector的变更流。 您可以将connector变更流配置为使用聚合管道来执行包括以下操作在内的任务:
按操作类型筛选变更事件
项目特定领域
更新字段值
添加字段
减少变更流产生的数据量
To learn which aggregation operators you can use with a change stream, see the Modify Change Stream Output guide in the MongoDB manual.
若要查看使用聚合分析管道修改变更流的示例,请参阅以下页面:
自定义管道以筛选更改事件使用示例
复制现有数据使用示例
更改事件结构
在 MongoDB 手册中查找变更事件文档的完整结构,包括所有字段的说明。
注意
完整文档选项
如果您希望 Kafka Connect 仅接收通过变更操作创建或修改的文档,请使用 publish.full.document.only=true 选项。有关详细信息,请参阅 Change Stream Properties(变更流属性)页面。
性能
The oplog is a special capped collection which cannot use indexes. For more information on this limitation, see Change Streams Production Recommendations.
If you want to improve change stream performance, use a faster disk for your MongoDB cluster and increase the size of your WiredTiger cache. To learn how to set your WiredTiger cache, see the guide on the WiredTiger Storage Engine.
源连接器
源连接器的工作原理是使用 MongoDB 打开单个 change stream 并将数据从该 change stream 发送到 Kafka Connect。您的源连接器在其运行期间维护其 change stream,并且当您停止运行时,您的连接器将关闭其 change stream。
要查看可用于配置源连接器变更流的选项,请参阅变更流属性页面。
恢复令牌
您的连接器使用恢复令牌作为偏移量。偏移量是连接器存储在 Apache Kafka 主题中的值,用于跟踪其已处理的源数据。当连接器必须从重启或崩溃中恢复时,会使用其偏移值。恢复令牌是引用 MongoDB oplog 中更改事件文档 _id 字段的数据块。
如果您的源连接器没有偏移量,比如在您首次启动连接器时,连接器会启动新的变更流。连接器一旦收到首份变更事件文档并将该文档发布到 Apache Kafka 上,就会将该文档的恢复令牌作为偏移量进行存储。
如果源连接器偏移量的恢复令牌值与 MongoDB 部署的 oplog 中的任何条目都不对应,则连接器的恢复令牌无效。要了解如何从无效恢复令牌中恢复,请参阅无效令牌故障排除指南。
若要了解有关恢复令牌的详细信息,请参阅以下资源:
MongoDB 手册中的恢复变更流
Change Events in the MongoDB manual
要了解有关偏移的更多信息,请参阅以下资源: