Utilisation de Kinesis Data Streams pour récupérer les modifications apportées à DynamoDB - Amazon DynamoDB

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.

Utilisation de Kinesis Data Streams pour récupérer les modifications apportées à DynamoDB

Vous pouvez utiliser Amazon Kinesis Data Streams pour capturer les modifications apportées à Amazon DynamoDB.

Kinesis Data Streams récupère les modifications au niveau élément dans n'importe quelle table DynamoDB et les réplique dans un Kinesis Data Stream de votre choix. Vos applications peuvent accéder à ce flux et afficher les modifications au niveau élément en quasi-temps réel. Vous pouvez récupérer et stocker en continu des téraoctets de données par heure. Vous pouvez profiter d'un temps de conservation des données plus long et, grâce à une capacité de déploiement améliorée, vous pouvez atteindre simultanément deux applications en aval ou plus. Les autres avantages incluent des audits et une transparence de sécurité supplémentaires.

Kinesis Data Streams vous donne également accès à Amazon Data Firehose et à Amazon Managed Service pour Apache Flink. Ces services peuvent vous aider à créer des applications qui alimentent des tableaux de bord en temps réel, génèrent des alertes, implémentent une tarification et une publicité dynamiques, et mettent en œuvre une analytique des données sophistiquée et des algorithmes de machine learning.

Note

L'utilisation de Kinesis Data Streams pour DynamoDB est sujette à la tarification Kinesis Data Streams pour le flux de données, et à la tarification DynamoDB pour la table source.

Comment Kinesis Data Streams fonctionne avec DynamoDB

Lorsqu'un flux de données Kinesis est activé pour une table DynamoDB, la table envoie un registre de données qui récupère toutes les modifications apportées aux données de cette table. Cet registre de données comprend :

  • L'heure spécifique à laquelle un élément a été récemment créé, mis à jour ou supprimé

  • La clé primaire de cet élément

  • Un instantané de l'enregistrement avant la modification

  • Un instantané de l'enregistrement après la modification

Ces registres de données sont capturés et publiés en temps quasi-réel. Une fois qu'ils sont écrits dans le flux de données Kinesis, ils peuvent être lus comme n'importe quel autre registre. Vous pouvez utiliser la bibliothèque cliente Kinesis, utiliser AWS Lambda, appeler l'API Kinesis Data Streams et utiliser d'autres services connectés. Pour plus d'informations, consultez Lecture de données à partir d'Amazon Kinesis Data Streams dans le Manuel du développeur Amazon Kinesis Data Streams.

Ces modifications apportées aux données sont également récupérées de manière asynchrone. Kinesis n'a aucun impact sur les performances d'une table depuis laquelle elle est diffusée en continu. Les registres de flux stockés dans votre flux de données Kinesis sont aussi chiffrés au repos. Pour plus d'informations, consultez Protection des données dans Amazon Kinesis Data Streams.

Les enregistrements du flux de données Kinesis peuvent apparaître dans un ordre différent de celui dans lequel les éléments ont été modifiés. Les mêmes notifications d'éléments peuvent également apparaître plusieurs fois dans le flux. Vous pouvez vérifier l'ApproximateCreationDateTimeattribut pour identifier l'ordre dans lequel les modifications des articles ont eu lieu et pour identifier les enregistrements dupliqués.

Lorsque vous activez un flux de données Kinesis comme destination de diffusion d'une table DynamoDB, vous pouvez configurer la précision des ApproximateCreationDateTime valeurs en millisecondes ou en microsecondes. Par défaut, ApproximateCreationDateTime indique l'heure du changement en millisecondes. Vous pouvez également modifier cette valeur sur une destination de streaming active. Après une telle mise à jour, les enregistrements de flux écrits dans Kinesis auront des ApproximateCreationDateTime valeurs de la précision souhaitée.

Les valeurs binaires écrites dans DynamoDB doivent être codées au format codé en base64. Toutefois, lorsque des enregistrements de données sont écrits dans un flux de données Kinesis, ces valeurs binaires codées sont codées une deuxième fois avec un codage base64. Lorsqu'il s'agit de lire ces enregistrements à partir d'un flux de données Kinesis, pour récupérer les valeurs binaires brutes, les applications doivent décoder ces valeurs deux fois.

DynamoDB facture l'utilisation de Kinesis Data Streams en unités de capture de données de modification. 1 Ko de modification par élément unique est considéré comme une unité de capture de données de modification. Le Ko de modification dans chaque élément est calculé par la plus grande des images « avant » et « après » de l'élément écrit dans le flux, en utilisant la même logique que la consommation d'unités de capacité pour les opérations d'écriture. Comme pour le fonctionnement du mode à la demande de DynamoDB, vous n'aurez pas besoin d'approvisionner le débit de capacité pour les unités de capture des données de modification.

Activer un flux de données Kinesis pour votre table DynamoDB

Vous pouvez activer ou désactiver le streaming vers Kinesis à partir de votre table DynamoDB existante à l'aide du AWS SDK ou du AWS Management Console(). AWS Command Line Interface AWS CLI

  • Vous ne pouvez diffuser des données de DynamoDB vers Kinesis Data Streams que dans le même AWS compte et dans AWS la même région que votre table.

  • Vous pouvez uniquement diffuser des données depuis une table DynamoDB vers un flux de données Kinesis.

Apporter des modifications à une destination Kinesis Data Streams sur votre table DynamoDB

Par défaut, tous les enregistrements de flux de données Kinesis incluent un ApproximateCreationDateTime attribut. Cet attribut représente un horodatage en millisecondes de l'heure approximative à laquelle chaque enregistrement a été créé. Vous pouvez modifier la précision de ces valeurs à l'aide du site https://console.aws.amazon.com/kinesis, du SDK ou du AWS CLI