Concepts généraux et d'ETL de streaming

Q : qu'est-ce que l'ETL de streaming ?

L'ETL de streaming est le traitement et le déplacement de données en temps réel d'un endroit à un autre. ETL est l'abréviation des fonctions d'extraction, de transformation et de chargement (Extract, Transform, Load) de la base de données. L'extraction fait référence à la collecte de données à partir d'une source. La transformation fait référence à tous les processus effectués sur ces données. La charge fait référence à l'envoi des données traitées vers une destination telle qu'un entrepôt, un lac de données ou un outil analytique.

Q : qu'est-ce qu'Amazon Kinesis Data Firehose ?

Kinesis Data Firehose est une solution ETL de streaming. C'est le moyen le plus simple de charger les données de streaming vers les magasins de données et les outils d'analytique. La solution collecte, transforme et charge les données en streaming dans Amazon S3, Amazon Redshift, Amazon OpenSearch Service et Splunk, ce qui permet d'effectuer une analytique en quasi-temps réel avec les tableaux de bord et outils de business intelligence existants que vous utilisez habituellement. Il s'agit d'un service entièrement géré qui s'adapte automatiquement au débit de vos données et ne nécessite pas d'administration continue. Il peut également regrouper, compresser et chiffrer les données avant de les charger, ce qui réduit l'espace de stockage de la destination utilisé tout en renforçant la sécurité.

Q : qu'est-ce qu'une source dans Kinesis Data Firehose ?

Une source est l'endroit où vos données de streaming sont continuellement générées et collectées. Par exemple, une source peut être un serveur de connexion s'exécutant sur des instances Amazon EC2, une application s'exécutant sur appareils mobiles ou un capteur sur un appareil IoT. Vous pouvez connecter vos sources à Kinesis Data Firehose à l'aide : 1) de l'API Amazon Kinesis Data Firehose qui utilise le kit AWS SDK pour Java, .NET, Node.js, Python ou Ruby. 2) du flux de données Kinesis, où Kinesis Data Firehose lit facilement les données à partir d'un flux de données Kinesis existant et les charge dans les destinations Kinesis Data Firehose ; 3) de services pris en charge nativement par AWS comme AWS Cloudwatch, AWS EventBridge, AWS IOT ou AWS Pinpoint ; pour obtenir la liste complète, consultez le guide du développeur Amazon Kinesis Data Firehose ; 4) de Kinesis Agents, qui est une application logicielle Java autonome surveillant continuellement un ensemble de fichiers et envoyant de nouvelles données à votre flux ; 5) de Fluentbit, qui est un processeur et redirecteur de journal open source ; 6) d'AWS Lambda, qui est un service de calcul sans serveur qui vous permet d'exécuter du code sans approvisionner ni gérer de serveurs. Vous pouvez utiliser l'écriture de votre fonction Lambda pour envoyer le trafic de S3 ou DynamoDB vers Kinesis Data Firehose en fonction d'un événement déclencheur.

Q : qu'est-ce qu'une destination dans Kinesis Data Firehose ?

Une destination représente le magasin de données où vos données seront transmises. Kinesis Data Firehose prend actuellement en charge Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Splunk, Datadog, NewRelic, Dynatrace, Sumologic, LogicMonitor, MongoDB ainsi que les points de terminaison HTTP en tant que destinations.

Q : Qu'est-ce que Kinesis Data Firehose gère pour moi ?

Kinesis Data Firehose gère l'ensemble de l'infrastructure sous-jacente, du stockage, des réseaux et de la configuration nécessaires pour collecter et charger vos données dans Amazon S3, Amazon Redshift, Amazon OpenSearch Service ou Splunk. Vous n'avez à vous soucier ni de l'allocation, ni du déploiement, ni de la maintenance continue du matériel et des logiciels, ni de l'écriture d'une autre application pour gérer ce processus. Kinesis Data Firehose se met également à l'échelle de manière élastique sans qu'aucun frais de développement associé ou intervention ne soient requis. De plus, Kinesis Data Firehose réplique de manière synchrone les données sur trois installations dans une Région AWS, offrant une haute disponibilité et durabilité pour les données lors de leur transport vers les destinations.

Q : comment utiliser Kinesis Data Firehose ?

Suite à votre inscription à Amazon Web Services, vous pouvez commencer à utiliser Kinesis Data Firehose en suivant les étapes indiquées ci-après :

  • Créez un flux de diffusion Kinesis Data Firehose via la console Firehose ou par le biais de l'opération CreateDeliveryStream. Vous pouvez éventuellement configurer une fonction AWS Lambda dans votre flux de diffusion pour préparer et transformer les données brutes avant de charger les données.
  • Configurez vos producteurs de données de manière à ce qu'ils envoient continuellement des données vers votre flux de diffusion à l'aide d'Amazon Kinesis Agent ou de l'API Firehose.
  • Firehose charge automatiquement et continuellement vos données dans les destinations que vous spécifiez.

Q : qu'est-ce qu'un flux de diffusion dans Kinesis Data Firehose ?

Un flux de diffusion constitue l'entité sous-jacente de Kinesis Data Firehose. Vous utilisez Firehose en créant un flux de diffusion, puis en envoyant des données vers celui-ci. Vous pouvez créer un flux de diffusion Kinesis Data Firehose via la console Firehose ou par le biais de l'opération CreateDeliveryStream. Pour en savoir plus, consultez la page Création d'un flux de diffusion.

