Wat zijn verwijderingsvectoren?
Verwijderingsvectoren zijn een functie voor opslagoptimalisatie die u kunt inschakelen voor Delta Lake-tabellen. Wanneer één rij uit een gegevensbestand wordt verwijderd, moet het hele Parquet-bestand met de record standaard opnieuw worden geschreven. Als verwijderingsvectoren zijn ingeschakeld voor de tabel, DELETE
en UPDATE
bewerkingen, MERGE
worden verwijderingsvectoren gebruikt om bestaande rijen te markeren als verwijderd of gewijzigd zonder het Parquet-bestand te herschrijven. Volgende leesbewerkingen in de tabel lossen de huidige tabelstatus op door de verwijderingen toe te passen die worden aangegeven door verwijderingsvectoren op de meest recente tabelversie.
Databricks raadt aan om Databricks Runtime 14.3 LTS en hoger te gebruiken om tabellen te schrijven met verwijderingsvectoren om alle optimalisaties te gebruiken. U kunt tabellen lezen waarvoor verwijderingsvectoren zijn ingeschakeld in Databricks Runtime 12.2 LTS en hoger.
In Databricks Runtime 14.2 en hoger ondersteunen tabellen met verwijderingsvectoren gelijktijdigheid op rijniveau. Zie Schrijfconflicten met gelijktijdigheid op rijniveau.
Notitie
Photon maakt gebruik van verwijderingsvectoren voor voorspellende I/O-updates, versnellen DELETE
, MERGE
en UPDATE
bewerkingen. Alle clients die ondersteuning bieden voor leesverwijderingsvectoren kunnen updates lezen die verwijderingsvectoren hebben geproduceerd, ongeacht of voorspellende I/O deze updates heeft geproduceerd. Zie Voorspellende I/O gebruiken om updates te versnellen.
Verwijderingsvectoren inschakelen
Belangrijk
Een werkruimtebeheerder bepaalt of verwijderingsvectoren automatisch zijn ingeschakeld voor nieuwe Delta-tabellen. Zie Verwijdervectoren automatisch inschakelen.
Als de werkruimte-instelling voor het automatisch inschakelen van verwijderingsvectoren wordt gebruikt, worden verwijderingsvectoren standaard ingeschakeld op basis van de optie die is geselecteerd voor tabeltypen wanneer u een nieuwe tabel maakt met behulp van een SQL Warehouse of Databricks Runtime 14.1 of hoger. Verwijderingsvectoren zijn niet standaard ingeschakeld wanneer u gerealiseerde weergaven of streamingtabellen maakt en handmatig moet worden ingeschakeld wanneer u een gerealiseerde weergave of streamingtabel maakt.
Als u handmatig ondersteuning wilt inschakelen voor verwijderingsvectoren in een tabel of weergave, gebruikt u de delta.enableDeletionVectors
tabeleigenschap. U kunt verwijderingsvectoren handmatig inschakelen in een deltatabel wanneer u de tabel maakt of wijzigt. U kunt verwijderingsvectoren handmatig inschakelen voor een gerealiseerde weergave of streamingtabel wanneer u de gerealiseerde weergave of streamingtabel maakt. U kunt geen ALTER
instructie gebruiken om verwijderingsvectoren in te schakelen voor een gerealiseerde weergave of streamingtabel.
CREATE TABLE <table-name> [options] TBLPROPERTIES ('delta.enableDeletionVectors' = true);
ALTER TABLE <table-name> SET TBLPROPERTIES ('delta.enableDeletionVectors' = true);
Waarschuwing
Wanneer u verwijderingsvectoren inschakelt, wordt het tabelprotocol bijgewerkt. Na de upgrade kan de tabel niet worden gelezen door Delta Lake-clients die geen ondersteuning bieden voor verwijderingsvectoren. Zie Hoe beheert Azure Databricks de compatibiliteit van Delta Lake-functies?
In Databricks Runtime 14.1 en hoger kunt u de functie verwijderingsvectorentabel verwijderen om compatibiliteit met andere Delta-clients mogelijk te maken. Zie Delta-tabelfuncties neerzetten.
Wijzigingen toepassen op Parquet-gegevensbestanden
Verwijderingsvectoren geven wijzigingen in rijen aan als voorlopig verwijderen waarmee bestaande Parquet-gegevensbestanden in de Delta Lake-tabel logisch worden gewijzigd. Deze wijzigingen worden fysiek toegepast wanneer een van de volgende gebeurtenissen ervoor zorgt dat de gegevensbestanden opnieuw worden geschreven:
- Er wordt een
OPTIMIZE
opdracht uitgevoerd in de tabel. - Automatisch comprimeren activeert een herschrijfbewerking van een gegevensbestand met een verwijderingsvector.
REORG TABLE ... APPLY (PURGE)
wordt uitgevoerd op de tabel.
Gebeurtenissen met betrekking tot bestandscompressie hebben geen strikte garanties voor het oplossen van wijzigingen die zijn vastgelegd in verwijderingsvectoren en sommige wijzigingen die zijn vastgelegd in verwijderingsvectoren, worden mogelijk niet toegepast als doelgegevensbestanden anders geen kandidaten zijn voor bestandscompressie. REORG TABLE ... APPLY (PURGE)
herschrijft alle gegevensbestanden met records met wijzigingen die zijn vastgelegd met behulp van verwijderingsvectoren. Zie REORG TABLE.
Notitie
Gewijzigde gegevens bestaan mogelijk nog steeds in de oude bestanden. U kunt VACUUM uitvoeren om de oude bestanden fysiek te verwijderen. REORG TABLE ... APPLY (PURGE)
maakt een nieuwe versie van de tabel wanneer deze is voltooid. Deze voltooiingstijd is de tijdstempel die u moet overwegen voor de bewaardrempel voor uw VACUUM
bewerking om volledig verwijderde bestanden te verwijderen. Zie Ongebruikte gegevensbestanden verwijderen met vacuüm.
Compatibiliteit met Delta-clients
Azure Databricks maakt gebruik van verwijderingsvectoren om voorspellende I/O in te schakelen voor updates op compute met Photon. Zie Voorspellende I/O gebruiken om updates te versnellen.
Ondersteuning voor het gebruik van verwijderingsvectoren voor lees- en schrijfbewerkingen verschilt per client.
De volgende tabel geeft de vereiste clientversies aan voor het lezen en schrijven van Delta-tabellen waarvoor verwijderingsvectoren zijn ingeschakeld en geeft aan welke schrijfbewerkingen verwijderingsvectoren gebruiken:
Klant | Verwijderingsvectoren schrijven | Verwijderingsvectoren lezen |
---|---|---|
Databricks Runtime met Photon | Ondersteunt MERGE , UPDATE en DELETE gebruikt Databricks Runtime 12.2 LTS en hoger. |
Vereist Databricks Runtime 12.2 LTS of hoger. |
Databricks Runtime zonder Photon | Ondersteunt DELETE het gebruik van Databricks Runtime 12.2 LTS en hoger. Ondersteunt UPDATE het gebruik van Databricks Runtime 14.1 en hoger. Ondersteunt MERGE het gebruik van Databricks Runtime 14.3 LTS en hoger. |
Vereist Databricks Runtime 12.2 LTS of hoger. |
OSS Apache Spark met OSS Delta Lake | Ondersteunt DELETE het gebruik van OSS Delta 2.4.0 en hoger. Ondersteunt UPDATE het gebruik van OSS Delta 3.0.0 en hoger. |
Vereist OSS Delta 2.3.0 of hoger. |
Ontvangers van Delta Delen | Schrijfbewerkingen worden niet ondersteund in Delta Sharing-tabellen | Databricks: vereist DBR 14.1 of hoger. Open source Apache Spark: vereist delta-sharing-spark 3.1 of hoger. |
Notitie
Zie de documentatie over OSS Delta Lake-integraties voor ondersteuning met andere Delta-clients.
Beperkingen
- UniForm biedt geen ondersteuning voor verwijderingsvectoren.
- U kunt een GENERATE-instructie niet gebruiken om een manifestbestand te genereren voor een tabel die bestanden bevat met behulp van verwijderingsvectoren. Als u een manifest wilt genereren, voert u eerst een REORG-TABEL uit... DE INSTRUCTIE APPLY (PURGE) en voer vervolgens de
GENERATE
instructie uit. U moet ervoor zorgen dat er geen gelijktijdige schrijfbewerkingen worden uitgevoerd wanneer u deREORG
instructie indient. - U kunt geen manifestbestanden voor een tabel genereren waarvoor verwijderingsvectoren zijn ingeschakeld (bijvoorbeeld door de tabeleigenschap
delta.compatibility.symlinkFormatManifest.enabled=true
in te stellen). - Als u verwijderingsvectoren inschakelt voor een gerealiseerde weergave of streamingtabel en vervolgens verwijderingsvectoren uitschakelt, worden toekomstige schrijfbewerkingen naar de weergave of tabel verhinderd om verwijderingsvectoren te gebruiken, maar worden bestaande verwijderingsvectoren niet verwijderd.
- U kunt het tabelprotocol niet downgraden nadat u verwijderingsvectoren hebt ingeschakeld voor een gerealiseerde weergave of streamingtabel. Na het inschakelen kan de tabelfunctie voor verwijderingsvectoren niet worden verwijderd, zelfs niet als u vervolgens verwijderingsvectoren uitschakelt in de weergave of tabel.
- U kunt niet uitvoeren
REORG
op gerealiseerde weergaven of streamingtabellen om wijzigingen door te voeren die zijn vastgelegd in verwijderingsvectoren in Parquet-gegevensbestanden die deze objecten back-ups maken. Schakel vanwege deze beperking geen verwijderingsvectoren in voor gerealiseerde weergaven of streamingtabellen als u een volledige verwijdering van records moet garanderen (bijvoorbeeld voor AVG- of CCPA-naleving).