Parquet v2

Disponible en Databricks Runtime 18.1 y versiones posteriores, Parquet v2 mejora el rendimiento de las consultas y reduce el espacio de almacenamiento de las tablas Delta Lake y Apache Iceberg mediante codificaciones avanzadas, encabezados de página de datos v2 y marcas temporales INT64.

Funcionamiento de Parquet v2

Parquet v2 presenta mejoras en el formato de archivo de datos que reducen el almacenamiento y mejoran el rendimiento de lectura:

  • Codificaciones avanzadas: las columnas enteros y de cadena usan nuevas codificaciones con compresión y descodificación más eficaces en comparación con las codificaciones usadas en Parquet v1.
  • Encabezados de la página de datos V2: Las estadísticas e índices a nivel de página mejoran la aplicación de predicados y el salto de datos, lo que reduce la cantidad de datos analizados en el momento de la consulta.
  • Marcas de tiempo INT64: INT64 las marcas de tiempo reemplazan la marca de tiempo INT96 heredada, lo que mejora las estadísticas de las columnas y la codificación y la compresión de las marcas de tiempo.

Habilitación de Parquet v2

Azure Databricks actualiza automáticamente las tablas administradas compatibles del catálogo de Unity a Parquet v2. Consulte Actualizaciones automáticas.

Para habilitar Parquet v2 manualmente, establezca la propiedad de tabla parquet.format.version en 2.12.0 utilizando el prefijo adecuado para su tipo de tabla. Antes de habilitar manualmente, revise las limitaciones.

Para habilitar Parquet v2 en una tabla existente:

Lago Delta

ALTER TABLE <table_name> SET TBLPROPERTIES ('delta.parquet.format.version' = '2.12.0');

Iceberg

ALTER TABLE <table_name> SET TBLPROPERTIES ('iceberg.parquet.format.version' = '2.12.0');

Para habilitar Parquet v2 en una tabla nueva:

Lago Delta

CREATE TABLE <table_name> (...)
TBLPROPERTIES ('delta.parquet.format.version' = '2.12.0');

Iceberg

CREATE TABLE <table_name> (...)
USING iceberg
TBLPROPERTIES ('iceberg.parquet.format.version' = '2.12.0');

Después de establecer la propiedad , todas las escrituras posteriores usan codificaciones v2. Los archivos Parquet v1 y v2 pueden coexistir en la misma tabla. Los archivos de datos existentes no se vuelven a escribir automáticamente. Para las tablas de Delta Lake, para reescribir los archivos existentes en v2, use REORG TABLE en Databricks Runtime 18.2 y versiones posteriores:

REORG TABLE <table_name> APPLY (SET PARQUET (FORMAT_VERSION = '2.12.0'));

Consulte Referencia de propiedades de la tabla para obtener la referencia completa de propiedades de la tabla.

Volver a Parquet v1

En Databricks Runtime 18.2 y versiones posteriores, para revertir una tabla individual a la codificación v1, ejecute REORG TABLE con la SET PARQUET opción :

REORG TABLE <table_name> APPLY (SET PARQUET (FORMAT_VERSION = '1.0.0'));

Este comando vuelve a escribir todos los archivos de datos mediante codificaciones v1 y restablece la delta.parquet.format.version propiedad table a 1.0.0.

Consulte REORG TABLE para obtener una sintaxis completa REORG TABLE .

Limitaciones

Parquet v2 tiene las siguientes limitaciones:

  • Para los motores externos, es posible que algunos lectores de Apache Iceberg no admitan Parquet v2 para las tablas de Iceberg. Debe comprobar que los lectores de Iceberg son compatibles antes de habilitar Parquet v2 en las tablas de Iceberg.
  • Para OpenSharing, antes de habilitar Parquet v2, compruebe que los clientes de lector para destinatarios de OpenSharing admiten codificaciones Parquet v2.
  • Las vistas materializadas y las tablas de streaming no se actualizan automáticamente a Parquet v2. Puede habilitar manualmente Parquet v2 en estos tipos de tabla en Databricks Runtime 18.1 y versiones posteriores.