Partager via


Capture des changements de données dans le magasin analytique Azure Cosmos DB

S’APPLIQUE À : NoSQL MongoDB

La capture des changements de données (CDC) dans le magasin analytique Azure Cosmos DB vous permet de consommer efficacement un flux incrémentiel et continu de données (insérées, mises à jour et supprimées) modifiées. Intégrée en toute transparence à Azure Synapse et à Azure Data Factory, elle vous offre une expérience évolutive sans code pour un volume de données élevé. Comme la fonctionnalité de capture des changements de données est basée sur le magasin analytique, elle ne consomme pas d’unités de requête approvisionnées, n’affecte pas vos charges de travail transactionnelles, fournit une latence plus faible et a un coût total de possession inférieur.

La fonctionnalité de capture des changements de données dans le magasin analytique Azure Cosmos DB peut écrire dans divers récepteurs à l’aide d’un flux de données Azure Synapse ou Azure Data Factory.

Diagramme du magasin analytique dans Azure Cosmos DB et de la façon dont il peut, avec la capture des changements de données, écrire dans différents services cibles internes et tiers.

Pour plus d’informations sur les types de récepteurs pris en charge dans un flux de données de mappage, consultez Types de récepteurs de flux de données pris en charge.

En plus de fournir un flux de données incrémentiel du magasin analytique vers diverses cibles, la capture des changements de données prend en charge les fonctionnalités suivantes :

  • Prend en charge la capture des suppressions et des mises à jour intermédiaires.
  • Permet de filtrer le flux de modification pour un type d’opération spécifique (Insérer | Mettre à jour | Supprimer | TTL).
  • Prend en charge l’application de filtres, de projections et de transformations sur le flux de modification via la requête source.
  • Plusieurs flux de modification sur le même conteneur peuvent être consommés simultanément.
  • Chaque modification du conteneur apparaît exactement une fois dans le flux de capture des changements de données, et les points de contrôle sont managés en interne à votre place
  • Les modifications peuvent être synchronisées « depuis le début », « depuis un timestamp donné » ou « à partir de maintenant »
  • La période fixe de conservation des données pendant laquelle les modifications sont disponibles ne fait l’objet d’aucune limitation.

Capture de données incrémentielle efficace avec des points de contrôle managés en interne

Chaque modification du conteneur Cosmos DB apparaît exactement une fois dans le flux de capture des changements de données, et les points de contrôle sont managés en interne à votre place. Cela permet de résoudre les inconvénients ci-dessous du modèle courant d’utilisation des points de contrôle personnalisés basés sur la valeur « _ts » :

  • Le filtre « _ts » est appliqué aux fichiers de données, ce qui ne garantit pas toujours une analyse minimale des données. Les points de contrôle GLSN gérés en interne dans la nouvelle fonctionnalité CDC garantissent que l’identification incrémentielle des données est effectuée uniquement en fonction des métadonnées et garantit ainsi une analyse minimale des données dans chaque flux.

  • Le processus de synchronisation du magasin analytique ne garantit pas l’ordre basé sur « _ts », ce qui signifie qu’il peut y avoir des cas où le « _ts » d’un enregistrement incrémentiel est inférieur au dernier point de contrôle « _ts » et peut être manqué dans le flux incrémentiel. La nouvelle capture de changement des données ne prend pas en compte les « _ts » pour identifier les enregistrements incrémentiels et garantit donc qu’aucun des enregistrements incrémentiels n’est manqué.

Fonctionnalités

La capture des changements de données dans le magasin analytique Azure Cosmos DB prend en charge les fonctionnalités clés suivantes.

Capture des modifications depuis le début

Quand l’option Start from beginning est sélectionnée, la charge initiale inclut un instantané complet des données de conteneur dans la première exécution, et les données modifiées ou incrémentielles sont capturées dans les exécutions suivantes. Cela est limité par la propriété et les analytical TTL documents supprimés de la durée de vie du magasin analytique ne sont pas inclus dans le flux de modification. Exemple : imaginez un conteneur avec analytical TTL défini sur 31 536 000 secondes, ce qui équivaut à 1 an. Si vous créez un processus CDC pour ce conteneur, seuls les documents de plus d’un an seront inclus dans le chargement initial.

Capture des modifications à partir d’un horodatage donné

Quand l’option Start from timestamp est sélectionnée, la charge initiale traite les données du timestamp donné, et les données incrémentielles ou modifiées sont capturées dans les exécutions suivantes. Ce processus est également limité par la analytical TTL propriété .

Capture des modifications à partir de maintenant

Lorsque l’option Start from timestamp est sélectionnée, toutes les opérations passées du conteneur ne sont pas capturées.

Capture des suppressions, des mises à jour intermédiaires et des TTL

La fonctionnalité de capture des changements de données du magasin analytique capture supprime, mises à jour intermédiaires et opérations TTL. Les suppressions et mises à jour capturées peuvent être appliquées sur les récepteurs qui prennent en charge les opérations de suppression et de mise à jour. La valeur {_rid} identifie de manière unique les enregistrements. Par conséquent, en spécifiant {_rid} comme colonne clé côté récepteur, les opérations de mise à jour et de suppression sont prises en compte sur le récepteur.

