Configurer le stream Firehose - Amazon Data Firehose

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.

Configurer le stream Firehose

Pour créer un flux Firehose avec les tables Apache Iceberg comme destination, vous devez configurer les éléments suivants.

Note

La configuration d'un flux Firehose pour la diffusion vers des tables dans des compartiments de tables S3 est identique à celle des tables Apache Iceberg dans Amazon S3.

Configuration de la source et de la destination

Pour fournir des données aux tables Apache Iceberg, choisissez la source de votre flux.

Pour configurer la source de votre flux, consultez la section Configurer les paramètres de la source.

Choisissez ensuite les tables Apache Iceberg comme destination et fournissez un nom de flux Firehose.

Configuration de la transformation des données

Pour effectuer des transformations personnalisées sur vos données, telles que l'ajout ou la modification d'enregistrements dans votre flux entrant, vous pouvez ajouter une fonction Lambda à votre flux Firehose. Pour plus d'informations sur la transformation des données à l'aide de Lambda dans un flux Firehose, consultez. Transformez les données sources dans Amazon Data Firehose

Pour les tables Apache Iceberg, vous devez spécifier la manière dont vous souhaitez acheminer les enregistrements entrants vers les différentes tables de destination et les opérations que vous souhaitez effectuer. L'un des moyens de fournir les informations de routage requises à Firehose consiste à utiliser une fonction Lambda.

Pour plus d'informations, voir Router des enregistrements vers différentes tables Iceberg.

Catalogue de données Connect

Apache Iceberg nécessite un catalogue de données pour écrire dans les tables Apache Iceberg. Firehose s'intègre aux AWS Glue Data Catalog tables Apache Iceberg.

Vous pouvez l'utiliser AWS Glue Data Catalog dans le même compte que votre stream Firehose ou dans un compte croisé et dans la même région que votre stream Firehose (par défaut), ou dans une autre région.

Configurer les expressions JQ

Pour les tables Apache Iceberg, vous devez spécifier la manière dont vous souhaitez acheminer les enregistrements entrants vers les différentes tables de destination ainsi que les opérations telles que l'insertion, la mise à jour et la suppression que vous souhaitez effectuer. Vous pouvez le faire en configurant des expressions JQ pour que Firehose puisse les analyser et obtenir les informations requises. Pour de plus amples informations, veuillez consulter Fournir des informations de routage à Firehose avec expression JSONQuery.

Configurer des clés uniques

Mises à jour et suppressions avec plusieurs tables : les clés uniques sont un ou plusieurs champs de votre enregistrement source qui identifient de manière unique une ligne dans les tables Apache Iceberg. Si vous avez un scénario d'insertion uniquement avec plusieurs tables, vous n'avez pas besoin de configurer de clés uniques. Si vous souhaitez effectuer des mises à jour et des suppressions sur certaines tables, vous devez configurer des clés uniques pour les tables requises. Notez que la mise à jour insère automatiquement la ligne si la ligne est manquante dans les tableaux. Si vous n'avez qu'une seule table, vous pouvez configurer des clés uniques.

Vous pouvez soit configurer des clés uniques par table dans le cadre de la création du stream Firehose, soit les définir identifier-field-idsnativement dans Iceberg lors de la création ou de la modification d'une table. La configuration de clés uniques par table lors de la création du flux est facultative. Si vous ne configurez pas de clés uniques par table lors de la création du stream, Firehose vérifie identifier-field-ids les tables requises et les utilisera comme clés uniques. Si les deux ne sont pas configurés, la livraison des données avec les opérations de mise à jour et de suppression échoue.

Pour configurer cette section, indiquez le nom de la base de données, le nom de la table et les clés uniques des tables dans lesquelles vous souhaitez mettre à jour ou supprimer des données. Vous ne pouvez avoir qu'une entrée pour chaque table de la configuration. Facultativement, vous pouvez également choisir de fournir un préfixe de compartiment d'erreur si les données de la table ne sont pas livrées, comme indiqué dans l'exemple suivant.

[ { "DestinationDatabaseName": "MySampleDatabase", "DestinationTableName": "MySampleTable", "UniqueKeys": [ "COLUMN_PLACEHOLDER" ], "S3ErrorOutputPrefix": "OPTIONAL_PREFIX_PLACEHOLDER" } ]

Spécifier la durée de la nouvelle tentative

Vous pouvez utiliser cette configuration pour spécifier la durée en secondes pendant laquelle Firehose doit tenter de réessayer en cas d'échec lors de l'écriture dans les tables Apache Iceberg dans Amazon S3. Vous pouvez définir une valeur comprise entre 0 et 7 200 secondes pour effectuer de nouvelles tentatives. Par défaut, Firehose réessaie pendant 300 secondes.

Gérer les échecs de livraison ou de traitement

Vous devez configurer Firehose pour qu'il envoie des enregistrements à un compartiment de sauvegarde S3 au cas où il rencontrerait des échecs lors du traitement ou de la diffusion d'un flux après expiration du délai de nouvelle tentative. Pour cela, configurez le préfixe de sortie d'erreur du compartiment de sauvegarde S3 et le préfixe de sortie d'erreur du compartiment de sauvegarde S3 dans les paramètres de sauvegarde de la console.

Configurer les indices de mémoire tampon

Firehose met en mémoire tampon les données de streaming entrantes en mémoire jusqu'à une certaine taille (taille de la mémoire tampon) et pendant une certaine période (intervalle de mise en mémoire tampon) avant de les transmettre aux tables Apache Iceberg. Vous pouvez choisir une taille de tampon de 1 à 128 MiBs et un intervalle de mémoire tampon de 0 à 900 secondes. Des indices de mémoire tampon plus élevés permettent de réduire le nombre d'écritures S3, de réduire les coûts de compactage grâce à des fichiers de données plus volumineux et d'accélérer l'exécution des requêtes, mais avec une latence plus élevée. Des valeurs indicatives de mémoire tampon plus faibles fournissent les données avec une latence plus faible.

Configurer les paramètres avancés

Vous pouvez configurer le chiffrement côté serveur, la journalisation des erreurs, les autorisations et les balises pour vos tables Apache Iceberg. Pour de plus amples informations, veuillez consulter Configurer les paramètres avancés. Vous devez ajouter le IAM rôle que vous avez créé dans le cadre duConditions requises pour utiliser les tables Apache Iceberg comme destination. Firehose assumera le rôle d'accéder aux AWS Glue tables et d'écrire dans les compartiments Amazon S3.

La création d'un stream Firehose peut prendre plusieurs minutes. Une fois que vous avez créé le flux Firehose avec succès, vous pouvez commencer à y ingérer des données et les afficher dans les tables Apache Iceberg.