Connexions Amazon S3 - AWS Glue

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.

Connexions Amazon S3

Vous pouvez utiliser AWS Glue pour Spark pour lire et écrire des fichiers dans Amazon S3. AWS Glue pour Spark prend en charge de nombreux formats de données courants stockés dans Amazon S3 prêts à l'emploi, notamment CSV, Avro, JSON, Orc et Parquet. Pour de plus amples informations sur les formats de données pris en charge, consultez Options de format pour les entrées et sorties dans AWS Glue pour Spark. Chaque format de données peut prendre en charge un ensemble différent de fonctionnalités AWS Glue. Consultez la page de votre format de données pour connaître les spécificités de la prise en charge des fonctionnalités. En outre, vous pouvez lire et écrire des fichiers versionnés stockés dans les cadres de lacs de données Hudi, Iceberg et Delta Lake. Pour plus d'informations sur les cadres de lac de données, consultez Utilisation de cadres de lac de données avec des tâches AWS Glue ETL.

Avec AWS Glue, vous pouvez partitionner vos objets Amazon S3 dans une structure de dossiers pendant l'écriture, puis les récupérer par partition pour améliorer les performances grâce à une configuration simple. Vous pouvez également définir la configuration pour regrouper les petits fichiers lors de la transformation de vos données afin d'améliorer les performances. Vous pouvez lire et écrire des archives bzip2 et gzip dans Amazon S3.

Configuration de connexions S3

Pour vous connecter à Amazon S3 dans le cadre d'une tâche AWS Glue avec Spark, vous aurez besoin de certaines conditions préalables :

  • La tâche AWS Glue doit disposer d'autorisations IAM pour les compartiments Amazon S3 concernés.

Dans certains cas, vous devrez configurer des prérequis supplémentaires :

  • Lorsque vous configurez un accès intercompte, il convient de mettre en place des contrôles d'accès appropriés sur le compartiment Amazon S3.

  • Pour des raisons de sécurité, vous pouvez choisir d'acheminer vos requêtes Amazon S3 via un Amazon VPC. Cette approche peut engendrer des problèmes en matière de bande passante et de disponibilité. Pour de plus amples informations, veuillez consulter Types de points de terminaison d'un VPC pour Amazon S3.

Référence des options de connexion Amazon S3

Désigne une connexion à Amazon S3.

Comme Amazon S3 gère des fichiers plutôt que des tables, en plus de spécifier les propriétés de connexion fournies dans ce document, vous devrez indiquer une configuration supplémentaire concernant votre type de fichier. Vous indiquez ces informations par le biais des options de format de données. Pour plus d'informations sur ces options de format, consultez Options de format pour les entrées et sorties dans AWS Glue pour Spark. Vous pouvez également spécifier ces informations en les intégrant au catalogue de données AWS Glue.

Pour illustrer la distinction entre les options de connexion et les options de format, considérez comment la méthode create_dynamic_frame_from_options utilise connection_type, connection_options, format et format_options. Cette section traite spécifiquement des paramètres fournis à connection_options.

