Wat is voorspellende I/O?

Predictive I/O is een verzameling Azure Databricks-optimalisaties die het lezen en bijwerken van data versnellen:

  • Versnelde reads versnellen selectieve zoekopdrachten die anders veel meer data zouden scannen dan ze teruggeven.
  • Versnelde updates verminderen de hoeveelheid herschreven gegevens wanneer een update, verwijdering of samenvoeging slechts enkele rijen in een bestand verandert.

Voorspellende I/O is exclusief voor de Photon-engine in Azure Databricks. Zie Wat is Photon?

Wanneer voorspellende I/O van toepassing is

Voorspellende I/O draait automatisch. Je zet het niet aan voor individuele zoekopdrachten. Om hiervan te profiteren:

Voorspellende I/O vervangt ook Bloom-filterindexen. Zie Bloom-filterindexen (verouderd).

Voorspellende I/O gebruiken om leesbewerkingen te versnellen

Voorspellende I/O wordt gebruikt om het scannen en filteren van gegevens te versnellen voor alle bewerkingen op ondersteunde rekentypen.

Belangrijk

Voorspellende I/O-leesbewerkingen worden ondersteund door de serverloze en pro-typen SQL-warehouses en met Photon versnelde clusters waarop Databricks Runtime 11.3 LTS en hoger wordt uitgevoerd.

Voorspellende I/O verbetert de scanprestaties door deep learning-technieken toe te passen om:

  • Bepaal het meest efficiĆ«nte toegangspatroon om de data te lezen en scan alleen de data die daadwerkelijk nodig is.
  • Verwijder de decodering van kolommen en rijen die niet nodig zijn om queryresultaten te genereren.
  • Bereken de waarschijnlijkheid van de zoekcriteria in selectieve query's die overeenkomen met een rij. Terwijl queries draaien, gebruikt Predictive I/O deze kansen om te anticiperen waar de volgende overeenkomende rij plaatsvindt en leest alleen die data uit de cloudopslag.

Voorspellende I/O gebruiken om updates te versnellen

Voorspellende I/O voor updates worden automatisch gebruikt voor alle tabellen die verwijderingsvectoren hebben ingeschakeld op deze Photon-enabled rekentypen:

  • Serverloze SQL-magazijnen.
  • Pro SQL Warehouses.
  • Clusters met Databricks Runtime 14.0 en hoger.

Notitie

Ondersteuning voor voorspellende I/O voor updates is aanwezig in Databricks Runtime 12.2 LTS en hoger, maar Databricks raadt aan om 14.0 en hoger te gebruiken voor de beste prestaties.

Zie Verwijderingsvectoren in Databricks.

Belangrijk

Een workspace-beheerinstelling bepaalt of verwijderingsvectoren automatisch worden ingeschakeld voor nieuwe Delta Lake-tabellen. Zie Verwijderingsvectoren automatisch inschakelen.

U schakelt ondersteuning in voor verwijderingsvectoren in een Delta Lake-tabel door een Delta Lake-tabeleigenschap in te stellen. Je schakelt verwijderingsvectoren in tijdens het aanmaken van een tabel of verandert een bestaande tabel, bijvoorbeeld:

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

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

Waarschuwing

Wanneer u verwijderingsvectoren inschakelt, wordt de versie van het tabelprotocol bijgewerkt. Na het upgraden is de tabel niet leesbaar voor Delta Lake-clients die geen verwijderingsvectoren ondersteunen. Bekijk de compatibiliteit en protocollen van Delta Lake-functies.

Zie Clientcompatibiliteit voor een lijst met clients die verwijderingsvectoren ondersteunen.

In Databricks Runtime 14.1 en hoger kunt u de functie verwijderingsvectorentabel verwijderen om compatibiliteit met andere Delta-clients mogelijk te maken. Zie Een Delta Lake-tabel verwijderen en tabelprotocol verlagen.

Predictive I/O maakt gebruik van verwijderingsvectoren om updates te versnellen door de frequentie van volledige bestandsherschrijvingen tijdens data-aanpassing op Delta Lake-tabellen te verminderen. Voorspellende I/O optimaliseert DELETE, MERGE en UPDATE bewerkingen.

In plaats van alle records in een gegevensbestand te herschrijven wanneer een record wordt bijgewerkt of verwijderd, gebruikt voorspellende I/O verwijderingsvectoren om aan te geven dat records zijn verwijderd uit de doelgegevensbestanden. Aanvullende gegevensbestanden worden gebruikt om updates aan te geven.

Volgende leesbewerkingen in de tabel lossen de huidige tabelstatus op door de genoteerde wijzigingen toe te passen op de meest recente tabelversie.

Belangrijk

Voorspellende I/O-updates delen alle beperkingen met verwijderingsvectoren. In Databricks Runtime 12.2 LTS en hoger gelden deze beperkingen:

  • OpenSharing wordt niet ondersteund voor tabellen waarvoor verwijderingsvectoren zijn ingeschakeld.
  • U kunt geen manifestbestand genereren voor een tabel met verwijderingsvectoren die aanwezig zijn. Voer REORG TABLE ... APPLY (PURGE) uit en zorg ervoor dat er geen gelijktijdige schrijfbewerkingen worden uitgevoerd om een manifest te genereren.
  • U kunt niet stap voor stap manifestbestanden genereren voor een tabel waarvoor verwijderingsvectoren zijn ingeschakeld.