Parquet v2

Disponible dans Databricks Runtime 18.1 et versions ultérieures, Parquet v2 améliore les performances des requêtes et réduit le stockage des tables Delta Lake et Apache Iceberg à l’aide d’encodages avancés, d’en-têtes de pages de données v2 et INT64 d’horodatages.

Fonctionnement de Parquet v2

Parquet v2 apporte des améliorations au format de fichier de données qui réduisent le stockage et améliorent les performances de lecture :

  • Encodages avancés : les colonnes d’entier et de chaîne utilisent de nouveaux encodages avec une compression et un décodage plus efficaces par rapport aux encodages utilisés dans Parquet v1.
  • En-têtes de pages V2 : les statistiques et index au niveau des pages améliorent le pushdown de prédicat ainsi que les données ignorées, ce qui réduit la quantité de données analysées lors de l’exécution des requêtes.
  • Horodatages INT64 : INT64 les horodatages remplacent l’ancien horodatage INT96, ce qui améliore les statistiques des colonnes, ainsi que l’encodage et la compression des horodatages.

Activer Parquet v2

Azure Databricks met automatiquement à niveau les tables gérées du catalogue Unity compatibles vers Parquet v2. Consultez mises à niveau automatiques.

Pour activer Parquet v2 manuellement, définissez la propriété de table parquet.format.version sur 2.12.0 à l’aide du préfixe approprié pour votre type de table. Avant d’activer manuellement, passez en revue les limitations.

Pour activer Parquet v2 sur une table existante :

Delta Lake

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');

Pour activer Parquet v2 sur une nouvelle table :

Delta Lake

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');

Après avoir défini la propriété, toutes les écritures suivantes utilisent des encodages v2. Les fichiers Parquet v1 et v2 peuvent coexister dans la même table. Les fichiers de données existants ne sont pas réécrits automatiquement. Pour les tables Delta Lake, pour réécrire les fichiers existants au format v2, utilisez REORG TABLE dans Databricks Runtime 18.2 et versions ultérieures :

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

Consultez la référence des propriétés de table pour obtenir la référence de propriété de table complète.

Revenir à Parquet v1

Dans Databricks Runtime 18.2 et versions ultérieures, pour restaurer un encodage de table individuelle vers v1, exécutez REORG TABLE avec l’option SET PARQUET :

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

Cette commande réécrit tous les fichiers de données avec des encodages v1 et réinitialise la propriété de table delta.parquet.format.version à 1.0.0.

Consultez REORG TABLE pour la syntaxe complète REORG TABLE.

Limites

Parquet v2 présente les limitations suivantes :

  • Pour les moteurs externes, certains lecteurs Apache Iceberg peuvent ne pas prendre en charge Parquet v2 pour les tables Iceberg. Vous devez vérifier que les lecteurs Iceberg sont compatibles avant d’activer Parquet v2 sur les tables Iceberg.
  • Pour OpenSharing, avant d’activer Parquet v2, vérifiez que les clients de lecteur pour les destinataires OpenSharing prennent en charge les encodages Parquet v2.
  • Les vues matérialisées et les tables de diffusion en continu ne sont pas automatiquement mises à niveau vers Parquet v2. Vous pouvez activer manuellement Parquet v2 sur ces types de tables sur Databricks Runtime 18.1 et versions ultérieures.