

# Cómo evitar que un rastreador cambie un esquema existente
<a name="crawler-schema-changes-prevent"></a>

 Puede impedir que Rastreador de AWS Glue realice cambios de esquema en el Catálogo de datos durante su ejecución. De forma predeterminada, los rastreadores actualizan el esquema del Catálogo de datos para que coincida con el origen de datos que se está rastreando. Sin embargo, en algunos casos, puede impedir que el rastreador modifique el esquema existente, en especial si ha transformado o limpiado los datos y no quiere que el esquema original sobrescriba los cambios.

 Siga estos pasos para configurar el rastreador de forma que no sobrescriba el esquema existente en una definición de tabla. 

------
#### [  Consola de administración de AWS  ]

1. Inicie sesión en la Consola de administración de AWS y abra la consola de AWS Glue en [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Elija **Rastreadores** en el **Catálogo de datos**.

1. Elija un rastreador de la lista y, luego, **Editar**.

1. Elija **Paso 4: establecer la salida y la programación**.

1. En **Opciones avanzadas**, seleccione **Agregar solo columnas nuevas** o **Ignorar el cambio y no actualizar la tabla en el Catálogo de datos**. 

1.  También puede establecer una opción de configuración para **Actualizar todas las particiones nuevas y existentes con metadatos de la tabla**. Esto establece los esquemas de particiones para que se hereden de la tabla. 

1. Elija **Actualizar**.

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

En el siguiente ejemplo, se muestra cómo configurar un rastreador para que no cambie el esquema existente y solo agregue columnas nuevas:

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

En el siguiente ejemplo, se muestra cómo configurar un rastreador para que no cambie el esquema existente y no agregue columnas nuevas:

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

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

Si no desea que un esquema de tabla cambie en absoluto cuando se ejecuta un rastreador, establezca la política de cambio de esquema en `LOG`. 

Al configurar el rastreador mediante la API, establezca los siguientes parámetros:
+ Configure el campo `UpdateBehavior` de la estructura `SchemaChangePolicy` en `LOG`.
+  Establezca el campo `Configuration` con una representación de cadena del siguiente objeto JSON en la API del rastreador; por ejemplo: 

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

------