Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Modifier les flux de capture de données (version préliminaire)
Important
Cette fonctionnalité est fournie sous forme d' AWS aperçu et est sujette à modification. Pour plus d'informations, consultez la section 2, Bêtas et aperçus, des conditions de AWS service
Avant la mise à disposition générale, nous ajouterons de nouveaux types d'opérations ("op": "u"pour les mises à jour) à votre charge utile de diffusion. Pour vous assurer que votre application gère ces modifications sans modification, considérez toute valeur non reconnue comme une op valeur ajoutée en appliquant la after charge utile. Consultez Comprendre les dossiers du CDC pour plus de détails.
Amazon Aurora DSQL Change Data Capture (CDC) diffuse les modifications de base de données validées en temps quasi réel directement vers Amazon Kinesis Data Streams. Aurora DSQL fournit chaque modification validée au niveau des lignes sous forme d'enregistrement JSON structuré à un flux de données Kinesis que vous configurez.
Le CDC est utile lorsque vous souhaitez :
-
Synchronisez les systèmes en aval : répliquez les modifications apportées à un index de recherche, à un cache, à un entrepôt de données ou à un système d'analyse sans tâches par lots.
-
Créez des architectures axées sur les événements : déclenchez des flux de travail, des notifications ou des actions de microservice en réponse aux modifications de la base de données.
-
Maintenez une piste d'audit : capturez chaque modification validée à des fins de conformité, de débogage ou d'analyse historique.
-
Dissociez les producteurs des consommateurs : laissez la base de données se concentrer sur les transactions, tandis que les systèmes en aval traitent les changements à leur propre rythme.
Comment ça marche
Aurora DSQL lit les transactions validées, formate chaque modification de ligne sous la forme d'un enregistrement JSON structuré et le transmet à un flux de données Kinesis que vous configurez. Le CDC capture automatiquement DELETE toutes les tables utilisateur du cluster. INSERT UPDATE Appliquez une logique de filtrage à vos applications en aval en utilisant les source.table champs source.schema et de chaque enregistrement CDC pour vous concentrer sur les tables ou les modifications dont votre application a besoin.
Les flux CDC sont entièrement gérés. Aurora DSQL gère toute l'infrastructure requise pour capturer les événements de changement, surveille l'état des flux et indique l'état par le biais du fonctionnement et des CloudWatch métriques de l'GetStreamAPI.
Les flux CDC utilisent un modèle « apportez votre propre cible ». Vous créez et gérez le flux de données Kinesis dans votre compte, et Aurora DSQL assume un rôle IAM que vous configurez pour écrire des enregistrements CDC en votre nom. Vous êtes responsable de la capacité, du chiffrement et des paramètres de rétention de la cible. Pour connaître les dernières cibles prises en charge, consultez le TargetDefinition paramètre CreateStreamdans le manuel Amazon Aurora DSQL API Reference. Pour obtenir la liste complète des opérations de l'API CDC Stream, consultez le manuel Amazon Aurora DSQL API Reference.
Rubriques de cette page
Rubriques en relation
Sémantique de commande et de livraison
Garanties de livraison
Aurora DSQL CDC garantit que chaque modification validée atteint la cible au moins une fois. Aurora DSQL peut fournir un enregistrement plusieurs fois. Concevez votre application de manière à gérer les doublons. Vous pouvez identifier un doublon en comparant source.ts_ns les valeurs clés primaires : un doublon possède les mêmes valeurs que la livraison d'origine.
Commande
Les flux CDC utilisent UNORDERED le mode. En pratique, les enregistrements arrivent dans un ordre de validation approximatif, car Aurora DSQL lit et publie les modifications de manière séquentielle. Cependant, Aurora DSQL ne garantit pas un ordre strict. En particulier :
-
Aurora DSQL peut fournir des enregistrements de différentes transactions dans n'importe quel ordre.
-
Les enregistrements d'une même clé primaire provenant de différentes transactions peuvent arriver hors ordre de validation.
-
Les enregistrements d'une seule transaction peuvent être entrelacés avec les enregistrements d'autres transactions. Utilisez le
source.txIdchamp pour regrouper les enregistrements par transaction lorsque votre flux de travail l'exige.
Chaque enregistrement CDC inclut un source.ts_ns champ qui contient l'horodatage de validation de la transaction en nanosecondes. Utilisez ce champ pour établir l'ordre de validation du côté destinataire.
Stratégies pour les consommateurs
Étant donné que les enregistrements peuvent arriver hors ordre de validation et apparaître plusieurs fois, votre application doit tenir compte de ces deux conditions.
Important
Définissez une clé primaire sur toutes les tables participant au CDC. Sans clé primaire, votre application ne peut pas dédupliquer les enregistrements ni corréler les suppressions avec la ligne concernée.
Last-writer-wins (vues matérialisées, caches)
Suivez la source.ts_ns valeur la plus élevée par clé primaire. Supprimez tout enregistrement dont la valeur source.ts_ns est inférieure ou égale à la valeur suivie. Cela filtre à la fois les doublons et les enregistrements en rupture de commande, en conservant l'état le plus récent pour chaque clé. Lorsque vous traitez un delete (op: "d"), stockez une pierre tombale pour la clé primaire qui préserve la source.ts_ns valeur au lieu de supprimer l'entrée. La pierre tombale garantit qu'une insertion ou une mise à jour avec une valeur antérieure source.ts_ns qui arrive après la suppression ne restaure pas incorrectement la ligne.
Every-change traitement (enregistrement des audits, recherche d'événements)
Supprimez les doublons en les comparant source.ts_ns avec les valeurs de la clé primaire. Mettez en mémoire tampon les enregistrements entrants et triez-les source.ts_ns avant le traitement pour reconstituer l'ordre de validation.
Multi-Region Configuration du flux CDC
Un flux CDC est une ressource régionale. Chaque flux appartient à une seule AWS région et apporte des modifications à un flux de données Kinesis dans la même région. Dans un cluster multirégional, un flux CDC dans n'importe quelle région capture les écritures validées provenant de toutes les régions du cluster. Cela signifie que vous n'avez besoin que d'un seul flux pour capturer chaque modification, quelle que soit l'origine de l'écriture. Pour diffuser les dossiers du CDC dans plusieurs régions, créez un flux distinct dans chaque région. Chaque flux capture indépendamment l'ensemble des modifications validées au sein du cluster.
Toutes les ressources (cluster SQL Aurora, flux de données Kinesis, rôle de service IAM et principal d'appel) doivent se trouver dans le même compte et dans la même région. AWS
Traitement des dossiers du CDC en aval
Une fois que les enregistrements CDC sont arrivés dans votre flux de données Kinesis, vous pouvez les traiter directement ou les acheminer vers d'autres destinations à l'aide des services d' AWS intégration. Le tableau suivant récapitule les modèles de traitement courants.
| Modèle | Comment ça marche |
|---|---|
| Consommation directe | Lisez les enregistrements de Kinesis à l'aide de la bibliothèque client Amazon Kinesis (KCL), AWS du SDK ou d'un client Kinesis Data Streams. Consultez la section Developing KCL consumers dans le guide du développeur Amazon Kinesis Data Streams. |
| AWS Lambda | Configurez une fonction Lambda comme source d'événements pour votre flux de données Kinesis afin de traiter chaque lot d'enregistrements CDC à leur arrivée. Consultez la section Utilisation de AWS Lambda avec Amazon Kinesis dans le guide du développeur AWS Lambda. |
| Amazon Data Firehose | Transférez des enregistrements CDC depuis Kinesis vers Amazon S3, Amazon Redshift, OpenSearch Amazon Service ou d'autres destinations à des fins d'analyse et d'archivage. Consultez la section Envoi de données vers un flux de diffusion dans le manuel Amazon Data Firehose Developer Guide. |
| Self-managed consommateurs | Exécutez Apache Kafka Connect avec le connecteur source Kinesis, Apache Flink ou d'autres frameworks de traitement de flux pour transformer et acheminer les enregistrements. Pour activer Apache Flink AWS, consultez la section Configuration de la saisie d'applications dans le guide du développeur Amazon Managed Service for Apache Flink. |
Chaque enregistrement CDC inclut des champs tels que source.schemasource.table, et op que vous pouvez utiliser pour acheminer et filtrer les enregistrements dans votre logique de traitement. Pour le schéma d'enregistrement complet, voirComprendre les dossiers du CDC.