Aller au contenu principal

Parquet v2

Disponible dans Databricks Runtime 18,1 et versions ultérieures, Parquet v2 améliore les performances des queries et réduit le stockage pour les tables Delta Lake et Apache Iceberg™ en utilisant des encodages avancés, des en-têtes de page de données v2 et des horodatages INT64.

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'entiers et de chaînes 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 page de données V2** : Les statistiques et les index au niveau de la page améliorent la poussée de prédicat et l’omission de données, réduisant ainsi la quantité de données analysées au moment de la query.
  • Timestamp : Les INT64 Timestamp remplacent le Timestamp hérité INT96, améliorant les statistiques de colonne, ainsi que l'encodage et la compression des Timestamp.

Activer Parquet v2

Databricks met automatiquement à niveau les tables gérées Unity Catalog compatibles vers Parquet v2. Voir Mises à niveau automatiques.

Pour activer Parquet v2 manuellement, définissez la propriété de table parquet.format.version sur 2.12.0 en utilisant le préfixe approprié pour votre type de table. Avant l’activation manuelle, examinez les limitations.

Pour activer Parquet v2 sur une table existante :

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

Pour activer Parquet v2 sur une nouvelle table :

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

Une fois la propriété définie, toutes les écritures suivantes utilisent les 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 en v2, utilisez REORG TABLE dans Databricks Runtime 18.2 et versions ultérieures :

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

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

Revenir à Parquet v1

Dans Databricks Runtime 18,2 et versions ultérieures, pour restaurer une table individuelle vers l'encodage v1, exécutez REORG TABLE avec l'option SET PARQUET :

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

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

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

Limitations

Parquet v2 présente les limitations suivantes :

  • Pour les moteurs externes, certains lecteurs Apache Iceberg pourraient 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 lecteurs pour les destinataires OpenSharing prennent en charge les encodages Parquet v2.
  • Les vues matérialisées et les tables de streaming ne sont pas automatiquement mises à niveau vers Parquet v2. Vous pouvez activer manuellement Parquet v2 sur ces types de table sur Databricks Runtime 18.1 et versions ultérieures.