Share via


Vad är förutsägande I/O?

Förutsägande I/O är en samling Azure Databricks-optimeringar som förbättrar prestanda för datainteraktioner. Förutsägande I/O-funktioner grupperas i följande kategorier:

  • Accelererade läsningar minskar den tid det tar att skanna och läsa data.
  • Accelererade uppdateringar minskar mängden data som behöver skrivas om under uppdateringar, borttagningar och sammanslagningar.

Predictive I/O är exklusivt för Photon-motorn i Azure Databricks.

Använda förutsägande I/O för att påskynda läsningar

Förutsägande I/O används för att påskynda datagenomsökning och filtreringsprestanda för alla åtgärder på beräkningstyper som stöds.

Viktigt!

Förutsägande I/O-läsningar stöds av de serverlösa och pro-typerna av SQL-lager och Photon-accelererade kluster som kör Databricks Runtime 11.3 LTS och senare.

Förutsägande I/O förbättrar genomsökningsprestanda genom att använda djupinlärningstekniker för att göra följande:

  • Fastställ det mest effektiva åtkomstmönstret för att läsa data och genomsök endast de data som faktiskt behövs.
  • Eliminera avkodningen av kolumner och rader som inte krävs för att generera frågeresultat.
  • Beräkna sannolikheten för sökvillkoren i selektiva frågor som matchar en rad. När frågor körs använder vi dessa sannolikheter för att förutse var nästa matchande rad skulle inträffa och bara läsa dessa data från molnlagringen.

Använda förutsägande I/O för att påskynda uppdateringar

Förutsägande I/O för uppdateringar används automatiskt för alla tabeller som har borttagningsvektorer aktiverade med hjälp av följande Photon-aktiverade beräkningstyper:

  • Serverlösa SQL-lager.
  • Pro SQL-lager.
  • Kluster som kör Databricks Runtime 14.0 och senare.

Kommentar

Stöd för förutsägande I/O för uppdateringar finns i Databricks Runtime 12.2 LTS och senare, men Databricks rekommenderar att du använder 14.0 och senare för bästa prestanda.

Se Vad är borttagningsvektorer?.

Viktigt!

En administratörsinställning för arbetsytan styr om borttagningsvektorer är automatiskt aktiverade för nya Delta-tabeller. Se Automatisk aktivering av borttagningsvektorer.

Du aktiverar stöd för borttagningsvektorer i en Delta Lake-tabell genom att ange en Delta Lake-tabellegenskap. Du aktiverar borttagningsvektorer när tabellen skapas eller ändrar en befintlig tabell, som i följande exempel:

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

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

Varning

När du aktiverar borttagningsvektorer uppgraderas tabellprotokollversionen. Efter uppgraderingen kan tabellen inte läsas av Delta Lake-klienter som inte stöder borttagningsvektorer. Se Hur hanterar Azure Databricks Delta Lake-funktionskompatibilitet?.

En lista över klienter som stöder borttagningsvektorer finns i Kompatibilitet med Delta-klienter.

I Databricks Runtime 14.1 och senare kan du släppa tabellfunktionen för borttagningsvektorer för att aktivera kompatibilitet med andra Delta-klienter. Se Drop Delta table features (Ta bort deltatabellfunktioner).

Förutsägande I/O utnyttjar borttagningsvektorer för att påskynda uppdateringar genom att minska frekvensen för fullständiga filomskrivningar under dataändring i Delta-tabeller. Förutsägande I/O optimerar DELETE, MERGEoch UPDATE åtgärder.

I stället för att skriva om alla poster i en datafil när en post uppdateras eller tas bort använder förutsägande I/O borttagningsvektorer för att indikera att poster har tagits bort från måldatafilerna. Kompletterande datafiler används för att indikera uppdateringar.

Efterföljande läsningar i tabellen löser det aktuella tabelltillståndet genom att tillämpa de antecknade ändringarna på den senaste tabellversionen.

Viktigt!

Prediktiva I/O-uppdateringar delar alla begränsningar med borttagningsvektorer. I Databricks Runtime 12.2 LTS och senare finns följande begränsningar:

  • Deltadelning stöds inte i tabeller med borttagningsvektorer aktiverade.
  • Du kan inte generera en manifestfil för en tabell med borttagningsvektorer. Kör REORG TABLE ... APPLY (PURGE) och se till att inga samtidiga skrivåtgärder körs för att generera ett manifest.
  • Du kan inte generera manifestfiler stegvis för en tabell med borttagningsvektorer aktiverade.