CONVERT TO DELTA (Databricks SQL)

Convierte una tabla de Parquet existente en una tabla delta en su lugar. Este comando enumera todos los archivos del directorio, crea un registro de transacciones de Delta Lake que realiza un seguimiento de estos archivos y deduce automáticamente el esquema de datos mediante la lectura de los pies de página de todos los archivos parquet. El proceso de conversión recopila estadísticas para mejorar el rendimiento de las consultas en la tabla Delta convertida. Si proporciona un nombre de tabla, el metastore también se actualiza para reflejar que la tabla es ahora una tabla Delta.

Sintaxis

CONVERT TO DELTA [ table_identifier | parquet.`<path-to-table>` ] [NO STATISTICS]
[PARTITIONED BY (col_name1 col_type1 [, ...] ) ]

Parámetros

  • table_identifier

    [database_name.] table_name: nombre de tabla, opcionalmente calificado con un nombre de base de datos.

  • SIN ESTADÍSTICAS

    Omita la recopilación de estadísticas durante el proceso de conversión y finalice la conversión con mayor rapidez. Después de convertir la tabla en Delta Lake, puede usar para reorganizar el diseño de OPTIMIZE ZORDER BY datos y generar estadísticas.

  • PARTICIONADO POR

    Particionar la tabla creada por las columnas especificadas. Obligatorio si los datos están particionados. El proceso de conversión anula y produce una excepción si la estructura de directorios no se ajusta a la PARTITIONED BY especificación. Si no proporciona la cláusula PARTITIONED BY , el comando supone que la tabla no tiene particiones.

Advertencias

Los archivos a los que Delta Lake no realiza un seguimiento son invisibles y se pueden eliminar al ejecutar VACUUM . Debe evitar actualizar o anexar archivos de datos durante el proceso de conversión. Una vez convertida la tabla, asegúrese de que todas las escrituras pasan por Delta Lake.

Es posible que varias tablas externas compartan el mismo directorio Parquet subyacente. En este caso, si ejecuta en una de las tablas externas, no podrá acceder a las otras tablas externas porque su directorio subyacente se ha convertido de Parquet a CONVERT Delta Lake. Para volver a consultar o escribir en estas tablas externas, también debe ejecutar CONVERT en ellas.

CONVERT rellena la información del catálogo, como las propiedades de esquema y tabla, en el registro de transacciones de Delta Lake. Si el directorio subyacente ya se ha convertido a Delta Lake y sus metadatos son diferentes de los metadatos convertMetastoreMetadataMismatchException del catálogo, se produce una excepción .

Deshacer la conversión

Si ha realizado operaciones de Delta Lake como DELETE o que pueden cambiar los archivos de OPTIMIZE datos:

  1. Ejecute el siguiente comando para la recolección de elementos no utilizados:

    VACUUM delta.`<path-to-table>` RETAIN 0 HOURS
    
  2. Elimine el <path-to-table>/_delta_log directorio.