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.
Bonnes pratiques en matière de fourniture de données
Les bonnes pratiques suivantes vous aident à tirer le meilleur parti de la diffusion de données dans Amazon Kinesis Data Streams. Pour obtenir la liste complète des mesures de livraison référencées dans ces recommandations, voirSurveillance de la livraison des données.
Débit et fraîcheur des données
Réglez la fréquence de diffusion et surveillez la latence de diffusion afin que la taille de vos fichiers de sortie et l'actualité des données correspondent à votre charge de travail :
-
Définissez le
DataFreshnessInSecondsparamètre en fonction du débit de votre flux. Des valeurs inférieures augmentent la fréquence de livraison, mais peuvent entraîner une réduction de la taille des fichiers de sortie. Des valeurs plus élevées permettent d'accumuler davantage de données pour chaque cycle de livraison. -
Créez une CloudWatch alarme Amazon sur la
DataFreshnessmétrique pour détecter les cas où la latence de livraison dépasse votre seuil acceptable. -
Vous pouvez créer plusieurs diffusions à partir du même flux Kinesis Data Streams. Chaque livraison fonctionne indépendamment, ce qui vous permet de transmettre des données vers plusieurs destinations simultanément.
Gestion des schémas (tables de streaming sur Apache Iceberg)
Étant donné que les livraisons de tables de streaming sont liées à un schéma fixe et ne prennent pas en charge l'évolution du schéma, gérez vos schémas avec soin pour éviter les échecs de livraison :
-
Enregistrez vos schémas dans le registre des AWS Glue schémas avant de créer une livraison. La livraison utilise le schéma enregistré pour définir la structure de la table de destination.
-
Les livraisons ne prennent pas en charge l'évolution du schéma. Si votre schéma change, vous devez supprimer et recréer la livraison avec le schéma mis à jour.
-
Utilisez la validation du schéma côté producteur pour vous assurer que tous les enregistrements sont conformes au schéma enregistré avant qu'ils ne soient écrits dans le flux. Cela permet de minimiser les échecs de livraison des enregistrements.
Disposition des objets S3 (compartiments Amazon S3 à usage général)
Disposez les objets que vous fournissez pour améliorer les performances des requêtes en aval et contrôler les coûts de stockage :
-
Choisissez un modèle de clé de sortie qui correspond aux modèles de requêtes de vos consommateurs en aval. Par exemple, utilisez des préfixes basés sur la date si vos requêtes filtrent fréquemment par plage de temps.
-
Activez la compression GZIP ou ZSTD pour réduire les coûts de stockage et améliorer les performances de lecture pour les charges de travail d'analyse en aval.
-
Choisissez la classe de stockage Amazon S3 appropriée en fonction de vos modèles d'accès aux données. Utilisez STANDARD pour les données fréquemment consultées, INTELLIGENT_TIERING pour permettre à Amazon S3 de déplacer automatiquement les objets entre les niveaux d'accès, ou GLACIER_IR pour les données rarement consultées qui doivent encore être extraites en quelques millisecondes.
Sécurité
Protégez vos données de livraison et vos informations d'identification grâce à l'accès au moindre privilège, au chiffrement et à l'audit :
-
Étendez votre politique IAM au bucket ou à la table spécifique dans lequel la diffusion écrit. Évitez d'utiliser des ARN de ressources génériques.
-
Incluez les clés de
aws:SourceAccountconditionaws:SourceArnet dans la politique de confiance du rôle IAM utilisé par la diffusion. Cela permet d'éviter le problème de confusion des adjoints en garantissant que seul votre service spécifique peut assumer le rôle. -
Activez la AWS CloudTrail journalisation pour auditer tous les appels d'API de livraison et les modifications de configuration.
-
Utilisez une AWS KMS clé gérée par le client pour les données sensibles. Cela vous donne un contrôle total sur la rotation des clés, les politiques d'accès et les pistes d'audit.
Dead-letter file d'attente
Capturez et diagnostiquez les enregistrements qui ne peuvent pas être livrés en configurant et en surveillant une file d'attente de lettres mortes :
-
Configurez toujours une file d'attente de lettres mortes pour votre livraison. Les enregistrements qui ne peuvent pas être livrés à destination sont envoyés dans la file d'attente des lettres mortes pour être inspectés ultérieurement.
-
Surveillez la
DLQDeliverySuccessmétrique (DeliveryToS3.DLQDeliverySuccessouDeliveryToIceberg.DLQDeliverySuccess) CloudWatch pour détecter le moment où les enregistrements sont acheminés vers la file d'attente des lettres mortes. -
Inspectez régulièrement les entrées dans la file d'attente des lettres mortes afin d'identifier les modèles d'échec de livraison et de prendre des mesures correctives au niveau du producteur ou de la configuration de livraison.
Contrôle
Détectez les problèmes de livraison à un stade précoce en émettant des alertes sur CloudWatch les indicateurs clés et en activant les journaux de livraison :
-
Créez des CloudWatch alarmes sur les indicateurs de livraison
DataFreshnesset d'échec d'enregistrement (DeliveryToS3.FailedRecordCountouDeliveryToIceberg.FailedRowCount) pour détecter de manière proactive les problèmes de livraison. -
Activez CloudWatch les journaux de votre livraison pour enregistrer des diagnostics de livraison détaillés et des messages d'erreur.
-
Suivez la métrique des octets délivrés (
DeliveryToS3.BytesOutouDeliveryToIceberg.BytesOut) pour surveiller le débit et identifier les baisses inattendues du volume de données.