Passer au contenu

Comment le robot AWS Glue détecte-t-il le schéma ?

Lecture de 4 minute(s)
0

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

Détection de schémas dans le robot

Lors de la première exécution, le robot lit les 1000 premiers enregistrements ou le premier mégaoctet de chaque fichier pour en déduire le schéma. La quantité de données lue par le robot 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 qu'il déduit de tous les sous-dossiers et fichiers, puis crée une ou plusieurs tables.

Lorsqu'un robot crée une table, il vérifie les facteurs suivants :

  • Les données sont du même format, du même type de compression et du même chemin inclus
  • Le degré de similitude des schémas par rapport au seuil de partitionnement et au 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 cinq.

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 %, le robot désigne les schémas comme des partitions d'une table. S'ils ne correspondent pas, le robot crée une table pour chaque dossier, ce qui entraîne un plus grand nombre de tables.

Exemples de scénarios

Exemple 1

Dans l'exemple suivant, le dossier DOC-EXAMPLE-FOLDER1 contient 10 fichiers, huit fichiers avec le schéma SCH_A et deux fichiers avec SCH_B.

Les fichiers sont similaires à ceux des 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"}

Lorsque le robot explore le chemin Amazon Simple Storage Service (Amazon S3) s3://DOC-EXAMPLE-FOLDER1, il crée une table. Le tableau comprend les colonnes des schémas SCH_A et SCH_B. Cela est dû au fait que 80 % des fichiers du chemin appartiennent au schéma SCH_A et 20 % des fichiers appartiennent au schéma SCH_B. Le schéma atteint donc la valeur seuil de partition. De plus, le nombre de schémas différents ne dépasse pas le nombre de clusters et le schéma ne dépasse pas la limite de taille des clusters.

Exemple 2

Dans l'exemple suivant, le dossier DOC-EXAMPLE-FOLDER2 contient 10 fichiers, dont sept avec le schéma SCH_A et trois 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. Le schéma n'atteint donc pas le seuil de partition.

Remarque : Pour obtenir des informations sur les tables, consultez les journaux du robot dans Amazon CloudWatch.

Options du robot

Lorsque vous personnalisez le comportement de votre robot, vous pouvez choisir l'une des options suivantes :

Informations connexes

Utiliser des robots pour remplir le catalogue de données

Personnalisation du comportement du robot

Définition et gestion des classificateurs

AWS OFFICIELA mis à jour il y a 9 mois