Parquet v2

Ab Databricks Runtime 18.1 verfügbar, verbessert Parquet v2 die Abfrageleistung und reduziert den Speicherbedarf für Delta Lake- und Apache Iceberg-Tabellen durch die Verwendung erweiterter Codierungen, von v2-Datenseiten-Headern und INT64 Zeitstempeln.

Funktionsweise von Parkett v2

Parkett v2 führt Verbesserungen des Datendateiformats ein, die die Speicherung reduzieren und die Leseleistung verbessern:

  • Erweiterte Codierungen: Ganzzahl- und Zeichenfolgenspalten verwenden neue Codierungen mit effizienterer Komprimierung und Decodierung im Vergleich zu den in Parkett v1 verwendeten Codierungen.
  • V2-Datenseitenheader: Statistiken und Indizes auf Seitenebene verbessern das Prädikat-Pushdown und das Überspringen von Daten, wodurch die Menge der zur Abfragezeit gescannten Daten reduziert wird.
  • INT64-Zeitstempel: INT64 Zeitstempel ersetzen den älteren INT96 Zeitstempel, verbessern Spaltenstatistiken und Zeitstempelcodierung und Komprimierung.

Parquet v2 aktivieren

Azure Databricks aktualisiert automatisch kompatible Unity Catalog verwaltete Tabellen auf Parkett v2. Weitere Informationen finden Sie unter "Automatische Upgrades".

Um Parquet v2 manuell zu aktivieren, setzen Sie die Tabelleneigenschaft parquet.format.version unter Verwendung des entsprechenden Präfixes für Ihren Tabellentyp auf 2.12.0. Überprüfen Sie vor der manuellen Aktivierung die Einschränkungen.

So aktivieren Sie Parkett v2 auf einem vorhandenen Tisch:

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

So aktivieren Sie Parkett v2 auf einem neuen Tisch:

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

Nachdem Sie die Eigenschaft festgelegt haben, verwenden alle nachfolgenden Schreibvorgänge v2-Codierungen. Dateien im Format Parquet v1 und v2 können in derselben Tabelle nebeneinander existieren. Vorhandene Datendateien werden nicht automatisch neu geschrieben. Um bei Delta Lake-Tabellen vorhandene Dateien in v2 umzuschreiben, verwenden Sie REORG TABLE in Databricks Runtime 18.2 und höher:

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

Siehe Referenz der Tabelleneigenschaften für die vollständige Referenz der Tabelleneigenschaften.

Auf Parquet v1 zurücksetzen

In Databricks Runtime 18.2 und höher führen Sie REORG TABLE mit der Option SET PARQUET aus, um eine einzelne Tabelle auf die v1-Codierung zurückzusetzen:

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

Dieser Befehl schreibt alle Datendateien mit v1-Codierungen um und setzt die delta.parquet.format.version Tabelleneigenschaft auf 1.0.0.

Siehe REORG TABLE für die vollständige REORG TABLE-Syntax.

Einschränkungen

Parkett v2 hat die folgenden Einschränkungen:

  • Für externe Engines unterstützen einige Apache-Iceberg-Reader möglicherweise Parquet v2 für Iceberg-Tabellen nicht. Sie müssen überprüfen, ob die Iceberg-Reader kompatibel sind, bevor Sie Parquet v2 für Iceberg-Tabellen aktivieren.
  • Stellen Sie bei OpenSharing vor dem Aktivieren von Parkett v2 sicher, dass die Leserclients für OpenSharing-Empfänger Die Codierungen von Parkett v2 unterstützen.
  • Materialisierte Ansichten und Streamingtabellen werden nicht automatisch auf Parkett v2 aktualisiert. Sie können Parquet v2 für diese Tabellentypen in Databricks Runtime 18.1 und höher manuell aktivieren.