Q : qu'est-ce qu'un enregistrement dans Kinesis Data Firehose ?

Un enregistrement correspond aux données utiles que le producteur de données envoie vers un flux de diffusion. La taille maximale d'un enregistrement (avant l'encodage en Base64) est de 1 024 Ko.

Q : quelles sont les limites de Kinesis Data Firehose ?

Pour obtenir des informations sur les limites, consultez la section relative aux limites d'Amazon Kinesis Data Firehose dans le guide du développeur.

Sources de données

Q : quels langages de programmation ou plateformes puis-je utiliser pour accéder à l'API Kinesis Data Firehose ?

L'API Kinesis Data Firehose est disponible dans les kits SDK Amazon Web Services. Pour obtenir la liste des plateformes et langages de programmation pour les kits SDK Amazon Web Services, consultez la page Outils pour Amazon Web Services.

Q : qu'est-ce qu'Amazon Kinesis Agent ?

Kinesis Agent est une application Java pré-intégrée qui permet de collecter et d'envoyer facilement des données vers votre flux de diffusion. Cet agent peut être installé dans des environnements serveur basés sur Linux tels que des serveurs web, de journaux ou de base de données. L'agent contrôle certains fichiers et envoie en continu des données à votre flux de diffusion. Amazon Kinesis Agent prend actuellement en charge Amazon Linux, Red Hat Enterprise Linux et Microsoft Windows. Pour en savoir plus, consultez la section relative à l'écriture à l'aide d'agents.

Q : où puis-je obtenir Amazon Kinesis Agent ?

Vous pouvez télécharger et installer Kinesis Agent à l'aide de la commande et du lien indiqués ci-après :

  • Sur Amazon Linux : sudo yum install –y aws-kinesis-agent
  • Sur Red Hat Enterprise Linux : sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm
  • Depuis GitHub : awlabs/amazon-kinesis-agent
  • Sur Windows : https://docs.aws.amazon.com/kinesis-agent-windows/latest/userguide/getting-started.html#getting-started-installation

Q : quelle différence existe-t-il entre les opérations PutRecord et PutRecordBatch ?

Vous pouvez ajouter des données à un flux de diffusion Kinesis Data Firehose par le biais de Kinesis Agent ou des opérations PutRecord et PutRecordBatch de Firehose. L'opération PutRecord autorise un seul enregistrement de données au sein d'un appel d'API. L'opération PutRecordBatch, quant à elle, en autorise plusieurs. Pour en savoir plus, consultez les pages relatives à PutRecord et PutRecordBatch.

Q : comment ajouter des données à mon flux de diffusion Kinesis Data Firehose depuis mon flux de données Kinesis ?

Lorsque vous créez ou mettez à jour votre flux de diffusion via la console AWS ou des API Firehose, vous pouvez configurer un flux de données Kinesis comme source de votre flux de diffusion. Une fois configuré, Firehose lira automatiquement les données de votre flux de données Kinesis et chargera les données vers des destinations spécifiées.

Q : à quelle fréquence Kinesis Data Firehose lit-il les données provenant de mon flux Kinesis ?
Kinesis Data Firehose appelle Kinesis Data Streams GetRecords() une fois par seconde pour chaque partition Kinesis.

Q : à partir d'où Kinesis Data Firehose lit-il les données lorsque mon flux de données Kinesis est configuré comme source de mon flux de diffusion ?

Kinesis Data Firehose démarre la lecture des données à partir du DERNIER emplacement de votre flux de données Kinesis lorsqu'il est configuré comme source d'un flux de diffusion. Pour en savoir plus sur l'emplacement du flux de données Kinesis, consultez GetShardIterator dans la référence d'API Kinesis Data Streams Service.

Q : puis-je configurer mon flux de données Kinesis pour qu'il soit la source de plusieurs flux de diffusion Kinesis Data Firehose ?

Oui, vous pouvez. Cela dit, il est à noter que l'appel GetRecords() de Kinesis Data Firehose est comptabilisé par rapport à la limite générale d'accélération de votre partition Kinesis. Vous devez donc planifier votre flux déployé avec vos autres applications Kinesis pour vous assurer de votre accélération. Pour en savoir plus, consultez la section Limites de Kinesis Data Streams dans le guide du développeur Kinesis Data Streams.

Q : puis-je quand même ajouter des données au flux de diffusion via Kinesis Agent ou via les opérations PutRecord et PutRecordBatch de Firehose lorsque mon flux de données Kinesis est configuré comme source ?

Non, ce n'est pas possible. Lorsqu'un flux de données Kinesis est configuré comme source pour un flux de diffusion Kinesis Data Firehose, les opérations PutRecord et PutRecordBatch de Firehose sont désactivées. Il serait préférable que vous ajoutiez des données à votre flux de données Kinesis via les opérations PutRecord et PutRecords de Kinesis Data Streams.

Q : comment ajouter des données à mon flux de diffusion à partir d'AWS IoT ?

Vous pouvez ajouter des données à votre flux déployé à partir d'AWS IoT en créant une action AWS IoT qui envoie des événements à votre flux déployé. Pour en savoir plus. Consultez la section relative à l'écriture dans Amazon Kinesis Data Firehose avec AWS IoT dans le guide du développeur Kinesis Data Firehose.

Q : comment ajouter des données à mon flux de diffusion à partir de CloudWatch Logs ?

