Captura de datos modificados en el almacén analítico de Azure Cosmos DB

SE APLICA A: NoSQL MongoDB

La captura de datos modificados (CDC) en el almacén analítico de Azure Cosmos DB le permite consumir de forma eficiente una fuente continua e incremental de datos modificados (insertados, actualizados y eliminados) del almacén analítico. El módulo se integra perfectamente con Azure Synapse y Azure Data Factory, y le proporciona una experiencia escalable sin código para grandes volúmenes de datos. Dado que la característica de captura de datos modificados se basa en el almacén analítico, no consume RU aprovisionadas, no afecta sus cargas de trabajo transaccionales, proporciona una menor latencia y tiene un TCO inferior.

La característica de captura de datos modificados en el almacén analítico de Azure Cosmos DB puede escribir en una variedad de receptores mediante un flujo de datos de Azure Synapse o Azure Data Factory.

Diagram of the analytical store in Azure Cosmos DB and how it, with change data capture, can write to various first and third-party target services.

Para obtener más información sobre los tipos de receptor admitidos en un flujo de datos de asignación, consulte tipos de receptor admitidos por el flujo de datos.

Además de proporcionar una fuente de datos incremental desde el almacén analítico a diversos objetivos, la captura de datos modificados admite las siguientes funciones:

  • Admite la captura de eliminaciones y actualizaciones intermedias
  • Capacidad de filtrar la fuente de cambios para un tipo específico de operación (Insertar | Actualizar | Eliminar | TTL)
  • Admite la aplicación de filtros, proyecciones y transformaciones en la fuente de cambios a través de la consulta de origen
  • Se pueden consumir varias fuentes de cambios en el mismo contenedor simultáneamente
  • Cada cambio en el contenedor aparece exactamente una vez en la fuente de captura de datos modificados, y los puntos de control se administran internamente para usted
  • Los cambios se pueden sincronizar "desde el principio", "desde una fecha determinada" o "desde ahora".
  • No hay limitación en cuanto al periodo fijo de retención de datos durante el cual se pueden realizar cambios

Captura eficaz de datos incrementales con puntos de control administrados internamente

Cada cambio en el contenedor de Cosmos DB aparece exactamente una vez en la fuente de CDC, y los puntos de control se administran internamente para usted. Esto ayuda a abordar las desventajas siguientes del patrón común de uso de puntos de control personalizados basados en el valor "_ts":

  • El filtro "_ts" se aplica a los archivos de datos que no siempre garantizan un examen de datos mínimo. Los puntos de control basados en GLSN administrados internamente en la nueva funcionalidad de CDC garantizan que la identificación incremental de datos se realice, solo en función de los metadatos, por lo que garantiza un análisis mínimo de datos en cada flujo.

  • El proceso de sincronización del almacén analítico no garantiza la ordenación basada en "_ts", lo que significa que podría haber casos en los que el "_ts" de un registro incremental sea menor que el último punto de control "_ts" y se podría perder en el flujo incremental. El nuevo CDC no considera "_ts" para identificar los registros incrementales y, por tanto, garantiza que no se pierda ninguno de los registros incrementales.

Características

La captura de datos modificados en el almacén analítico de Azure Cosmos DB admite las siguientes características clave.

Captura de cambios desde el principio

Cuando se seleccione la opción Start from beginning, la carga inicial incluirá una instantánea completa de los datos del contenedor en la primera ejecución y los datos modificados o incrementales se capturarán en ejecuciones posteriores. Esto está limitado por la propiedad analytical TTL, y los documentos TTL quitados del almacén analítico no se incluyen en la fuente de cambios. Ejemplo: imagine un contenedor en el que analytical TTL está establecido en 31536000 segundos, lo que equivaldría a un año. Si crease un proceso de CDC para este contenedor, solo se incluirían los documentos de menos de 1 año en la carga inicial.

Capturar cambios de una marca de tiempo determinada

Cuando se seleccione la opción Start from timestamp, la carga inicial procesará los datos de la marca de tiempo determinada y los datos incrementales o modificados se capturarán en ejecuciones posteriores. Este proceso también está limitado por la propiedad analytical TTL.

Captura de cambios desde ahora

Cuando se seleccione la opción Start from timestamp, no se capturarán todas las operaciones pasadas del contenedor.

Captura de eliminaciones, actualizaciones intermedias y TTL

La característica de captura de datos modificados para el almacén analítico captura eliminaciones, actualizaciones intermedias y operaciones TTL. Las eliminaciones y actualizaciones capturadas se pueden aplicar en receptores que admiten operaciones de eliminación y actualización. El valor {_rid} identifica unívocamente los registros, por lo que especificando {_rid} como columna clave en el lado receptor, las operaciones de actualización y eliminación se reflejarían en el receptor.

