Fuente de cambios en Azure Cosmos DB

SE APLICA A: NoSQL MongoDB Cassandra Gremlin

La fuente de cambios de Azure Cosmos DB es un registro persistente de cambios en un contenedor en el orden en que se producen. La compatibilidad con la fuente de cambios en Azure Cosmos DB se proporciona al observar si hay algún cambio en un contenedor de Azure Cosmos DB. A continuación, muestra la lista ordenada de los documentos que han cambiado en el orden en el que se modificaron. Los cambios se conservan y se pueden procesar de manera asincrónica e incremental, y la salida se puede distribuir entre uno o varios consumidores para procesarse en paralelo.

Más información sobre los modelos de diseño de la fuente de cambios.

SDK de cliente y API compatibles

La característica de fuente de cambios se admite actualmente en los siguientes SDK de Azure Cosmos DB.

Controladores cliente NoSQL Apache Cassandra MongoDB Apache Gremlin Tabla PostgreSQL
.NET Icon indicating that this feature is supported in the .NET SDK for the API for NoSQL. Icon indicating that this feature is supported in the .NET SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the .NET SDK for the API for MongoDB. Icon indicating that this feature is supported in the .NET SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the .NET SDK for the API for Table. Icon indicating that this feature is not supported in the .NET SDK for the API for PostgreSQL.
Java Icon indicating that this feature is supported in the Java SDK for the API for NoSQL. Icon indicating that this feature is supported in the Java SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the Java SDK for the API for MongoDB. Icon indicating that this feature is supported in the Java SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the Java SDK for the API for Table. Icon indicating that this feature is not supported in the Java SDK for the API for PostgreSQL.
Python Icon indicating that this feature is supported in the Python SDK for the API for NoSQL. Icon indicating that this feature is supported in the Python SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the Python SDK for the API for MongoDB. Icon indicating that this feature is supported in the Python SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the Python SDK for the API for Table. Icon indicating that this feature is not supported in the Python SDK for the API for PostgreSQL.
Node/JavaScript Icon indicating that this feature is supported in the JavaScript SDK for the API for NoSQL. Icon indicating that this feature is supported in the JavaScript SDK for the API for Apache Cassandra. Icon indicating that this feature is supported in the JavaScript SDK for the API for MongoDB. Icon indicating that this feature is supported in the JavaScript SDK for the API for Apache Gremlin. Icon indicating that this feature is not supported in the JavaScript SDK for the API for Table. Icon indicating that this feature is not supported in the JavaScript SDK for the API for PostgreSQL.

Trabajo con la fuente de cambios

Puede trabajar con la fuente de cambios mediante las siguientes opciones:

La fuente de cambios está disponible para los intervalos de claves de partición de un contenedor de Azure Cosmos DB. Esto permite que se pueda distribuir entre uno o varios consumidores para el procesamiento en paralelo, como se muestra en la siguiente imagen.

Distributed processing of Azure Cosmos DB change feed

Nota:

Los intervalos de claves de partición se asignan a particiones físicas cuando se usa el procesador de fuente de cambios y FeedRanges cuando se usa el modelo de extracción.

Características de la fuente de cambios

  • La fuente de cambios está habilitada de forma predeterminada para todas las cuentas de Azure Cosmos DB.

  • Hay varios modos de fuente de cambios y algunos necesitan configuración adicional para habilitarse.

  • Puede usar el rendimiento aprovisionado para leer la fuente de cambios, igual que con cualquier otra operación de Azure Cosmos DB, en cualquiera de las regiones asociadas con la cuenta de Azure Cosmos DB.

  • La fuente de cambios incluye operaciones de inserción y actualización realizadas en los elementos incluidos en el contenedor. Si va a usar el modo de todas las versiones y eliminaciones (versión preliminar), también obtendrá cambios de las operaciones de eliminación y las expiraciones de TTL.

  • Cada cambio realizado en un elemento aparece exactamente una vez en la fuente de cambios y los clientes deben administrar la lógica de puntos de comprobación. Si quiere evitarse la complejidad de administrar los puntos de comprobación, el procesador de fuentes de cambio proporciona puntos de comprobación automáticos y semántica de "al menos una vez". Para más información, vea el artículo de uso de la fuente de cambios con el procesador de fuente de cambios.

  • Los cambios están disponibles en paralelo para los intervalos de claves de partición de un contenedor de Azure Cosmos DB. Esta funcionalidad permite que varios consumidores procesen los cambios de contenedores grandes en paralelo.

  • Las aplicaciones pueden solicitar varias fuentes de cambios en el mismo contenedor de forma simultánea.

  • El punto de partida de la fuente de cambios se puede personalizar y hay diferentes opciones disponibles para cada modo.