Vous pouvez ajouter des données à votre flux de diffusion Kinesis Data Firehose à partir de CloudWatch Logs en créant un filtre d'abonnement CloudWatch Logs qui envoie des événements à votre flux de diffusion. Pour en savoir plus, consultez Utilisation des filtres d'abonnement de CloudWatch Logs dans le guide de l'utilisateur Amazon CloudWatch.

Q : comment ajouter des données à mon flux de diffusion Kinesis Data Firehose à partir de CloudWatch Events ?

Vous pouvez ajouter des données à votre flux de diffusion Kinesis Data Firehose à partir de CloudWatch Events en créant une règle CloudWatch Events avec votre flux de diffusion comme cible. Pour en savoir plus, consultez la section relative à l'écriture dans Amazon Kinesis Data Firehose avec CloudWatch Events dans le guide du développeur Kinesis Data Firehose.

Q : comment ajouter des données à mon flux de diffusion Amazon Kinesis Data Firehose à partir de AWS Eventbridge ?

Vous ajoutez des données à votre flux de diffusion Kinesis Data Firehose à partir de la console AWS EventBridge. Pour plus d'informations, consultez la documentation AWS EventBridge.

Q : quel type de chiffrement puis-je utiliser ?

Kinesis Data Firehose vous permet de chiffrer vos données une fois qu'elles ont été transférées vers votre compartiment Amazon S3. Lors de la création de votre flux de diffusion, vous pouvez choisir de chiffrer vos données à l'aide d'une clé AWS Key Management Service (KMS) que vous possédez. Pour en savoir plus sur KMS, consultez la page AWS Key Management Service.

Q : quel rôle IAM dois-je spécifier lors de la création d'un flux de diffusion ?

Kinesis Data Firehose endosse le rôle IAM que vous spécifiez pour accéder aux ressources telles que votre compartiment Amazon S3 et votre domaine Amazon OpenSearch. Pour plus d'informations, consultez la section Contrôle d'accès avec Kinesis Data Firehose dans le guide du développeur Kinesis Data Firehose.

Transformation de données et conversion de format

Q : comment préparer et transformer des données brutes dans Kinesis Data Firehose ?

Kinesis Data Firehose prend en charge la conversion de format de données intégrées à partir de données brutes ou Json vers des formats comme Apache Parquet et Apache ORC requis par vos dépôts de données de destination, sans avoir à créer vos propres pipelines de traitement de données. Kinesis Data Firehose vous permet également de partitionner dynamiquement vos données de streaming avant leur livraison à S3 à l'aide de clés statiques ou définies dynamiquement telles que « customer_id » ou « transaction_id ». Kinesis Data Firehose regroupe les données par ces clés et les livre dans des préfixes S3 à clé unique, ce qui vous permet d'effectuer plus facilement des analytiques dans S3 de haute performance et à moindre coût, à l'aide d'Athena, EMR et Redshift Spectrum.

En plus de l'option de conversion de format intégrée dans Amazon Kinesis Data Firehose, vous pouvez également utiliser une fonction AWS Lambda pour préparer et transformer les données brutes entrantes dans votre flux de diffusion avant de les charger vers les destinations. Vous pouvez configurer une fonction AWS Lambda pour la transformation de données lorsque vous créez un nouveau flux de diffusion ou lorsque vous en modifiez un existant. Amazon a créé plusieurs plans Lambda parmi lesquels vous pouvez choisir pour un démarrage rapide. pour obtenir la liste complète, consultez le guide du développeur Amazon Kinesis Data Firehose ;

Q : quel format de compression puis-je utiliser ?

Amazon Kinesis Data Firehose vous permet de compresser vos données avant de les transférer vers Amazon S3. Le service prend actuellement en charge les formats de compression GZIP, ZIP et SNAPPY. Seul le format GZIP est pris en charge si les données sont ensuite chargées vers Amazon Redshift.

Q : Comment fonctionne la compression lorsque j'utilise la fonction d'abonnement CloudWatch Logs ?

Vous pouvez utiliser la fonction d'abonnement CloudWatch Logs pour diffuser des données en streaming de CloudWatch Logs vers Kinesis Data Firehose. Étant donné que tous les événements de journal de CloudWatch Logs sont déjà compressés au format gzip, vous devez désactiver la compression de Firehose pour éviter une double compression. Pour plus d'informations sur les fonctions d'abonnement CloudWatch Logs, consultez la section relative aux filtres d'abonnement avec Amazon Kinesis Data Firehose dans le guide de l'utilisateur Amazon CloudWatch Logs.

Q : comment puis-je renvoyer les données préparées et transformées de ma fonction AWS Lambda vers Amazon Kinesis Data Firehose ?

Tous les enregistrements transformés provenant de Lambda doivent être renvoyés vers Firehose avec les trois paramètres suivants ; sinon, Firehose les rejettera et les traitera comme un échec de transformation de données.

  • recordId: Firehose transmet un recordId avec chaque enregistrement sur Lambda durant l'invocation. Chaque enregistrement transformé doit être renvoyé avec le même recordId. Toute incompatibilité entre le recordId original et le recordId renvoyé sera traitée comme un échec de transformation de données.
  • result: L'état du résultat de transformation de chaque enregistrement. Les valeurs suivantes sont autorisées pour ce paramètre : « Ok » si l'enregistrement est transformé correctement comme prévu. « Abandonné » si votre logique de traitement abandonne intentionnellement l'enregistrement comme prévu. « ProcessingFailed » si l'enregistrement ne peut pas être transformé comme prévu. Firehose traite les enregistrements renvoyés avec les états « OK » et « Abandonné » comme des enregistrements traités avec succès, et ceux avec l'état « ProcessingFailed » comme des enregistrements échoués lorsqu'il génère les métriques SucceedProcessing.Records et SucceedProcessing.Bytes.
  • data: la charge utile des données transformées après l'encodage en base64.

