Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Databricks SQL
Databricks Runtime
Convierte una tabla de Apache Parquet existente en una tabla de Delta local. Este comando enumera todos los archivos del directorio, crea un registro de transacciones de Delta Lake que realiza el seguimiento de estos archivos y deduce automáticamente el esquema de datos leyendo 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 de Delta convertida. Si proporciona un nombre de tabla, el metastore también se actualiza para reflejar que la tabla es ahora una tabla de Delta.
Este comando admite la conversión de tablas de Apache Iceberg cuyo formato de archivo subyacente es Parquet. En este caso, el convertidor genera el registro de transacciones de Delta Lake basado en el archivo de manifiesto nativo, el esquema y la información de particiones de la tabla Iceberg.
Sintaxis
CONVERT TO DELTA table_name [ NO STATISTICS ] [ PARTITIONED BY clause ]
Parámetros
-
Un identificador de tabla calificado o una ruta a un directorio de archivos
parquet
oiceberg
. El nombre no debe incluir una especificación temporal ni una especificación de opciones. En el caso de las tablas de Iceberg, solo se pueden usar rutas de acceso, ya que no se admite la conversión de tablas de Iceberg administradas. 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 a Delta Lake, puede usar
OPTIMIZE ZORDER BY
para reorganizar la distribución de datos y generar estadísticas.-
Realice particiones de la tabla que haya creado por las columnas especificadas. Cuando
table_name
es una ruta de acceso,PARTITIONED BY
es necesario para los datos con particiones. Cuando eltable_name
es un identificador de tabla calificado, la cláusulaPARTITIONED BY
es opcional y la especificación de partición se carga desde el metastore. En cualquiera de los dos enfoques, el proceso de conversión aborta y lanza una excepción si la estructura del directorio no se ajusta a la especificaciónPARTITIONED BY
proporcionada o cargada.Nota:
En Databricks Runtime 11.1 y versiones posteriores,
PARTITIONED BY
es un argumento necesario para todos los datos con particiones.
Ejemplos
Nota:
No es necesario proporcionar información sobre la creación de particiones para las tablas de Iceberg o las registradas en el metastore.
CONVERT TO DELTA database_name.table_name; -- only for Parquet tables
CONVERT TO DELTA parquet.`abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/table`
PARTITIONED BY (date DATE); -- if the table is partitioned
CONVERT TO DELTA iceberg.`abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/table`; -- uses Iceberg manifest for metadata
Advertencias
Los archivos que quedan fuera del seguimiento de Delta Lake 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 que se convierta la tabla, asegúrese de que todas las operaciones de escritura pasan por Delta Lake.
Es posible que varias tablas externas compartan el mismo directorio de Parquet subyacente. En este caso, si se ejecuta CONVERT
en una de las tablas externas, no podrá acceder a las otras tablas externas, porque su directorio subyacente se ha convertido de Parquet a Delta Lake. Para consultar o escribir de nuevo 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 del catálogo, se inicia una excepción convertMetastoreMetadataMismatchException
.
Al usar Databricks Runtime, si quiere que CONVERT
sobrescriba los metadatos existentes en el registro de transacciones de Delta Lake, establezca la configuración SQL spark.databricks.delta.convert.metadataCheck.enabled
en false.