Création d'un schéma unique pour chaque chemin d'inclusion 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.

Création d'un schéma unique pour chaque chemin d'inclusion Amazon S3

Par défaut, lorsqu'un crawler définit des tables pour des données stockées dans Amazon S3, il prend en compte la compatibilité des données et la similitude de schéma. Les facteurs de compatibilité des données pris en compte incluent le fait que les données soient du même format (par exempleJSON), du même type de compression (par exempleGZIP), de la structure du chemin Amazon S3 et d'autres attributs de données. La similarité des schémas définit le degré de similarité des schémas d'objets Amazon S3 distincts.

Vous pouvez configurer un crawler pour CombineCompatibleSchemas dans une définition de table courante lorsque cela est possible. Avec cette option, l'crawler considère toujours la compatibilité des données, mais ignore la similarité des schémas spécifiques lors de l'évaluation des objets Amazon S3 dans le chemin d'inclusion (include path) spécifié.

Si vous configurez l'crawler sur la console, pour combiner des schémas, sélectionnez l'option de l'crawler Create a single schema for each S3 path (Créer un seul schéma pour chaque chemin S3).

Lorsque vous configurez le robot d'exploration à l'aide duAPI, définissez l'option de configuration suivante :

  • Définissez le Configuration champ avec une représentation sous forme de chaîne de l'JSONobjet suivant dans le robot d'exploration API ; par exemple :

    { "Version": 1.0, "Grouping": { "TableGroupingPolicy": "CombineCompatibleSchemas" } }

Pour vous aider à illustrer cette option, supposons que vous définissez un crawler avec un chemin d'inclusion s3://bucket/table1/. Lorsque le robot d'exploration s'exécute, il trouve deux JSON fichiers présentant les caractéristiques suivantes :

  • Fichier 1S3://bucket/table1/year=2017/data1.json

  • Contenu du fichier{“A”: 1, “B”: 2}

  • SchémaA:int, B:int

  • Fichier 2S3://bucket/table1/year=2018/data2.json

  • Contenu du fichier{“C”: 3, “D”: 4}

  • SchémaC: int, D: int

Par défaut, l'crawler crée deux tables, nommées year_2017 et year_2018 car les schémas ne sont pas suffisamment similaires. Toutefois, si l'option Create a single schema for each S3 path (Créer un seul schéma pour chaque chemin S3) est sélectionnée, et si les données sont compatibles, l'crawler crée une table. La table comprend le schéma A:int,B:int,C:int,D:int et partitionKey year:string.