Criterio de ordenación de los elementos en la fuente de cambios

Los elementos de la fuente de cambios están ordenados según su hora de modificación. Este criterio de ordenación se garantiza por clave de partición y no hay ningún orden garantizado en los valores de clave de partición.

Fuente de cambios en las cuentas de Azure Cosmos DB de varias regiones

En una cuenta de Azure Cosmos DB de varias regiones, los cambios en una región están disponibles en todas las demás. Si una región de escritura conmuta por error, la fuente de cambios funcionará durante toda la operación de conmutación por error manual y es contigua. En el caso de las cuentas con varias regiones de escritura, no hay ninguna garantía de cuándo estarán disponibles los cambios. Los cambios entrantes en el mismo documento se pueden quitar en el modo de versión más reciente si se ha producido un cambio más reciente en otra región, y todos los cambios se capturarán en el modo de todas las versiones y eliminaciones.

Modos de la fuente de cambios

Hay dos modos de fuente de cambios disponibles: el de la versión más reciente y el de todas las versiones y eliminaciones. El modo en el que se lee la fuente de cambios determina de qué operaciones se capturan los cambios y los metadatos disponibles para cada cambio. Es posible consumir la fuente de cambios en diferentes modos en varias aplicaciones para el mismo contenedor de Azure Cosmos DB.

Modo de versión más reciente

En el modo de versión más reciente de la fuente de cambios, verá el cambio más reciente de una inserción o actualización para todos los elementos de la fuente y la fuente estará disponible para la vida útil del contenedor. No hay ninguna indicación de si un cambio concreto procede de una operación de inserción o actualización, y no se capturan las eliminaciones. Los cambios se pueden leer desde cualquier momento dado hasta el origen del contenedor. Pero si se elimina un elemento, se quita de la fuente de cambios. Vea el artículo sobre el modo de versión más reciente de la fuente de cambios para más información.

Modo de todas las versiones y eliminaciones (versión preliminar)

El modo de todas las versiones y eliminaciones le permite ver todos los cambios en los elementos después de las creaciones, actualizaciones y eliminaciones. Obtiene un registro de cada cambio en los elementos en el orden en que se ha producido, incluidos los cambios intermedios en un elemento entre lecturas de la fuente de cambios. Para leer desde la fuente de cambios en el modo de todas las versiones y eliminaciones, debe configurar copias de seguridad continuas para la cuenta de Azure Cosmos DB, lo que crea bases de datos de Azure Cosmos de todas las versiones y elimina la fuente de cambios. En este modo, solo puede leer los cambios que se hayan producido dentro del período de copia de seguridad continuo configurado para la cuenta. Vea el artículo sobre el modo de todas las versiones y eliminaciones de la fuente de cambios para más información, incluido cómo inscribirse en la versión preliminar.

Fuente de cambios en las API de Cassandra y MongoDB

La funcionalidad de fuente de cambios aparece como flujo de cambios en la API de MongoDB y como consulta con predicado en una API de Cassandra. Para más información sobre los detalles de implementación de la API de MongoDB, consulte Flujos de cambios en la API de Azure Cosmos DB para MongoDB.

Apache Cassandra nativo proporciona un mecanismo de captura de datos modificados (CDC), que permite marcar tablas concretas para el archivado, así como rechazar escrituras en esas tablas una vez que se alcanza un tamaño en disco configurable para el registro de CDC. La característica de fuente de cambios en Azure Cosmos DB for Apache Cassandra mejora la capacidad de consultar los cambios con el predicado a través de CQL. Para más información sobre los detalles de implementación, consulte Fuente de cambios en Azure Cosmos DB for Apache Cassandra.

Medición del consumo de unidades de solicitud de fuente de cambios

La fuente de cambios está disponible en cada contenedor, independientemente de si se ha utilizado. El único costo de la fuente de cambios es el rendimiento aprovisionado del contenedor de concesión y las RU para cada solicitud. Use Azure Monitor para medir el consumo de unidades de solicitud (RU) de la fuente de cambios. Para más información, consulte Cómo supervisar el rendimiento o el uso de unidades de solicitud de una operación en Azure Cosmos DB.

Pasos siguientes

Ahora, puede obtener más información acerca de las fuentes de cambios en los siguientes artículos: