Comment le robot AWS Glue détecte-t-il le schéma ?
Lorsque j'exécute un robot AWS Glue, celui-ci crée plusieurs tables dont les schémas se ressemblent. Je veux savoir comment le robot détecte le schéma.
Résolution
Lorsque vous exécutez un robot AWS Glue, celui-ci effectue les étapes suivantes :
- Le robot classe les données.
- Le robot regroupe les données dans des tables ou des partitions.
- Le robot écrit des métadonnées dans le catalogue de données AWS Glue.
Pour comprendre ce que fait le robot et comment il détecte le schéma, examinez les informations suivantes.
Définir un robot
Lorsque vous définissez un robot AWS Glue, vous pouvez choisir un ou plusieurs classificateurs personnalisés qui évaluent le format de vos données afin de déduire un schéma. Lorsque le robot s'exécute, il utilise le premier classificateur de votre liste pour reconnaître avec succès votre magasin de données afin de créer un schéma pour votre table. Avant de définir le robot, vous devez définir les classificateurs personnalisés. Lorsque le robot s'exécute, il utilise le classificateur personnalisé que vous définissez pour rechercher une correspondance dans le magasin de données. La correspondance avec chaque classificateur génère une certitude. Si le classificateur renvoie certainty=1.0 pendant le traitement, le robot est certain à 100 % qu'il peut créer le schéma correct. Dans ce cas, le robot n'invoque aucun autre classificateur, puis crée une table avec le classificateur qui correspond au classificateur personnalisé.
Pour plus d'informations, consultez la section Définition et gestion des classificateurs.
Détection de schémas dans le robot
Lors de la première exécution, le robot lit les 1,000 premiers enregistrements ou le premier mégaoctet de chaque fichier pour en déduire le schéma. La quantité de données lues dépend du format de fichier et de la disponibilité d'un enregistrement valide. Par exemple, si le fichier d'entrée est un fichier JSON, le robot lit le premier Mo du fichier pour en déduire le schéma. Si le robot lit un enregistrement valide dans le premier Mo du fichier, il en déduit le schéma. Si le robot ne parvient pas à déduire le schéma après 1 Mo, il continue à lire jusqu'à 10 Mo du fichier par incréments de 1 Mo. Pour les fichiers CSV, le robot lit les 1000 premiers enregistrements ou le premier Mo de données en fonction de celui qui apparaît en premier. Pour les fichiers Parquet, le robot déduit directement le schéma du fichier. Le robot compare les schémas déduits de tous les sous-dossiers et fichiers, puis crée une ou plusieurs tables. Lorsqu'un robot crée une table, il prend en compte les facteurs suivants :
- Compatibilité des données pour vérifier si les données sont du même format, type de compression et chemin inclus.
- Similarité des schémas pour vérifier la similarité des schémas en termes de seuil de partition et de nombre de schémas différents.
Pour qu'un robot considère des schémas similaires, les conditions suivantes doivent être remplies :
- Le seuil de partition est supérieur à 0,7 (70 %).
- Le nombre maximum de schémas différents, également appelés « clusters » dans ce contexte, ne dépasse pas 5.
Le robot déduit le schéma au niveau du dossier et compare les schémas de tous les dossiers. Si les schémas comparés correspondent à un seuil de partition supérieur à 70 %, les schémas sont désignés comme des partitions d'une table. S'ils ne correspondent pas, le robot crée une table pour chaque dossier et augmente le nombre de tables.
Exemples de scénarios
Exemple 1
Dans l'exemple suivant, le dossier DOC-EXAMPLE-FOLDER1 contient 10 fichiers, 8 fichiers avec le schéma SCH_A et 2 fichiers avec SCH_B.
Supposons que les fichiers soient similaires aux exemples suivants :
SHC_A:
{ "id": 1, "first_name": "John", "last_name": "Doe"}{ "id": 2, "first_name": "Li", "last_name": "Juan"}
SCH_B:
{"city":"Dublin","country":"Ireland"}{"city":
`"Paris","country":"France"}`When the crawler crawls the Amazon Simple Storage Service (Amazon S3) path **s3://DOC-EXAMPLE-FOLDER1**, the crawler creates one table. The table comprises columns of both schema **SCH\_A** and **SCH\_B**. This is because 80% of the files in the path belong to the **SCH\_A** schema, and 20% of the files belong to the **SCH\_B** schema. Therefore, the schema meets the partition threshold value. Also, the number of different schemas doesn't exceed the number of clusters, and the schema doesn't exceed the cluster size limit.
Exemple 2
Dans l'exemple suivant, le dossier DOC-EXAMPLE-FOLDER2 contient 10 fichiers, 7 fichiers avec le schéma SCH_A et 3 fichiers avec le schéma SCH_B.
Lorsque le robot explore le chemin Amazon S3 s3://DOC-EXAMPLE-FOLDER2, il crée une table pour chaque fichier. En effet, 70 % des fichiers appartiennent au schéma SCH_A et 30 % des fichiers appartiennent au schéma SCH_B. Cela signifie que le schéma n'atteint pas le seuil de partition.
Remarque : vous pouvez vérifier les journaux du robot dans Amazon CloudWatch pour obtenir des informations sur les tables créées.
Options du robot
Lorsque vous personnalisez le comportement de votre robot, vous pouvez choisir l'une des options suivantes :
- **Créez un schéma unique :**Vous pouvez utiliser l'option Créer un schéma unique pour chaque chemin S3 pour configurer le robot afin d'ignorer la similarité des schémas et de créer un schéma unique. Pour plus d'informations, consultez la section Création d'un schéma unique pour chaque chemin d'inclusion Amazon S3.
Remarque : si le robot détecte une incompatibilité de données, il crée tout de même plusieurs tables. - Spécifiez l'emplacement de la table : Vous pouvez utiliser l'option d'analyse au niveau des tables pour spécifier où se trouvent les tables et comment les partitions sont créées. Pour plus d'informations, consultez la section Définition de l'emplacement de la table et du niveau de partitionnement.
Informations connexes

Contenus pertinents
demandé il y a un an
demandé il y a 8 mois
demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a un an
AWS OFFICIELA mis à jour il y a 5 ans