Q : qu'est-ce que le journal d'erreurs ?

Si vous activez la transformation de données avec Lambda, Firehose peut enregistrer toutes les invocations de Lambda et les erreurs de livraison de données dans les Amazon CloudWatch Logs, afin que vous puissiez afficher les journaux d'erreurs spécifiques si l'invocation de Lambda ou la transmission de données échoue. Pour plus d'informations, consultez la page dédiée à la Surveillance avec Amazon CloudWatch Logs.

Q : qu'est-ce que la sauvegarde de l'enregistrement source ?

Si vous utilisez la transformation de données avec Lambda, vous pouvez activer la sauvegarde des enregistrements source et Amazon Kinesis Data Firehose transmettra les données entrantes non transformées vers un compartiment S3 séparé. Vous pouvez spécifier un préfixe supplémentaire à ajouter devant le préfixe de temps UTC « AAAA/MM/JJ/HH » généré par Firehose.

Transformation de données intégrées pour Amazon S3

Q : quand utiliser le partitionnement dynamique Kinesis Data Firehose ?

Le partitionnement dynamique de Kinesis Data Firehose élimine les complexités et les retards du partitionnement manuel à la source ou après le stockage des données, et permet des analytiques plus rapides pour interroger des ensembles de données optimisés. Cela rend les ensembles de données immédiatement disponibles pour les analytiques afin d'exécuter leurs requêtes efficacement et améliore le contrôle d'accès précis aux données. Par exemple, les clients de l'automatisation du marketing peuvent partitionner les données à la volée par ID client, ce qui permet aux requêtes spécifiques au client d'interroger des ensembles de données optimisés et de fournir des résultats plus rapidement. Les clients des opérations TI ou de surveillance de la sécurité peuvent créer des regroupements basés sur l'horodatage des événements intégré dans les journaux afin de pouvoir interroger des ensembles de données optimisés et obtenir des résultats plus rapidement. Ces fonctions combinées à celle existante de conversion de format JSON vers parquet d'Amazon Kinesis Data Firehose fait d'Amazon Kinesis Data Firehose une option ETL de streaming idéale pour S3.

Q : comment configurer le partitionnement dynamique avec Kinesis Data Firehose ?

Vous pouvez configurer la capacité de partitionnement des données Kinesis Data Firehose via la Console de gestion AWS, les CLI ou les kits SDK. Lorsque vous créez ou mettez à jour un flux de diffusion Kinesis Data Firehose, sélectionnez Amazon S3 comme destination de diffusion pour le flux de diffusion et activez le partitionnement dynamique. Vous pouvez spécifier des clés ou créer une expression qui sera évaluée au moment de l'exécution pour définir les clés utilisées pour le partitionnement. Par exemple, vous pouvez sélectionner un champ de données dans le flux entrant tel que l'ID client et définir une expression de préfixe S3 telle que customer_id=!{partitionKey:customer_id}/, qui sera évaluée au moment de l'exécution en fonction des enregistrements intégrés pour définir à quel préfixe S3 livrer les enregistrements.

Q : quels types de transformations et de traitement de données puis-je effectuer avec le partitionnement dynamique et les clés de partitionnement ?

Kinesis Data Firehose prend en charge la conversion parquet/orc dès que vous écrivez vos données sur Amazon S3. Kinesis Data Firehose s'intègre également à la fonction Lambda, ce qui vous permet d'écrire votre propre code de transformation. Kinesis Data Firehose prend également en charge l'extraction des champs de données clés à partir des enregistrements au format JSON. Kinesis Data Firehose prend également en charge le langage d'analyse JQ pour permettre les transformations sur ces clés de partition. Pour en savoir plus, consultez le guide du développeur Kinesis Data Firehose.

Transmission des données et destinations

Q : puis-je garder une copie de toutes les données brutes dans mon compartiment S3 ?

Oui, Kinesis Data Firehose peut sauvegarder tous les enregistrements non transformés dans votre compartiment S3 tout en transmettant des enregistrements transformés à la destination. La sauvegarde des enregistrements source peut être activée lorsque vous créez ou mettez à jour votre flux de diffusion.

Q : à quelle fréquence Kinesis Data Firehose transfère-t-il des données vers mon compartiment Amazon S3 ?

La fréquence de transmission des données vers Amazon S3 est déterminée par la taille de mémoire tampon S3 et la valeur d'intervalle de mise en mémoire tampon configurées pour votre flux de diffusion. Kinesis Data Firehose met en mémoire tampon les données entrantes avant de les transférer vers Amazon S3. Vous pouvez configurer les valeurs de la taille de mémoire tampon S3 (1 Mo à 128 Mo) ou de l'intervalle de mise en mémoire tampon (60 à 900 secondes). La première condition remplie déclenche la transmission de données vers Amazon S3. Si vous avez activé parquet Apache ou le partitionnement dynamique, la taille de votre mémoire tampon est en Mo et varie de 64 Mo à 128 Mo pour la destination Amazon S3, 128 Mo étant la valeur par défaut. Notez que dans les cas où la livraison des données à la destination prend du retard par rapport à l'intégration des données dans le flux de diffusion, Kinesis Data Firehose augmente automatiquement la taille de la mémoire tampon pour rattraper son retard et s'assurer que toutes les données sont transmises à la destination.

