Exclusion des classes de stockage 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.

Exclusion des classes de stockage Amazon S3

Si vous exécutez des tâches ETL AWS Glue qui lisent des fichiers ou des partitions à partir d'Amazon Simple Storage Service (Amazon S3), vous pouvez exclure certains types de classe de stockage Amazon S3.

Les classes de stockage suivantes sont disponibles dans Amazon S3 :

  • STANDARD — pour le stockage à usage général des données fréquemment consultées.

  • INTELLIGENT_TIERING — pour les données ayant des modèles d'accès inconnus ou variables.

  • STANDARD_IA et ONEZONE_IA — pour les données à longue durée de vie, mais consultées moins fréquemment.

  • GLACIER, DEEP_ARCHIVE et REDUCED_REDUNDANCY — pour l'archivage à long terme et la conservation numérique.

Pour de plus amples informations, veuillez consulter Classes de stockage Amazon S3 dans le Guide du développeur Amazon S3.

Les exemples de cette section montrent comment exclure les classes de stockage GLACIER et DEEP_ARCHIVE. Ces classes vous permettent de répertorier les fichiers, mais ne vous permettent pas de les lire, sauf s'ils sont restaurés. (Pour de plus amples informations, veuillez consulter Restauration d'objets archivés dans le Guide du développeur Amazon S3.)

En utilisant les exclusions de classe de stockage, vous pouvez garantir que vos tâches AWS Glue fonctionnent sur les tables ayant des partitions sur ces niveaux de classe de stockage. Sans exclusion, les tâches qui lisent les données de ces niveaux échouent avec l'erreur suivante : AmazonS3Exception: The operation is not valid for the object's storage class (AmazonS3Exception : l'opération n'est pas valide pour la classe de stockage de l'objet).

Vous pouvez filtrer les classes de stockage Amazon S3 de différentes façons dans AWS Glue.

Exclusion des classes de stockage Amazon S3 lors de la création d'une image dynamique

Pour exclure les classes de stockage Amazon S3 lors de la création d'une image dynamique, utilisez excludeStorageClasses dans additionalOptions. AWS Glue utilise automatiquement sa propre implémentation de Lister Amazon S3 pour répertorier et exclure les fichiers correspondant aux classes de stockage spécifiées.

Les exemples Python et Scala suivants montrent comment exclure les classes de stockage GLACIER et DEEP_ARCHIVE lors de la création d'une image dynamique.

Exemple Python :

glueContext.create_dynamic_frame.from_catalog( database = "my_database", tableName = "my_table_name", redshift_tmp_dir = "", transformation_ctx = "my_transformation_context", additional_options = { "excludeStorageClasses" : ["GLACIER", "DEEP_ARCHIVE"] } )

Exemple Scala :

val* *df = glueContext.getCatalogSource( nameSpace, tableName, "", "my_transformation_context", additionalOptions = JsonOptions( Map("excludeStorageClasses" -> List("GLACIER", "DEEP_ARCHIVE")) ) ).getDynamicFrame()

Exclusion de classes de stockage Amazon S3 d'une table Data Catalog

Vous pouvez spécifier des exclusions de classe de stockage qu'une tâche ETL AWS Glue devra utiliser en tant que paramètre de table dans AWS Glue Data Catalog. Vous pouvez inclure ce paramètre dans l'opération CreateTable à l'aide de l'AWS Command Line Interface (AWS CLI) ou par programmation à l'aide de l'API. Pour de plus amples informations, veuillez consulter Structure de table et CreateTable.

Vous pouvez également spécifier des classes de stockage exclues sur la console AWS Glue.

Pour exclure des classes de stockage Amazon S3 (console)
  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Glue à l'adresse https://console.aws.amazon.com/glue/.

  2. Dans le panneau de navigation de gauche, sélectionnez Tables.

  3. Choisissez le nom de la table dans la liste, puis choisissez Modifier la table.

  4. Dans Propriétés de la table, ajoutez excludeStorageClasses en tant que clé et [\"GLACIER\",\"DEEP_ARCHIVE\"] en tant que valeur.

  5. Choisissez Apply (Appliquer).