Tenga en cuenta que las operaciones TTL se considerarán eliminaciones. Compruebe la sección Configuración de origen para comprobar los detalles del modo y la compatibilidad con actualizaciones intermedias y eliminaciones en receptores.

Filtrar la fuente de cambios para un tipo específico de operación

Puede filtrar la fuente de captura de datos modificados para un tipo específico de operación. Por ejemplo, puede capturar selectivamente solo las operaciones de inserción y actualización, ignorando así las operaciones de eliminación por el usuario y eliminación por TTL.

Aplicación de filtros, proyecciones y transformaciones en la fuente de cambios a través de la consulta de origen

Opcionalmente, puede usar una consulta de origen para especificar filtros, proyecciones y transformaciones, que se insertarían en el almacén analítico en columnas. Esta es una consulta de origen de ejemplo que solo capturaría registros incrementales con el filtro Category = 'Urban'. Esta consulta de ejemplo solo proyecta cinco campos y aplica una transformación sencilla:

SELECT ProductId, Product, Segment, concat(Manufacturer, '-', Category) as ManufacturerCategory
FROM c 
WHERE Category = 'Urban'

Varios procesos CDC

Puede crear varios procesos para consumir CDC en el almacén analítico. Este enfoque ofrece flexibilidad para admitir diferentes escenarios y requisitos. Aunque un proceso puede no tener transformaciones de datos y varios receptores, otro puede tener acoplamiento de datos y un receptor. Y pueden ejecutarse en paralelo.

Aislamiento del rendimiento, menor latencia y menor TCO

Las operaciones en el almacén analítico de Cosmos DB no consumen las RU aprovisionadas, por lo que no afectan a las cargas de trabajo transaccionales. La captura de datos modificados con el almacén analítico también tiene una latencia menor y un costo total de propiedad inferior. La menor latencia se atribuye a que el almacén analítico permite un mejor paralelismo para el procesamiento de datos y reduce el TCO general, lo que le permite impulsar la eficiencia de costos en estas condiciones económicas tan cambiantes.

Escenarios

Estos son escenarios comunes en los que puede usar la captura de datos modificados y el almacén analítico.

Consumo de datos incrementales desde Cosmos DB

Puede usar la captura de datos modificados del almacén analítico, si actualmente usa o planea usar:

  • Captura de datos incrementales mediante Azure Data Factory flujos de datos o actividad de copia.
  • Procesamiento por lotes de una sola vez utilizando Azure Data Factory.
  • Streaming de datos de Cosmos DB
    • El almacén analítico tiene hasta 2 minutos de latencia para sincronizar los datos del almacén transaccional. Puede programar flujos de datos en Azure Data Factory cada minuto.
    • Si necesita transmitir sin la latencia anterior, se recomienda usar la característica de fuente de cambios del almacén transaccional.
  • Captura de eliminaciones, cambios incrementales, aplicación de filtros en datos de Cosmos DB.
    • Si utiliza desencadenadores de Azure Functions o cualquier otra opción con fuente de cambios y desea capturar eliminaciones, cambios incrementales, aplicar transformaciones, etc., recomendamos la captura de datos de cambios en lugar del almacén analítico.

Fuente incremental a la plataforma analítica de su elección

La funcionalidad de captura de datos modificados permite una solución analítica de un extremo a otro, lo que proporciona la flexibilidad de usar datos de Azure Cosmos DB con cualquiera de los tipos de receptor admitidos. Para obtener más información sobre los tipos de receptor admitidos, consulte tipos de receptor admitidos por el flujo de datos. La captura de datos modificados también le permite incorporar datos de Azure Cosmos DB a un lago de datos centralizado y unir los datos con datos de otros orígenes diversos. Puede aplanar los datos, particionarlos y aplicar más transformaciones en Azure Synapse Analytics o Azure Data Factory.

Captura de datos modificados en contenedores de Azure Cosmos DB for MongoDB

La interfaz de servicio vinculada para la API de MongoDB aún no está disponible en los flujos de datos de Azure Data Factory. Puede usar su API para el punto de conexión de cuenta de MongoDB con la interfaz de servicio vinculado de Azure Cosmos DB for NoSQL como solución provisional hasta que se admita directamente el servicio vinculado de Mongo.

En la interfaz de un nuevo servicio vinculado NoSQL, seleccione Escribir manualmente para proporcionar la información de la cuenta de Azure Cosmos DB. Aquí, use el punto de conexión del documento NoSQL de la cuenta (por ejemplo: https://<account-name>.documents.azure.com:443/) en lugar del punto de conexión de Mongo DB (por ejemplo: mongodb://<account-name>.mongo.cosmos.azure.com:10255/)

Pasos siguientes