Delen via


Wat is voorspellende I/O?

Voorspellende I/O is een verzameling azure Databricks-optimalisaties die de prestaties voor gegevensinteracties verbeteren. Voorspellende I/O-mogelijkheden zijn gegroepeerd in de volgende categorieën:

  • Versnelde leesbewerkingen verminderen de tijd die nodig is om gegevens te scannen en te lezen.
  • Versnelde updates verminderen de hoeveelheid gegevens die opnieuw moeten worden geschreven tijdens updates, verwijderingen en samenvoegingen.

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

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 op het volgende:

  • Bepaal het meest efficiënte toegangspatroon om de gegevens te lezen en alleen de gegevens te scannen die daadwerkelijk nodig zijn.
  • Schrap de decodering van columns en rijen die niet nodig zijn voor de generate-queryresultaten.
  • Bereken de waarschijnlijkheid van de zoekcriteria in selectieve query's die overeenkomen met een rij. Wanneer query's worden uitgevoerd, gebruiken we deze waarschijnlijkheden om te anticiperen op where de volgende overeenkomende rij zou optreden en alleen die gegevens uit cloudopslag zouden lezen.

Voorspellende I/O gebruiken om updates te versnellen

Voorspellende I/O voor updates wordt automatisch gebruikt voor alle tables waarvoor verwijderingsvectoren zijn ingeschakeld met behulp van de volgende met Photon ingeschakelde 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 Wat zijn verwijderingsvectoren?

Belangrijk

Een instelling van de werkruimtebeheerder regelt of verwijderingsvectoren automatisch worden ingeschakeld voor nieuwe Delta-tables. Zie Verwijdervectoren automatisch inschakelen.

U schakelt ondersteuning in voor verwijderingsvectoren op een Delta Lake-table door een delta lake-table-eigenschap in te stellen. U schakelt verwijderingsvectoren in tijdens het aanmaken van table of het wijzigen van een bestaande table, zoals in de volgende voorbeelden:

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 table protocolversie bijgewerkt. Na de upgrade kan de table niet worden gelezen door Delta Lake-clients die geen ondersteuning bieden voor verwijderingsvectoren. Zie Hoe beheert Azure Databricks de compatibiliteit van Delta Lake-functies?

Zie Compatibiliteit met Delta clientsvoor een list aantal clients die verwijderingsvectoren ondersteunen.

In Databricks Runtime 14.1 en hoger kunt u de table-functie van de verwijderingsvectoren uitschakelen om compatibiliteit met andere Delta-clients mogelijk te maken. Zie de kenmerkenvan Drop Delta .

Voorspellende I/O maakt gebruik van verwijderingsvectoren om updates te versnellen door de frequentie van volledige bestandsherschrijvingen te verminderen tijdens het wijzigen van gegevens op Delta tables. Voorspellende I/O optimaliseert, DELETEen MERGE bewerkingenUPDATE.

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 lossen op de table de huidige table-status op door de genoteerde wijzigingen toe te passen op de meest recente table-versie.

Belangrijk

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

  • Delta Sharing wordt niet ondersteund op tables met verwijderingsvectoren ingeschakeld.
  • U kunt een manifestbestand voor een table met aanwezige verwijderingsvectoren niet generate. Voer REORG TABLE ... APPLY (PURGE) uit en zorg ervoor dat er geen gelijktijdige schrijfbewerkingen worden uitgevoerd om een manifest te generate.
  • U kunt geen manifestbestanden generate incrementeel voor een table als verwijderingsvectoren zijn ingeschakeld.