View a markdown version of this page

Comment fonctionne la diffusion de tables en streaming - Amazon Kinesis Data Streams

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.

Comment fonctionne la diffusion de tables en streaming

Consultez cette rubrique pour découvrir comment une diffusion de tables de streaming envoie des enregistrements depuis votre flux Amazon Kinesis Data Streams vers des tables de streaming sur Apache Iceberg soutenues par des compartiments de tables S3, notamment la conversion des enregistrements, la création de tables de destination, le partitionnement, l'actualisation des données, la file d'attente de lettres mortes et le chiffrement.

Comment fonctionne la livraison

Une diffusion de table de streaming envoie des enregistrements à une table de streaming sur Apache Iceberg en suivant les étapes suivantes :

  1. Lecture  : la diffusion lit les enregistrements de tous les fragments du flux Kinesis Data Streams.

  2. Buffer  : les buffers de diffusion enregistrent jusqu'à ce que l'intervalle de fraîcheur des données soit atteint.

  3. Valider et convertir  : la livraison valide chaque enregistrement par rapport au schéma du Schema Registry et le convertit en AWS Glue schéma de table Apache Iceberg. Les enregistrements dont la validation échoue sont placés dans la file d'attente des lettres mortes.

  4. Compacter et écrire  : la livraison convertit les enregistrements en fichiers Apache Parquet optimisés grâce au compactage en ligne et les écrit dans la table Iceberg de destination.

  5. Valider : la livraison valide les nouveaux fichiers dans la table Iceberg afin que les données puissent être interrogées.

Conversion d’enregistrements

La diffusion de tables de streaming nécessite un schéma enregistré dans AWS Glue Schema Registry. La livraison utilise le schéma pour convertir les enregistrements entrants en schéma de table Apache Iceberg. Il prend en charge les formats d'enregistrement d'entrée suivants :

  • JSON  : enregistrements JSON simples. Vous fournissez un GSRSchemaARN qui fait référence à un schéma enregistré dans AWS Glue Schema Registry.

  • GSR_JSON — Enregistrements JSON dont l'ID de schéma est intégré à chaque enregistrement par le sérialiseur AWS Glue Schema Registry. Le schéma est résolu automatiquement à partir du registre des AWS Glue schémas.

Pour obtenir l'intégralité des règles de mappage et de gestion des champs entre AWS Glue Schema Registry et Iceberg, consultez. Comportements des icebergs pour la table de streaming

Table de destination

Lorsque vous créez une diffusion par table de streaming, Amazon Kinesis Data Streams crée la table Iceberg de destination dans le compartiment de tables S3 que vous spécifiez. Fournissez les éléments suivants :

  • ARN du compartiment de tables  : l'ARN du compartiment de tables S3 dans lequel la table est créée.

  • Namespace  : espace de noms de la table.

  • Nom de la table  : nom de la table à créer. Chaque livraison crée sa propre table. Vous ne pouvez pas effectuer de livraison vers une table existante.

  • Colonne de partition  : timestamptz colonne utilisée pour partitionner la table par heure. Pour les exigences de partitionnement, voirComportements des icebergs pour la table de streaming.

Actualité des données

La fraîcheur des données définit la durée maximale de mise en mémoire tampon avant la livraison des enregistrements. Vous pouvez configurer cette valeur entre 300 et 900 secondes (5 à 15 minutes). La durée par défaut est 300 secondes. Des valeurs plus faibles permettent une livraison plus rapide, tandis que des valeurs plus élevées produisent des fichiers moins nombreux et plus volumineux à destination.

Dead-letter file d'attente

Une file d'attente aux lettres mortes est requise pour la diffusion des tables en streaming. Vous spécifiez un compartiment Amazon S3 qui reçoit des informations sur les enregistrements dont la validation échoue. Vous fournissez l'ARN du bucket, le propriétaire du bucket attendu et un préfixe de sortie d'erreur facultatif. La file d'attente de lettres mortes contient les identificateurs d'enregistrement et le contexte de l'erreur, et non les charges utiles complètes des enregistrements.

Chiffrement

La diffusion par table de streaming chiffre les données transmises au repos dans Amazon S3. Par défaut, les données sont chiffrées à l'aide de clés gérées par Amazon S3 (SSE-S3). Vous pouvez plutôt utiliser une AWS KMS clé gérée par le client (SSE-KMS).

Important

Vous ne pouvez pas utiliser un Clé gérée par AWS (aws/kinesisalias) pour le chiffrement de destination. Vous devez utiliser une AWS KMS clé gérée par le client. En outre, si votre flux de données Kinesis source est chiffré avec un Clé gérée par AWS, vous ne pouvez pas créer de diffusion. Pour connaître les exigences en matière de chiffrement du flux source, consultezChiffrement du flux source. Pour les AWS KMS autorisations dont le rôle d'exécution du service a besoin, consultezAutorisations IAM pour la fourniture de données.

Cross-account et livraison interrégionale

La diffusion des tables en streaming ne prend pas en charge la diffusion entre comptes ou entre régions. Le flux source, le compartiment de table S3 de destination et le registre de AWS Glue schémas doivent tous se trouver dans la même Compte AWS région.