Parquet v2

Disponibile in Databricks Runtime 18.1 e versioni successive, Parquet v2 migliora le prestazioni delle query e riduce l'archiviazione per le tabelle Delta Lake e Apache Iceberg usando codifiche avanzate, intestazioni di pagina dati v2 e INT64 timestamp.

Funzionamento di Parquet v2

Parquet v2 introduce miglioramenti al formato di file di dati che riducono l'archiviazione e migliorano le prestazioni di lettura:

  • Codifiche avanzate: le colonne integer e stringa usano nuove codifiche con compressione e decodifica più efficienti rispetto alle codifiche usate in Parquet v1.
  • Intestazioni delle pagine dati V2: le statistiche e gli indici a livello di pagina migliorano il predicate pushdown e il data skipping, riducendo la quantità di dati analizzati in fase di esecuzione delle query.
  • Timestamp INT64: INT64 i timestamp sostituiscono il timestamp legacy INT96 , migliorando le statistiche delle colonne e la codifica e la compressione del timestamp.

Abilitare Parquet v2

Azure Databricks aggiorna automaticamente le tabelle gestite di Unity Catalog al formato Parquet v2. Vedere Aggiornamenti automatici.

Per abilitare manualmente Parquet v2, impostare la proprietà della tabella parquet.format.version su 2.12.0 utilizzando il prefisso appropriato per il tipo di tabella. Prima di abilitare manualmente, esaminare le limitazioni.

Per abilitare Parquet v2 in una tabella esistente:

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

Per abilitare Parquet v2 in una nuova tabella:

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

Dopo aver impostato la proprietà, tutte le scritture successive usano le codifiche v2. I file Parquet v1 e v2 possono coesistere nella stessa tabella. I file di dati esistenti non vengono riscritti automaticamente. Per le tabelle Delta Lake, per riscrivere i file esistenti nella versione 2, usare REORG TABLE in Databricks Runtime 18.2 e versioni successive:

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

Per informazioni di riferimento sulla proprietà della tabella completa, vedere Riferimento alle proprietà della tabella.

Eseguire il rollback a Parquet v1

In Databricks Runtime 18.2 e versioni successive, per ripristinare una singola tabella alla codifica v1, esegui REORG TABLE con l'opzione SET PARQUET:

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

Questo comando riscrive tutti i file di dati usando le codifiche v1 e reimposta la delta.parquet.format.version proprietà della tabella su 1.0.0.

Vedi REORG TABLE per la sintassi completa di REORG TABLE.

Limitazioni

Parquet v2 presenta le limitazioni seguenti:

  • Per i motori esterni, alcuni lettori Apache Iceberg potrebbero non supportare Parquet v2 per le tabelle Iceberg. È necessario verificare che i lettori di Iceberg siano compatibili prima di abilitare Parquet v2 nelle tabelle Iceberg.
  • Per OpenSharing, prima di abilitare Parquet v2, verificare che i client lettore per i destinatari OpenSharing supportino le codifiche Parquet v2.
  • Le viste materializzate e le tabelle di streaming non vengono aggiornate automaticamente a Parquet v2. È possibile abilitare manualmente Parquet v2 in questi tipi di tabella in Databricks Runtime 18.1 e versioni successive.