Utilisez les options de connexion suivantes avec "connectionType": "s3" :

  • "paths" : (obligatoire) une liste de chemins Amazon S3 à lire.

  • "exclusions" : (Facultatif) Chaîne contenant une liste JSON des modèles glob de style Unix à exclure. Par exemple, "[\"**.pdf\"]" permet d'exclure tous les fichiers PDF. Pour plus d'informations sur la syntaxe glob qui prend en charge AWS Glue, consultez Inclure et Exclure les modèles.

  • "compressionType" : ou « compression » : (facultatif) spécifie la manière dont les données sont comprimées. Utilisez "compressionType" pour les sources Amazon S3 et "compression" pour les cibles Amazon S3. Ce n'est généralement pas nécessaire si le fichier de données a une extension standard. Les valeurs possibles sont "gzip" et "bzip2"). Des formats de compression supplémentaires peuvent être pris en charge pour des formats spécifiques. Pour connaître les spécificités de la prise en charge des fonctionnalités, consultez la page sur le format des données.

  • "groupFiles" : (facultatif) le groupement de fichiers est activé par défaut lorsque l'entrée contient plus de 50 000 fichiers. Pour activer le groupement lorsqu'il y a moins de 50 000 fichiers, définissez ce paramètre sur "inPartition". Pour désactiver le groupement lorsqu'il y a plus de 50 000 fichiers, définissez ce paramètre sur "none".

  • "groupSize" : (Facultatif) Taille du groupe cible, en octets. La valeur par défaut est calculée en fonction de la dimension des données en entrée et de la dimension de votre cluster. Lorsqu'il y a moins de 50 000 fichiers en entrée, "groupFiles" doit être défini sur "inPartition" pour que cela prenne effet.

  • "recurse" : (Facultatif) Si ce paramètre est défini sur « true », les fichiers sont lus de manière récursive dans tous les sous-répertoires des chemins spécifiés.

  • "maxBand" : (facultatif, avancé) cette option permet de contrôler la durée, en millisecondes, au delà de laquelle la liste s3 est susceptible d'être cohérente. Les fichiers dont l'horodatage de modification se situe dans les dernières maxBand millisecondes sont suivis lorsque des JobBookmarks sont utilisés pour prendre en compte une cohérence éventuelle Amazon S3. La plupart des utilisateurs n'ont pas besoin de définir cette option. La valeur par défaut est 900 000 millisecondes, soit 15 minutes.

  • "maxFilesInBand" : (Facultatif, avancé) Cette option spécifie le nombre maximal de fichiers à enregistrer à partir des dernières maxBand secondes. Si ce nombre est dépassé, les fichiers supplémentaires sont ignorés et traités dans l'exécution de tâche suivante. La plupart des utilisateurs n'ont pas besoin de définir cette option.

  • "isFailFast" : (facultatif) cette option détermine si une tâche ETL AWS Glue Glue lance des exceptions d'analyse de lecteur. Si elle est définie sur true, les tâches échouent rapidement si quatre tentatives de la tâche Spark échouent à analyser correctement les données.

  • "catalogPartitionPredicate" : (facultatif) utilisé pour la lecture. Le contenu d'une clause WHERE SQL. Utilisé lors de la lecture de tables du catalogue de données comportant un très grand nombre de partitions. Récupère les partitions correspondantes à partir des index du catalogue de données. Utilisé avec push_down_predicate, une option sur la méthode create_dynamic_frame_from_catalog (et d'autres méthodes similaires). Pour de plus amples informations, veuillez consulter Filtrage côté serveur à l'aide de prédicats de partition de catalogue.

  • "partitionKeys" : (facultatif) utilisé pour l'écriture. Un tableau de chaînes d'étiquettes de colonnes. AWS Glue partitionnera vos données conformément à cette configuration. Pour de plus amples informations, veuillez consulter Écriture des partitions.

  • "excludeStorageClasses" : (facultatif) utilisé pour la lecture. Un tableau de chaînes spécifiant les classes de stockage Amazon S3. AWS Glue exclura les objets Amazon S3 en fonction de cette configuration. Pour de plus amples informations, veuillez consulter Exclusion des classes de stockage Amazon S3.

Syntaxes de connexion obsolètes pour les formats de données

Certains formats de données sont accessibles à l'aide d'une syntaxe de type de connexion spécifique. Cette syntaxe est obsolète. Nous vous recommandons de spécifier vos formats en utilisant le type de connexion s3 et les options de format fournies dans Options de format pour les entrées et sorties dans AWS Glue pour Spark à la place.

« connectionType » : « orc »

Désigne une connexion à des fichiers stockés dans Amazon S3 au format de fichier Apache Hive Optimized Row Columnar (ORC).

Utilisez les options de connexion suivantes avec "connectionType": "orc" :

  • paths : (obligatoire) une liste de chemins Amazon S3 à lire.

  • (Autre option de paires nom-valeur) : Les options supplémentaires, y compris les options de formatage, sont transmises directement à la source de données SparkSQL DataSource.

« connectionType » : « parquet »

Désigne une connexion aux fichiers stockés dans Amazon S3 au format de fichier Apache Parquet.

Utilisez les options de connexion suivantes avec "connectionType": "parquet" :

  • paths : (obligatoire) une liste de chemins Amazon S3 à lire.

  • (Autre option de paires nom-valeur) : Les options supplémentaires, y compris les options de formatage, sont transmises directement à la source de données SparkSQL DataSource.