Sincronización de metadatos de Delta Lake - Amazon Athena

Sincronización de metadatos de Delta Lake

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:

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.

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/.

  2. 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')
  3. Abra la consola de AWS Glue en https://console.aws.amazon.com/glue/.

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

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

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

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

  8. Seleccione Guardar.

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" } }'