Q : comment la taille de la mémoire tampon s'applique-t-elle si je choisis de compresser mes données ?

La taille du tampon s'applique avant la compression. Si vous choisissez de compresser vos données, la taille des objets au sein de votre compartiment Amazon S3 peut être inférieure à la taille de la mémoire tampon que vous spécifiez.

Q : quel privilège requis pour l'utilisateur Amazon Redshift dois-je spécifier lors de la création d'un flux de diffusion ?

L'utilisateur Amazon Redshift doit disposer du privilège INSERT Redshift pour copier des données à partir de votre compartiment Amazon S3 vers votre cluster Redshift.

Q : Que dois-je faire si mon cluster Amazon Redshift figure au sein d'un VPC ?

Si votre cluster Amazon Redshift figure au sein d'un VPC, vous devez autoriser Amazon Kinesis Data Firehose à accéder à votre cluster Amazon Redshift en débloquant les adresses IP Firehose depuis votre VPC. Pour obtenir des informations sur le déblocage des adresses IP sur votre VPC, consultez la section relative à l'attribution d'un accès Firehose à une destination Amazon Redshift dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Pourquoi dois-je fournir un compartiment Amazon S3 lorsque je choisis Amazon Redshift en tant que destination ?

Pour la destination Amazon Redshift, Amazon Kinesis Data Firehose transfère d'abord les données vers votre compartiment Amazon S3, puis émet une commande COPY Redshift pour charger les données de votre compartiment S3 vers votre cluster Redshift.

