Was ist Predictive I/O?

Predictive I/O ist eine Sammlung von Azure Databricks-Optimierungen, die die Leistung für Dateninteraktionen verbessern. Predictive I/O-Funktionen sind in die folgenden Kategorien unterteilt:

  • Beschleunigte Lesevorgänge reduzieren die Zeit, die zum Scannen und Lesen von Daten benötigt wird.
  • Beschleunigte Updates reduzieren die Menge an Daten, die bei Updates, Löschvorgängen und Zusammenführungen neu geschrieben werden müssen.

Predictive I/O ist exklusiv für die Photon-Engine in Azure Databricks.

Verwenden von Predictive I/O zum Beschleunigen von Lesevorgängen

Predictive I/O-Vorgänge werden verwendet, um die Leistung der Datenüberprüfung und -filterung für alle Vorgänge für unterstützte Computetypen zu steigern.

Wichtig

Prädiktive E/A-Lesevorgänge werden von den serverlosen und Pro-Typen von SQL-Warehouses sowie von Photon-beschleunigten Clustern unterstützt, die Databricks Runtime 11.3 LTS und höher ausführen.

Predictive I/O verbessert die Scanleistung durch die Anwendung von Deep-Learning-Techniken, um Folgendes zu erreichen:

  • Bestimmen des effizientesten Zugriffsmusters, um Daten zu lesen und nur die Daten zu überprüfen, die tatsächlich benötigt werden.
  • Aufheben der Decodierung von Spalten und Zeilen, die zum Generieren von Abfrageergebnissen nicht erforderlich sind.
  • Berechnen der Wahrscheinlichkeiten von Suchkriterien in selektiven Abfragen, die einer Zeile entsprechen. Beim Ausführen von Abfragen werden diese Wahrscheinlichkeiten verwendet, um vorherzusehen, wo die nächste übereinstimmende Zeile auftreten könnte, und nur diese Daten aus dem Cloudspeicher zu lesen.

Verwenden von Predictive I/O zum Beschleunigen von Updatevorgängen

Predictive I/O für Updates wird automatisch für alle Tabellen verwendet, in denen Löschvektoren mithilfe der folgenden Photon-fähigen Computetypen aktiviert sind:

  • Serverlose SQL-Warehouses
  • Pro SQL-Warehouses
  • Cluster mit Databricks Runtime 14.0 und höher

Hinweis

Zwar wird prädiktives E/A für Updates in Databricks Runtime 12.2 LTS und höher unterstützt, Databricks empfiehlt jedoch die Verwendung von Databricks Runtime 14.0 und höher, um eine optimale Leistung zu gewährleisten.

Weitere Informationen finden Sie unter Was sind Löschvektoren?.

Wichtig

Eine Arbeitsbereichsadministratoreinstellung steuert, ob Löschvektoren automatisch für neue Delta-Tabellen aktiviert werden. Weitere Informationen finden Sie unter Automatische Aktivierung von Löschvektoren.

Sie aktivieren die Unterstützung für Löschvektoren für eine Delta Lake-Tabelle, indem Sie eine Delta Lake-Tabelleneigenschaft festlegen. Sie können Löschvektoren während der Tabellenerstellung aktivieren, oder indem Sie eine vorhandene Tabelle ändern, wie in den folgenden Beispielen gezeigt:

CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);

ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);

Warnung

Wenn Sie Löschvektoren aktivieren, wird die Tabellenprotokollversion aktualisiert. Nach dem Upgrade ist die Tabelle für Delta Lake-Clients, die keine Löschvektoren unterstützen, nicht mehr lesbar. Weitere Informationen finden Sie unter Wie verwaltet Azure Databricks die Kompatibilität von Delta Lake-Features?.

Eine Liste der Clients, die Löschvektoren unterstützen, finden Sie unter Kompatibilität mit Delta-Clients.

In Databricks Runtime 14.1 und höher können Sie das Tabellenfeature für Löschvektoren ablegen, um die Kompatibilität mit anderen Delta-Clients zu ermöglichen. Siehe Delta-Tabellenfeatures ablegen.

Predictive I/O nutzt Löschvektoren, um Updates zu beschleunigen, indem die Häufigkeit vollständiger Dateiumschreibungen während der Datenänderung in Delta-Tabellen reduziert wird. Predictive I/O optimiert DELETE-, MERGE- und UPDATE-Vorgänge.

Anstatt alle Datensätze in einer Datendatei neu zu schreiben, wenn ein Datensatz aktualisiert oder gelöscht wird, verwendet Predictive I/O Löschvektoren, um anzugeben, dass Datensätze aus den Zieldatendateien entfernt wurden. Zusätzliche Datendateien werden verwendet, um Updates anzugeben.

Nachfolgende Lesevorgänge in der Tabelle lösen den aktuellen Tabellenstatus auf, indem die notierten Änderungen auf die neueste Tabellenversion angewendet werden.

Wichtig

Predictive I/O-Updates teilen alle Einschränkungen mit Löschvektoren. In Databricks Runtime 12.2 LTS und höher gelten die folgenden Einschränkungen:

  • Delta-Freigabe wird für Tabellen mit aktivierten Löschvektoren nicht unterstützt.
  • Sie können keine Manifestdatei für eine Tabelle mit vorhandenen Löschvektoren generieren. Führen Sie REORG TABLE ... APPLY (PURGE) aus und stellen Sie sicher, dass keine gleichzeitigen Schreibvorgänge ausgeführt werden, um ein Manifest zu generieren.
  • Sie können keine inkrementellen Manifestdateien für eine Tabelle mit aktivierten Löschvektoren erstellen.