

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.

# Empêcher un robot de modifier un schéma existant
<a name="crawler-schema-changes-prevent"></a>

 Vous pouvez empêcher AWS Glue crawler s d'apporter des modifications de schéma au catalogue de données lors de son exécution. Par défaut, les robots mettent à jour le schéma du catalogue de données pour qu’il corresponde à la source de données analysée. Toutefois, dans certains cas, vous souhaiterez peut-être empêcher le robot de modifier le schéma existant, en particulier si vous avez transformé ou nettoyé les données et que vous ne souhaitez pas que le schéma d’origine remplace les modifications.

 Suivez ces étapes pour configurer votre robot de manière à ne pas remplacer le schéma existant dans une définition de table. 

------
#### [  AWS Management Console  ]

1. Connectez-vous à la AWS Glue console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Choisissez **Robots** dans le **catalogue de données**.

1. Choisissez un robot dans la liste, puis **Modifier**.

1. Choisissez **étape 4, Définir la sortie et la planification**.

1. Sous **Options avancées**, choisissez **Ajouter de nouvelles colonnes uniquement** ou **Ignorer la modification et ne pas mettre à jour la table dans le catalogue de données**. 

1.  En outre, vous pouvez définir une option de configuration sur **Mettre à jour toutes les partitions nouvelles et existantes avec les métadonnées de la table**. Cela définit les schémas de partition pour qu’ils héritent de la table. 

1. Choisissez **Mettre à jour**.

------
#### [ AWS CLI ]

L’exemple suivant montre comment configurer un robot pour ne pas modifier le schéma existant, mais uniquement pour ajouter de nouvelles colonnes :

```
aws glue update-crawler \
  --name myCrawler \
  --configuration '{"Version": 1.0, "CrawlerOutput": {"Tables": {"AddOrUpdateBehavior": "MergeNewColumns"}}}'
```

L’exemple suivant montre comment configurer un robot pour ne pas modifier le schéma existant et ne pas ajouter de nouvelles colonnes :

```
aws glue update-crawler \
  --name myCrawler \
  --schema-change-policy UpdateBehavior=LOG \
  --configuration '{"Version": 1.0, "CrawlerOutput": {"Partitions": { "AddOrUpdateBehavior": "InheritFromTable" }}}'
```

------
#### [ API ]

Si vous ne voulez pas qu’un schéma de table soit modifié lorsqu’un crawler s’exécute, définissez la politique de modification du schéma sur `LOG`. 

Lorsque vous configurez l’crawler à l’aide de l’API, définissez les paramètres suivants :
+ Définissez le champ `UpdateBehavior` de la structure `SchemaChangePolicy` sur `LOG`.
+  Définissez le champ `Configuration` avec une représentation de chaîne de l'objet JSON suivant dans l'API de l'crawler ; par exemple : 

  ```
  {
     "Version": 1.0,
     "CrawlerOutput": {
        "Partitions": { "AddOrUpdateBehavior": "InheritFromTable" }
     }
  }
  ```

------