Overview
En esta guía, puedes aprender sobre flujos de cambios y cómo se utilizan en un conector de origen MongoDB Kafka.
Flujos de cambio
Los streams de cambio son una funcionalidad de MongoDB que permite recibir actualizaciones en tiempo real sobre cambios en los datos. Los flujos de cambio retornan documentos de eventos de cambio.
Un documento de evento de cambio contiene instrucciones idempotentes para describir un cambio que ocurrió en su implementación de MongoDB y metadatos relacionados con ese cambio. Los documentos de eventos de cambios se generan a partir de los datos en oplog.
Importante
Las secuencias de cambios solo se ejecutan en sets de réplicas de MongoDB y clústeres.
Una instancia de MongoDB autónomo no puede generar un flujo de cambios.
Para ver una lista de todas las opciones de configuración para los flujos de cambio, consulte la Cambiar propiedades de flujo página.
Para obtener más información sobre los flujos de cambio, consulte los siguientes recursos:
Change Streams en el manual de MongoDB
Una introducción a los Change Streams entrada de blog
Para obtener más información sobre el registro de operaciones (oplog), consulte la entrada del Registro de Operaciones de los set de réplicas de MongoDB.
Agregación
Utiliza una pipeline de agregación para configurar el flujo de cambios de tu conector de origen. Puede configurar un flujo de cambios del conector para usar una pipeline de agregación a fin de realizar tareas que incluyan las siguientes operaciones:
Filtrar eventos de cambio por tipo de operación
Campos específicos del proyecto
Actualizar el valor de los campos
Agregar campos
Reduce la cantidad de datos generados por el flujo de cambio
Para aprender qué operadores de agregación se pueden usar con un flujo de cambios, consulta la guía de Modificación de la salida del flujo de cambios en el manual de MongoDB.
Para ver ejemplos que utilizan un pipeline de agregación para modificar un flujo de cambios, consulta las siguientes páginas:
Personaliza un pipeline para filtrar los eventos de cambio Ejemplo de uso
Copiar Datos Existentes Ejemplo de Uso
Estructura de evento de cambio
Encuentra la estructura completa de los documentos de eventos de cambio, incluidas las descripciones de todos los campos, en el manual de MongoDB.
Nota
La opción de documento completo
Si desea que Kafka Connect reciba únicamente el documento creado o modificado a partir de su operación de cambio, utilice el publish.full.document.only=true
opción. Para obtener más información, consulta la página Cambiar las propiedades de Stream.
Rendimiento
El oplog es una colección con tamaño fijo especial que no puede usar índices. Para obtener más información sobre esta limitación, consulta Recomendaciones de producción de Change Streams.
Si quieres mejorar el rendimiento de los flujos de cambios, usa un disco más rápido para tu clúster de MongoDB y aumenta el tamaño de la caché de WiredTiger. Para aprender cómo establecer tu caché WiredTiger, consulta la guía sobre el Motor de almacenamiento WiredTiger.
Conectores de fuente
El conector de origen abre un único flujo de cambios con MongoDB y envía datos desde ese flujo de cambios a Kafka Connect. El conector de origen mantiene su flujo de cambios durante su tiempo de ejecución y el conector cierra su flujo de cambios cuando lo detienes.
Para ver las opciones disponibles para configurar el flujo de cambios de tu conector de origen, consulta la página Propiedades del Flujo de cambios.
Tokens de reanudación
Su conector utiliza un token de reanudación como desplazamiento. Un desplazamiento es un valor que su conector almacena en un tema de Apache Kafka para realizar un seguimiento de los datos de origen que ha procesado. Su conector utiliza este valor de desplazamiento cuando debe recuperarse de un reinicio o un fallo. Un token de reanudación es un dato que hace referencia al _id campo de un documento de evento de cambio en su registro de operaciones de MongoDB.
Si tu conector fuente no tiene un offset, como cuando inicias el conector por primera vez, tu conector inicia un nuevo flujo de cambios. Una vez que el conector recibe su primer documento de evento de cambio y publica ese documento en Apache Kafka, el conector almacena el token de reanudación de ese documento como su offset.
Si el valor del resume token del offset de su conector de origen no corresponde a ninguna entrada en el oplog de su implementación MongoDB, su conector tiene un resume token inválido. Para aprender cómo recuperarse de un token de currículum no válido, consulte la guía de resolución de problemas de tokens no válidos.
Para aprender más sobre los tokens de reanudación, consulta los siguientes recursos:
Reanudar un flujo de cambios en el manual de MongoDB
Cambiar eventos en el manual de MongoDB
Para obtener más información sobre las compensaciones, consulte los siguientes recursos:
Documentación de la opción de configuración de Kafka Connect
offset.storage.topicKafka Connect
OffsetStorageReaderDocumentación de la API