Q : Qu'est-ce qu'Amazon OpenSearch Service (successeur d'Amazon Elasticsearch Service) ?

Amazon OpenSearch Service facilite l'analytique de journaux interactifs, la surveillance des applications en temps réel, la recherche de contenu sur les sites web, et plus encore. OpenSearch est une suite de recherche et d'analyse distribuée, open source, dérivée d'Elasticsearch. Amazon OpenSearch Service offre les dernières versions d'OpenSearch, la prise en charge de 19 versions d'Elasticsearch (versions 1.5 à 7.10) et des fonctionnalités de visualisation à technologie OpenSearch Dashboards et Kibana (versions 1.5 à 7.10). Cliquez ici pour plus d'informations sur Amazon OpenSearch.

Q : qu'est-ce que la rotation d'index pour la destination Amazon OpenSearch Service ?

Kinesis Data Firehose peut procéder à la rotation de votre index Amazon OpenSearch Service en fonction d'une certaine durée. Vous pouvez configurer cette durée lors de la création de votre flux de diffusion. Pour plus d'informations, consultez Rotation d'index pour la destination Amazon OpenSearch dans le guide du développeur Amazon Kinesis Data Firehose.

Q : pourquoi dois-je fournir un compartiment Amazon S3 lorsque je choisis Amazon OpenSearch Service en tant que destination ?

Lors du chargement des données dans Amazon OpenSearch Service, Kinesis Data Firehose peut sauvegarder toutes les données ou seulement les données dont la transmission a échoué. Pour profiter de cette fonction et éviter toute perte de données, vous devez fournir un compartiment Amazon S3 de sauvegarde.

Q : Puis-je modifier les configurations de mon flux de diffusion après l'avoir créé ?

Vous pouvez modifier la configuration de votre flux de diffusion à n'importe quel moment après sa création, Vous pouvez le faire en utilisant la console Firehose ou l'opération UpdateDestination. Votre flux de diffusion conserve l'état ACTIVE lors de la mise à jour de vos configurations et vous pouvez continuer d'envoyer des données à votre flux. En général, les configurations mises à jour prennent effet en seulement quelques minutes.

En cas de distribution vers une destination VPC, vous pouvez modifier l'URL du point de terminaison de destination, tant que la nouvelle destination est accessible dans les mêmes VPC, sous-réseaux et groupes de sécurité. Pour modifier les VPC, sous-réseaux et groupes de sécurité, vous devez recréer le flux de diffusion Firehose.

Q : Puis-je utiliser un flux de diffusion Kinesis Data Firehose dans un compte pour transmettre mes données dans une destination de VPC de domaine Amazon OpenSearch Service dans un autre compte ?

Non, votre flux de diffusion Kinesis Data Firehose et le domaine Amazon OpenSearch Service de destination doivent se trouver dans le même compte.

Q : Puis-je utiliser un flux de diffusion Kinesis Data Firehose dans une région pour transmettre mes données dans une destination de VPC de domaine Amazon OpenSearch Service dans une autre région ?

Non, votre flux de diffusion Kinesis Data Firehose et le domaine Amazon OpenSearch Service de destination doivent se trouver dans la même région.

Q : À quelle fréquence le service Kinesis Data Firehose transfère-t-il les données vers mon domaine Amazon OpenSearch ?

La fréquence de transmission des données vers Amazon OpenSearch Service est déterminée par les valeurs de la taille de mémoire tampon et de l'intervalle de mise en mémoire tampon d'OpenSearch que vous avez configurées pour votre flux de diffusion. Firehose met en mémoire tampon les données entrantes avant de les transférer vers Amazon OpenSearch Service. Vous pouvez configurer les valeurs de la taille de mémoire tampon (1 Mo à 100 Mo) ou de l'intervalle de mise en mémoire tampon (60 à 900 secondes) d'OpenSearch. La première condition remplie déclenche la transmission des données vers Amazon OpenSearch Service. Notez que dans les cas où la transmission des données à la destination prend du retard sur l'ingestion des données dans le flux de diffusion, Amazon Kinesis Data Firehose augmente automatiquement la taille de la mémoire tampon pour rattraper son retard et s'assurer que toutes les données sont transmises à la destination.

Q : qu'est-ce que le dossier des manifestes présent dans mon compartiment Amazon S3 ?
Pour la destination Amazon Redshift, Amazon Kinesis Data Firehose génère des fichiers manifestes pour charger par lot des objets Amazon S3 vers le cluster Redshift. Le dossier des manifestes stocke les fichiers manifestes générés par Firehose.

Q : À quoi ressemblent les documents OpenSearch sauvegardés dans mon compartiment Amazon S3 ?
Si le mode « tous les documents » est utilisé, Amazon Kinesis Data Firehose concatène plusieurs enregistrements entrants en fonction de la configuration de la mise en mémoire tampon de votre flux de diffusion, puis les transfère vers votre compartiment S3 sous forme d'objet S3. Quel que soit le mode de sauvegarde configuré, les documents dont l'envoi a échoué sont transmis à votre compartiment S3 à l'aide d'un certain format JSON qui fournit des informations supplémentaires telles que le code d'erreur et l'heure de la tentative d'envoi. Pour plus d'informations, consultez la section relative à la sauvegarde Amazon S3 pour la destination Amazon ES dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Un flux de diffusion peut-il transférer des données vers plusieurs compartiments Amazon S3 ?

A l'heure actuelle, un flux de diffusion peut transmettre des données uniquement vers un seul compartiment Amazon S3. Si vous souhaitez que les données soient transférées vers plusieurs compartiments S3, vous pouvez créer plusieurs flux de diffusion.

Q : Un flux de diffusion peut-il transférer des données vers plusieurs clusters ou tables Amazon Redshift ?

À l'heure actuelle, un flux de diffusion peut transmettre des données uniquement vers un cluster et une table Amazon Redshift. Si vous souhaitez que les données soient transférées vers plusieurs tables ou clusters Redshift, vous pouvez créer plusieurs flux de diffusion.

Q : Un seul flux de diffusion peut-il transférer des données vers plusieurs domaines ou index Amazon OpenSearch Service ?

À l'heure actuelle, un flux de diffusion unique peut transmettre des données uniquement vers un domaine et un index Amazon OpenSearch Service. Si vous souhaitez que les données soient transférées vers plusieurs domaines ou index Amazon OpenSearch, vous pouvez créer plusieurs flux de diffusion.

Q : Comment Amazon Kinesis Data Firehose transfère-t-il les données vers mon domaine Amazon OpenSearch Service dans un VPC ?

Lorsque vous autorisez Kinesis Data Firehose à transmettre les données à une destination Amazon OpenSearch Service dans un VPC, Amazon Kinesis Data Firehose crée une ou plusieurs interfaces réseau Elastic (ENI) inter-comptes dans votre VPC pour chaque sous-réseau que vous choisissez. Amazon Kinesis Data Firehose utilise ces ENI pour transmettre les données dans votre VPC. Le nombre d'ENI est automatiquement mis à l'échelle pour répondre aux exigences de service.

Résolution de problèmes et gestion des flux de distribution

Q : Pourquoi suis-je soumis à des limitations lorsque j'envoie des données à mon flux de diffusion Amazon Kinesis Data Firehose ?

Par défaut, chaque flux de diffusion peut traiter jusqu'à 2 000 transactions/seconde, 5 000 enregistrements/seconde et 5 Mo/seconde. Vous pouvez facilement augmenter cette limite en envoyant un formulaire d'augmentation des limites de service.

Q : Pourquoi y a-t-il des enregistrements dupliqués dans mon compartiment Amazon S3, ma table Amazon Redshift, mon index Amazon OpenSearch ou mes clusters Splunk ?

Amazon Kinesis Data Firehose utilise au moins une fois la sémantique pour transmettre les données. Dans de rares conditions, notamment en cas de dépassement du délai de demande lors d'une tentative de livraison de données, la nouvelle tentative de livraison par Firehose peut produire des doublons si la requête précédente finit par aboutir.

Q : Que se passe-t-il si la diffusion des données vers mon compartiment Amazon S3 échoue ?

Si votre source de données est Direct PUT et que la diffusion de données vers votre compartiment Amazon S3 échoue, Amazon Kinesis Data Firehose tente à nouveau de diffuser les données toutes les 5 secondes pendant une période maximale de 24 heures. Si le problème persiste au-delà de la période de rétention maximale de 24 heures, Amazon Kinesis Data Firehose élimine les données en question.

Si votre source de données est Kinesis Data Streams que la diffusion de données vers votre compartiment Amazon S3 échoue, Amazon Kinesis Data Firehose tente à nouveau de diffuser les données toutes les 5 secondes pendant une période maximale équivalente à la durée configurée dans Kinesis Data Streams.

Q : Que se passe-t-il si la diffusion des données vers mon cluster Amazon Redshift échoue ?

Si la transmission des données vers votre cluster Amazon Redshift échoue, Amazon Kinesis Data Firehose réessaie de transmettre les données toutes les 5 minutes pendant une période maximale de 120 minutes. Une fois le délai de 120 minutes écoulé, Amazon Kinesis Data Firehose ignore le lot actuel d'objets S3 prêts pour la copie et passe au lot suivant. Les informations concernant les objets ignorés sont transmises à votre compartiment S3 en tant que fichier manifeste dans le dossier des erreurs, que vous pouvez utiliser pour effectuer un renvoi manuel. Pour obtenir des informations sur la COPIE manuelle des données avec des fichiers manifestes, consultez Utilisation d'un manifeste pour spécifier des fichiers de données.

Q : Que se passe-t-il si la transmission de données vers mon domaine Amazon OpenSearch échoue ?

Pour la destination Amazon OpenSearch Service, vous pouvez définir une période de nouvelle tentative d'envoi comprise entre 0 et 7 200 secondes lors de la création du flux de diffusion. Si la transmission de données vers votre domaine Amazon ES échoue, Amazon Kinesis Data Firehose essaie à nouveau de transmettre les données pendant la durée définie. Une fois la période de nouvelle tentative d'envoi écoulée, Amazon Kinesis Data Firehose ignore le lot de données actuel et passe au lot suivant. Les informations concernant les documents ignorés sont transmises à votre compartiment S3 dans le dossier opensearch_failed, que vous pouvez utiliser pour un remplissage manuel.

Q : Que se passe-t-il si la transformation de données échoue ?

Il existe deux types de scénarios d'échec lorsque Firehose tente d'évoquer votre fonction Lambda pour la transformation de données :

  • Le premier type correspond à l'échec d'invocation de la fonction pour des raisons telles que l'expiration du délai d'atteinte du réseau et l'atteinte des limites d'invocation Lambda. Dans ce genre de scénarios d'échec, Firehose refait une tentative d'invocation trois fois par défaut, puis ignore ce groupe d'enregistrement en particulier. Les enregistrements ignorés sont traités comme des enregistrements dont le traitement a échoué. Vous pouvez configurer le nombre de nouvelles tentatives d'invocations entre 0 et 300 à l'aide des API CreateDeliveryStream et UpdateDeliveryStream. Pour ce type d'échec, vous pouvez aussi utiliser la fonction de journalisation d'erreurs de Firehose afin d'émettre des erreurs d'invocation dans les journaux CloudWatch. Pour plus d'informations, consultez la page dédiée à la Surveillance avec Amazon CloudWatch Logs.
  • Le deuxième type de scénario d'erreur se produit lorsque le résultat de transformation d'un enregistrement est défini sur « ProcessingFailed » lorsqu'il est renvoyé de votre fonction Lambda. Firehose traite ces enregistrements comme des enregistrements dont le traitement a échoué. Pour ce type d'échec, vous pouvez utiliser la fonction de journalisation Lambda pour émettre des journaux d'erreurs dans les journaux CloudWatch. Pour plus d'informations, consultez la page Accès à Amazon CloudWatch Logs pour AWS Lambda.

Pour ces deux types de scénarios d'erreurs, les enregistrements dont l'enregistrement a échoué sont transmis vers votre compartiment S3 dans le dossier processing_failed.

Q : Pourquoi la taille des objets S3 transmis est-elle plus importante que la taille de tampon que j'ai indiquée dans la configuration des flux de diffusion ?

La taille des objets S3 transmis doit refléter la taille de tampon indiquée la plupart du temps si la condition de la taille de tampon est remplie avant la condition de l'intervalle de mise en mémoire tampon. Notez que lorsque la diffusion de données à destination retarde l'écriture de données vers le flux de diffusion, Firehose augmente la taille du tampon de façon dynamique pour rattraper le retard et garantir la diffusion de l'ensemble des données à destination. Dans ce cas, la taille des objets S3 transmis peut être plus importante que la taille de tampon indiquée.

Q : Qu'est-ce que le dossier erreurs dans mon compartiment Amazon S3 ?

Le dossier erreurs stocke les fichiers manifestes contenant des informations sur les objets S3 ayant échoué au chargement dans votre cluster Amazon Redshift. Vous pouvez charger de nouveau ces objets de façon manuelle par le biais de la commande COPY Redshift. Pour obtenir des informations sur la COPIE manuelle des données avec des fichiers manifestes, consultez Utilisation d'un manifeste pour spécifier des fichiers de données.

Q : Qu'est-ce que le dossier opensearch_failed dans mon compartiment Amazon S3 ?

Le dossier opensearch_failed stocke les documents dont le chargement vers Amazon OpenSearch a échoué. Que se passe-t-il si la transmission de données vers mon domaine Amazon OpenSearch échoue ? Vous pouvez ré-indexer ces documents manuellement à des fins de remplissage.

Q : Qu'est-ce que le dossier processing_failed dans mon compartiment Amazon S3 ?

Le dossier processing_failed conserve les enregistrements dont la transformation a échoué dans votre fonction AWS Lambda. Vous pouvez à nouveau traiter ces enregistrements manuellement.

Q : Comment puis-je surveiller l'activité et les performances de mon flux de diffusion Amazon Kinesis Data Firehose ?

La console Firehose affiche les métriques opérationnelles et de performances clés, telles que le volume de données entrantes et le volume de données transmises. Amazon Kinesis Data Firehose peut également être intégré à des métriques Amazon CloudWatch, ce qui vous permet d'enregistrer, de consulter et d'analyser des métriques pour vos flux de diffusion. Pour en savoir plus sur les métriques Amazon Kinesis Data Firehose, consultez la section relative à la Surveillance à l'aide des métriques Amazon CloudWatch dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Comment surveiller les échecs de transformation et de transmission de données de mon flux de diffusion Amazon Kinesis Data Firehose ?

Amazon Kinesis Data Firehose peut être intégré à Amazon CloudWatch Logs, ce qui vous permet de consulter les journaux d'erreurs spécifiques en cas d'échec de transmission ou de transformation de données. Vous pouvez activer la consignation des erreurs lors de la création de votre flux de diffusion. Pour plus d'informations, consultez la section relative à la Surveillance à l'aide d'Amazon CloudWatch Logs dans le guide du développeur Amazon Kinesis Data Firehose.

Q : Comment puis-je gérer et contrôler les accès à mon flux de diffusion Amazon Kinesis Data Firehose ?

Amazon Kinesis Data Firehose s'intègre à AWS Identity and Access Management, un service qui vous permet de contrôler l'accès des utilisateurs à vos ressources et services AWS en toute sécurité. Vous pouvez, par exemple, créer une politique permettant uniquement à un utilisateur ou à un groupe d'utilisateurs en particulier d'ajouter des données à votre flux de diffusion Firehose. Pour en savoir plus sur la gestion et le contrôle des accès à votre flux, consultez la page relative au contrôle d'accès avec Amazon Kinesis Data Firehose.

Q : Comment consigner les appels d'API envoyés à mon flux de diffusion Amazon Kinesis Data Firehose à des fins d'analyse de sécurité et de résolution des problèmes opérationnels ?

Amazon Kinesis Data Firehose s'intègre à AWS CloudTrail, un service qui enregistre les appels d'API AWS sur votre compte et vous fournit les fichiers journaux. Pour en savoir plus sur la journalisation des appels d'API et consulter la liste des opérations d'API Amazon Kinesis Data Firehose prises en charge, reportez-vous à la section dédiée à la journalisation des appels d'API Amazon Kinesis Data Firehose à l'aide d'AWS CloudTrail.

Tarification et facturation

Q : Kinesis Data Firehose est-il disponible dans le cadre de l'offre gratuite d'AWS ?

Non, Kinesis Data Firehose n'est actuellement pas disponible dans le cadre de l'offre gratuite d'AWS. L'offre gratuite d'AWS est un programme qui permet d'essayer gratuitement un certain nombre de services AWS. Pour en savoir plus, consultez la page relative à l'offre gratuite d'AWS.

Q : combien coûte Kinesis Data Firehose ?

Kinesis Data Firehose propose un système de tarification à l'utilisation très simple. Aucun investissement initial n'est nécessaire et nous n'appliquons pas de frais minimum : vous payez uniquement pour les ressources que vous utilisez. La tarification Amazon Kinesis Data Firehose est calculée en fonction du volume de données (Go) ingérées par Firehose, chaque enregistrement étant arrondi aux 5 Ko les plus proches. Pour en savoir plus sur les frais liés à Amazon Kinesis Data Firehose, consultez la page Tarification Amazon Kinesis Data Firehose.

Q : Lorsque j'utilise l'opération PutRecordBatch pour envoyer des données vers Amazon Kinesis Data Firehose, comment est calculé l'arrondi aux 5 Ko ?

L'arrondi aux 5 Ko est calculé au niveau de l'enregistrement plutôt qu'au niveau de l'opération d'API. Par exemple, si votre appel PutRecordBatch comprend deux enregistrements de 1 Ko chacun, le volume de données de cet appel compte comme 10 Ko. (5 Ko par enregistrement)

Q : Le coût de Kinesis Data Firehose inclut-il les coûts Amazon S3, Amazon Redshift, Amazon OpenSearch Service et AWS Lambda ?

Non, les frais associés à l'utilisation d'Amazon S3, Amazon Redshift, Amazon OpenSearch Service et AWS Lambda, notamment les coûts de stockage et de requêtes, vous sont facturés séparément. Pour plus d'informations, consultez Tarification Amazon S3, Tarification Amazon Redshift, Tarification Amazon OpenSearch Service et Tarification AWS Lambda.

Contrat de niveau de service (SLA)

Q : Qu'est-ce que garantit l'Amazon Kinesis Data Firehose SLA ?

Notre Amazon Kinesis Data Firehose SLA garantit un pourcentage de disponibilité mensuel d'au moins 99,9 % pour Amazon Kinesis Data Firehose.

Q : Comment savoir si je peux bénéficier d'un avoir de service dans le cadre du contrat de niveau de service (SLA) ?

Vous pouvez bénéficier d'un crédit SLA pour Amazon Kinesis Data Firehose dans le cadre du SLA Amazon Kinesis Data Firehose si plusieurs zones de disponibilité dans lesquelles vous exécutez une tâche dans la même région ont un pourcentage de disponibilité mensuel inférieur à 99,9 % pendant un cycle de facturation mensuel.

Pour consulter l'intégralité des conditions générales de l'accord de niveau de service Compute et en savoir plus sur la marche à suivre pour soumettre une demande, référez-vous à la page d'informations d'Amazon Kinesis Data Firehose SLA.

En savoir plus sur la tarification d'Amazon Kinesis Data Firehose

Visiter la page de tarification
Prêt à vous lancer ?
S'inscrire
D'autres questions ?
Nous contacter