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 flujos de cambios, consulta 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
Actualiza 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 deseas que Kafka Connect reciba solo el documento creado o modificado a partir de tu operación de cambio, utiliza 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 origen
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
Tu conector utiliza un token de reanudación como su desplazamiento. Un offset es un valor que tu conector almacena en un tema de Apache Kafka para rastrear los datos fuente que ha procesado. Su conector usa su valor de desplazamiento cuando debe recuperarse de un reinicio o una caída. Un token de reanudación es un bloque de datos que referencia el campo _id de un documento de evento de cambio en su oplog 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 Change Stream en el manual de MongoDB
Cambiar eventos en el manual de MongoDB
Para aprender más sobre offsets, consulta los siguientes recursos:
Documentación de la opción de configuración de Kafka Connect
offset.storage.topicKafka Connect
OffsetStorageReaderDocumentación de la API