Notez que les opérations TTL sont considérées comme des suppressions. Consultez la section des paramètres sources pour case activée détails du mode et la prise en charge des mises à jour et suppressions intermédiaires dans les récepteurs.

Filtrer le flux de modification d’un type d’opération spécifique

Vous pouvez filtrer le flux de capture des changements de données d’un type d’opération spécifique. Par exemple, vous pouvez capturer de manière sélective les opérations d’insertion et de mise à jour uniquement, ignorant ainsi les opérations de suppression de l’utilisateur et de suppression de TTL.

Application de filtres, de projections et de transformations sur le flux de modification via la requête source

Vous pouvez éventuellement utiliser une requête source pour spécifier des filtres, des projections et des transformations, qui sont tous envoyés au magasin analytique en colonnes. Voici un exemple de requête source qui permet de capturer uniquement les enregistrements incrémentiels avec le filtre Category = 'Urban'. Cet exemple de requête projette seulement cinq champs, puis applique une transformation simple :

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

Processus de CDC multiples

Vous pouvez créer plusieurs processus pour utiliser la CDC dans le magasin analytique. Cette approche offre une flexibilité pour prendre en charge différents scénarios et exigences. Alors qu’un processus peut ne pas avoir de transformations de données et plusieurs récepteurs, un autre peut avoir un aplatissement de données et un récepteur. Et ils peuvent s’exécuter en parallèle.

Isolation du débit, latence plus faible et coût total de possession inférieur

Les opérations sur le magasin analytique Cosmos DB ne consomment pas les unités de requête approvisionnées et n’affectent donc pas vos charges de travail transactionnelles. La capture des changements de données avec le magasin analytique a également une latence plus faible, et un coût total de possession inférieur. La latence plus faible est attribuée au magasin analytique. Cela permet un meilleur parallélisme pour le traitement des données, puis réduit le coût total de possession global. Vous pouvez ainsi réduire les coûts dans ces conditions économiques en évolution rapide.

Scénarios

Voici des scénarios courants dans lesquels vous pouvez utiliser la capture des changements de données et le magasin analytique.

Consommation de données incrémentielles de Cosmos DB

Vous pouvez utiliser la capture des changements de données du magasin analytique, si vous utilisez ou envisagez d’utiliser ce qui suit :

  • Capture de données incrémentielle à l’aide de flux de données Azure Data Factory ou de l’activité Copy.
  • Traitement par lots unique à l’aide d’Azure Data Factory.
  • Diffusion en continu de données Cosmos DB
    • Le magasin analytique a jusqu’à 2 minutes de latence pour synchroniser les données du magasin transactionnel. Vous pouvez planifier des flux de données dans Azure Data Factory chaque minute.
    • Si vous devez effectuer une diffusion en continu sans la latence ci-dessus, nous vous recommandons d’utiliser la fonctionnalité de flux de modification du magasin transactionnel.
  • Capture des suppressions, modifications incrémentielles, application de filtres sur les données Cosmos DB.
    • Si vous utilisez des déclencheurs Azure Functions ou toute autre option avec le flux de modification et que vous souhaitez capturer des suppressions, des modifications incrémentielles, appliquer des transformations, et bien plus encore, nous vous recommandons la capture des changements de données sur le magasin analytique.

Flux incrémentiel vers la plateforme analytique de votre choix

La fonctionnalité de capture des changements de données permet une solution analytique de bout en bout qui vous offre la possibilité d’utiliser des données Azure Cosmos DB avec tous les types de récepteurs pris en charge. Pour plus d’informations sur les types récepteurs pris en charge, consultez Types de récepteurs pris en charge par les flux de données. La capture des changements de données vous permet également d’intégrer des données Azure Cosmos DB dans un lac de données centralisé et de joindre les données à des données provenant d’autres sources diverses. Vous pouvez aplatir les données, les partitionner et appliquer d’autres transformations dans Azure Synapse Analytics ou Azure Data Factory.

Capture des changements de données sur les conteneurs Azure Cosmos DB pour MongoDB

L’interface de service liée de l’API de MongoDB n’est pas encore disponible dans les flux de données Azure Data Factory. Vous pouvez utiliser votre API pour le point de terminaison de compte de MongoDB avec l’interface de service lié Azure Cosmos DB for NoSQL comme solution de contournement jusqu’à ce que le service lié Mongo soit directement pris en charge.

Dans l’interface d’un nouveau service lié NoSQL, sélectionnez Entrer manuellement pour fournir les informations de compte Azure Cosmos DB. Ici, utilisez le point de terminaison de document NoSQL du compte (Exemple : https://<account-name>.documents.azure.com:443/) au lieu du point de terminaison Mongo DB (Exemple : mongodb://<account-name>.mongo.cosmos.azure.com:10255/)

Étapes suivantes