

# Sincronización de metadatos de Delta Lake
<a name="delta-lake-tables-syncing-metadata"></a>

Athena sincroniza los metadatos de la tabla, incluidos el esquema, las columnas de partición y las propiedades de la tabla, con AWS Glue si usa Athena para crear su tabla de Delta Lake. A medida que pasa el tiempo, estos metadatos pueden perder su sincronización con los metadatos de la tabla subyacente en el registro de transacciones. Para mantener su tabla actualizada, puede elegir una de las siguientes opciones:
+ Utilizar el rastreador de AWS Glue para tablas de Delta Lake. Para obtener más información, consulte [Presentación de la compatibilidad nativa de tablas de Delta Lake con rastreadores de AWS Glue](https://aws.amazon.com/blogs/big-data/introducing-native-delta-lake-table-support-with-aws-glue-crawlers/) en el *Blog de macrodatos de AWS* y [Programación de un rastreador de AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/schedule-crawler.html) en la Guía para desarrolladores de AWS Glue.
+ Eliminar y recrear la tabla en Athena.
+ Utilizar el SDK, la CLI o la consola de AWS Glue para actualizar de forma manual el esquema en AWS Glue.

Tenga en cuenta que las siguientes características requieren que su esquema de AWS Glue tenga siempre el mismo esquema que el registro de transacciones:
+ Lake Formation
+ Vistas
+ Filtros de filas y columnas

Si su flujo de trabajo no requiere ninguna de estas funciones y prefiere no mantener esta compatibilidad, puede utilizar el DDL `CREATE TABLE` en Athena y, a continuación, agregar la ruta de Amazon S3 como parámetro SerDe en AWS Glue.

## Creación de una tabla de Delta Lake con las consolas de Athena y AWS Glue
<a name="delta-lake-tables-syncing-metadata-console"></a>

Puede utilizar el siguiente procedimiento para crear una tabla de Delta Lake con las consolas de Athena y AWS Glue.

**Para crear una tabla de Delta Lake con las consolas de Athena y AWS Glue**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. En el editor de consultas de Athena, utilice el siguiente DDL para crear la tabla de Delta Lake. Tenga en cuenta que cuando utilice este método, el valor de `TBLPROPERTIES` debe ser `'spark.sql.sources.provider' = 'delta'` y no `'table_type' = 'delta'`.

   Tenga en cuenta que este mismo esquema (con una sola columna con el nombre `col` del tipo `array<string>`) se inserta cuando utiliza Apache Spark (Athena para Apache Spark) o la mayoría de los demás motores a fin de crear la tabla.

   ```
   CREATE EXTERNAL TABLE
      [db_name.]table_name(col array<string>)
      LOCATION 's3://amzn-s3-demo-bucket/your-folder/'
      TBLPROPERTIES ('spark.sql.sources.provider' = 'delta')
   ```

1. Abra la consola de AWS Glue en [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. En el panel de navegación, elija **Catálogo de datos**, **Tablas**.

1. En la lista de tablas, elija el enlace de su tabla.

1. En la página de la tabla, seleccione **Acciones**, **Editar tabla**.

1. En la sección de **Parámetros Serde**, agregue la clave **path** con el valor **s3://amzn-s3-demo-bucket/*your-folder*/**.

1. Seleccione **Save**.

## Creación de una tabla de Delta Lake con la AWS CLI
<a name="delta-lake-tables-syncing-metadata-cli"></a>

Para crear una tabla de Delta Lake con la AWS CLI, introduzca un comando como el siguiente.

```
aws glue create-table --database-name dbname \
    --table-input '{"Name" : "tablename", "StorageDescriptor":{
            "Columns" : [
                {
                    "Name": "col",
                    "Type": "array<string>"
                }
            ],
            "Location" : "s3://amzn-s3-demo-bucket/<prefix>/",
            "SerdeInfo" : {
                "Parameters" : {
                    "serialization.format" : "1",
                    "path" : "s3://amzn-s3-demo-bucket/<prefix>/"
                }
            }
        },
        "PartitionKeys": [],
        "TableType": "EXTERNAL_TABLE",
        "Parameters": {
            "EXTERNAL": "TRUE",
            "spark.sql.sources.provider": "delta"
        }
    }'
```