Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik de Opdracht Delta Lake VACUUM om gegevensbestanden die niet meer worden verwezen door een Delta-tabel, permanent te verwijderen en die ouder zijn dan uw retentiedrempel.
In Fabric helpt het je om verouderde bestanden in OneLake op te ruimen VACUUM na updates, verwijderingen, samenvoegingen en compactiebewerkingen. Het vermindert het opslagverbruik, verwijdert verouderde bestanden die Fabric niet meer nodig hebben voor de actieve tabelstatus en maakt ruimte vrij na onderhoudsbewerkingen zoals OPTIMIZE.
VACUUM volgt dezelfde kernconcepten van Delta Lake die u mogelijk kent vanuit opensource Delta Lake, maar u voert deze uit in Fabric Spark-ervaringen, zoals notebooks, Spark-taakdefinities en de Lakehouse-Domeinbeheer-gebruikersinterface.
Wat VACUUM verwijdert
In een Delta-tabel worden de bestanden bijgehouden waaruit de huidige tabelstatus in het Delta-logboek bestaat. Wanneer bewerkingen zoals UPDATE, DELETE, MERGE, overwrite writes of compactie oudere Parquet-bestanden door nieuwere vervangen, kunnen de oude bestanden niet langer meer worden gerefereerd.
VACUUM verwijdert die niet-verwezen bestanden alleen als aan beide van deze voorwaarden is voldaan:
- Er wordt niet meer naar de bestanden verwezen door het Delta-logboek.
- De bestanden zijn ouder dan de geconfigureerde retentiedrempel.
Omdat VACUUM bestanden permanent uit OneLake worden verwijderd, gebruikt u deze zorgvuldig wanneer u nog oudere tabelversies nodig hebt.
Waarom VACUUM belangrijk is
Voer VACUUM uit wanneer u het volgende wilt:
- Opslagkosten verlagen door verouderde bestanden uit OneLake te verwijderen
- Ruimte vrijmaken na updates, verwijderingen en samenvoegbewerkingen
- Pre-compactiebestanden opschonen nadat
OPTIMIZEvervangende bestanden heeft gemaakt - Langdurige productietabellen voorkomen dat overbodige verouderde gegevensbestanden worden opgestapeld
VACUUM verbetert de prestaties van query's niet op zichzelf op dezelfde manier als de optimalisatie van compressie of bestandsindelingen. Het belangrijkste doel is het opschonen van opslag.
Waar kan ik VACUUM uitvoeren?
VACUUM is een Spark-opdracht in Fabric. Voer deze uit op plaatsen die gebruikmaken van de Spark-engine, zoals:
- notitieblokken Fabric
- Spark-taakdefinities
- De gebruikersinterface voor Lakehouse-onderhoud en pijplijngebaseerde onderhoudswerkstromen
Voer VACUUM niet uit in het SQL analytics-endpoint of de warehouse-SQL-editor. Deze ervaringen bieden geen ondersteuning voor Spark Delta-onderhoudsopdrachten.
Als u een werkstroom op basis van een portal wilt, raadpleegt u Het onderhoud van de Lakehouse-tabel.
Note
Voer in notebooks SQL-voorbeelden uit in een Spark SQL-cel, Python voorbeelden in een PySpark-cel en Scala-voorbeelden in een Scala-cel.
Voorbeelden van syntaxis
Gebruik de volgende voorbeelden wanneer u VACUUM uitvoert in Fabric.
Een tabel leegmaken met de standaardretentie
Een tabel leegmaken met een aangepaste retentiedrempel
Voorbeeld van bestanden met DRY RUN
Gebruik DRY RUN deze lijst om de bestanden weer te geven die worden verwijderd zonder ze daadwerkelijk te verwijderen.
VACUUM schema_name.table_name DRY RUN
U kunt ook combineren RETAIN en DRY RUN.
VACUUM schema_name.table_name RETAIN 168 HOURS DRY RUN
Stofzuigen in LITE-modus
VACUUM LITE is een sneller alternatief dat alleen gebruikmaakt van het Delta-transactielogboek om niet-verwezen bestanden te identificeren, in plaats van elk bestand in de tabelmap op te sommen. Deze aanpak is aanzienlijk sneller voor grote tabellen met veel bestanden.
VACUUM schema_name.table_name LITE
VACUUM schema_name.table_name LITE RETAIN 168 HOURS
VACUUM LITE identificeert bestanden die moeten worden verwijderd door het Delta-logboek te lezen in plaats van een volledige mapvermelding uit te voeren. Het is sneller, maar er is voldoende logboekgeschiedenis vereist om te bepalen welke bestanden niet worden gelezen. Als het Delta-logboek verder is opgeschoond dan de modus LITE nodig heeft, wordt er een DELTA_CANNOT_VACUUM_LITE-uitzondering gegenereerd — val in dat geval terug op de standaard VACUUM (volledige modus).
Note
VACUUM LITE wordt ondersteund in Fabric Spark Runtime 2.0 (Delta 4.1) of hoger. Controleer of uw Fabric runtime-versie deze functie ondersteunt.
Stofzuigen met een inventaristabel
Voor zeer grote tabellen waarbij zelfs de standaardlijstweergave VACUUM traag is, kunt u een vooraf samengestelde inventaris van bestanden opgeven. In plaats van tijdens runtime de inhoud van de tabelmap op te sommen, leest VACUUM bestandspaden uit de inventaris die u aanlevert.
VACUUM schema_name.table_name USING INVENTORY inventory_table_name
VACUUM schema_name.table_name USING INVENTORY (SELECT * FROM inventory_table_name WHERE path LIKE 'abfss://%')
De inventaristabel (of query) moet het volgende schema hebben:
| Column | Typ | Description |
|---|---|---|
path |
string | Volledig gekwalificeerde bestands-URI. |
length |
integer | Bestandsgrootte in bytes. |
isDir |
booleaans | Of het item een map is. |
modificationTime |
integer | Tijdstip van laatste wijziging van bestand in milliseconden sinds de epoch. |
U kunt een inventaristabel vullen vanuit metagegevens van OneLake-bestanden, inventarisrapporten van opslagaccounts of een aangepaste Spark-taak waarin de tabelmap volgens een planning wordt vermeld. Hierdoor wordt de dure stap voor het opstellen van een bestandslijst losgekoppeld van de bewerking VACUUM zelf.
Standaard retentieperiode
Als u geen bewaarinterval opgeeft, VACUUM gebruikt u de standaardretentieperiode van zeven dagen, namelijk 168 uren.
Deze standaardinstelling biedt actieve lezers, schrijvers en time-travel query's een veiliger venster voordat oudere bestanden worden verwijderd.
Veiligheidscontrole voor korte bewaarperioden
Delta Lake bevat een bewaarveiligheidscontrole die wordt beheerd door spark.databricks.delta.retentionDurationCheck.enabled.
Als u een bewaarperiode probeert te gebruiken die korter is dan zeven dagen, waarschuwt deze veiligheidscontrole u, tenzij u de controle in uw Spark-configuratie expliciet uitschakelt.
Wees voorzichtig voordat u deze beveiliging uitschakelt. Een kort bewaarvenster kan bestanden verwijderen die gelijktijdige workloads of herstelscenario's nog nodig hebben.
Met deze opdrachten wordt bijvoorbeeld een bewaarperiode van één dag aangevraagd:
Als uw omgeving de veiligheidscontrole ingeschakeld houdt, waarschuwt de runtime u voor bewaarinstellingen onder zeven dagen.
Begrijp de impact op tijdreizen
Met Delta Lake-tijdreizen kunt u oudere tabelversies opvragen zolang de vereiste historische bestanden nog bestaan.
VACUUM verwijdert bestanden die ouder zijn dan het bewaarvenster, zodat ook de gegevensbestanden worden verwijderd die nodig zijn voor tijdreizen buiten dat venster. Nadat deze bestanden zijn leeggezogen, kunt u geen query's meer uitvoeren op deze oudere versies.
Voordat u de bewaartermijn verkort, moet u bepalen hoeveel toegang tot historische gegevens uw workloads, audits, debuggingstappen en herstelprocessen vereisen. Zie Tijdreizen voor meer informatie.
Inzicht krijgen in de impact op verwijderingsvectoren
Verwijderingsvectoren kunnen rijen markeren als verwijderd zonder elk betrokken gegevensbestand onmiddellijk te herschrijven. Vanwege dit gedrag maken bestanden die er oud uitzien mogelijk nog steeds deel uit van de actieve tabelstatus.
VACUUM verwijdert geen bestanden waarnaar nog wordt verwezen, inclusief bestanden die geldig blijven omdat metagegevens van de verwijderingsvector nog steeds naar deze bestanden verwijzen. Als u verwijderingsvectoren gebruikt en de tabel later opnieuw ordenen of optimaliseren, komen er mogelijk meer verouderde bestanden in aanmerking voor VACUUM nadat deze wijzigingen zijn voltooid.
Zie REORG Delta-tabellen voor het fysiek herschrijven van gegevens die worden beïnvloed door verwijderingsvectoren.
Best practices volgen
Gebruik deze procedures wanneer u VACUUM uitvoert in Fabric:
- Voer
VACUUMuit naOPTIMIZEom pre-compactiebestanden die niet meer nodig zijn te verwijderen. - Stel retentie niet onder zeven dagen in, tenzij u duidelijk begrijpt wat het effect is op tijdreizen, lezers, schrijvers en herstel.
- Plan normale
VACUUMbewerkingen in productiepijplijnen, zodat verouderde bestanden niet worden verzameld in OneLake. - Bepaal uw vereisten voor tijdreizen voordat u de bewaartermijn verkort.
- Gebruik
DRY RUNeerst wanneer u wilt controleren welke bestanden binnenkort worden verwijderd.
Voor Fabric-brede richtlijnen voor onderhoud, zie Table maintenance overview en Lakehouse table maintenance.
Begrijpen wat VACUUM niet verwijdert
VACUUM verwijdert verouderde gegevensbestanden, maar verwijdert geen Delta-logboekbestanden in de _delta_log map.
Het opschonen van Delta-logboeken volgt het gedrag van controlepunten en logboekretentie, dat losstaat van VACUUM.