Spécification de l’emplacement de la table et du niveau de partitionnement - AWS Glue

Spécification de l’emplacement de la table et du niveau de partitionnement

Par défaut, lorsqu’un robot définit des tables pour les données stockées dans Amazon S3, il tente de fusionner les schémas et de créer des tables de niveau supérieur (year=2019). Dans certains cas, vous pouvez vous attendre à ce que l’crawler crée une table pour le dossier month=Jan, mais à la place, l’crawler crée une partition puisqu’un dossier frère (month=Mar) a été fusionné dans la même table.

L’option d’crawler au niveau de la table vous offre la possibilité d’indiquer à l’crawler où se trouvent les tables et comment vous souhaitez que les partitions soient créées. Lorsque vous spécifiez un Table level (Niveau de la table), la table est créée à ce niveau absolu à partir du compartiment Amazon S3.

Regroupement de l’crawler avec le niveau de table défini sur niveau 2.

Lorsque vous configurez l’crawler sur la console, vous pouvez spécifier une valeur pour l’option d’crawler Table level (Niveau de la table). La valeur doit être un entier positif qui indique l’emplacement de la table (niveau absolu dans le jeu de données). Le niveau du dossier de niveau supérieur est 1. Par exemple, pour le chemin mydataset/year/month/day/hour, si le niveau est défini sur 3, la table est créée à l’emplacement mydataset/year/month.

AWS Management Console
  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Glue à l’adresse https://console.aws.amazon.com/glue/.

  2. Choisissez Robots dans le Catalogue de données.

  3. Lorsque vous configurez un robot, sous Sortie et planification, choisissez Niveau de table sous Options avancées.

Spécification d’un niveau de table dans la configuration de l’crawler.
AWS CLI

Lorsque vous configurez le robot à l’aide de l’AWS CLI, définissez le paramètre configuration comme indiqué dans l’exemple de code :

aws glue update-crawler \ --name myCrawler \ --configuration '{"Version": 1.0, "Grouping": { "TableLevelConfiguration": 2 }}'
API

Lorsque vous configurez l’crawler à l’aide de l’API, définissez le champ Configuration avec une représentation de chaînes de l’objet JSON suivant ; par exemple :

configuration = jsonencode( { "Version": 1.0, "Grouping": { TableLevelConfiguration = 2 } })
CloudFormation

Dans cet exemple, vous définissez l’option Niveau de table disponible dans la console de votre modèle CloudFormation :

"Configuration": "{ \"Version\":1.0, \"Grouping\":{\"TableLevelConfiguration\":2} }"