Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Bruk Delta Lake-kommandoen VACUUM for permanent å fjerne datafiler som ikke lenger refereres til i en Delta-tabell og som er eldre enn din lagringsgrense.
In Fabric VACUUM hjelper det deg med å rydde opp i utdaterte filer i OneLake etter oppdateringer, slettinger, sammenslåinger og komprimeringsoperasjoner. Den reduserer lagringsforbruket, fjerner utdaterte filer som Fabric ikke lenger trenger for den aktive tabellens tilstand, og tar tilbake plass etter vedlikeholdsoperasjoner som OPTIMIZE.
VACUUM følger de samme kjernekonseptene fra Delta Lake som du kanskje kjenner fra åpen kildekode Delta Lake, men du kjører det i Fabric Spark-opplevelser som notatbøker, Spark-jobbdefinisjoner og Lakehouse Maintenance UI.
Hva STØVSUGER fjerner
En Delta-tabell holder oversikt over filene som utgjør den nåværende tabellens tilstand i Delta-loggen. Når operasjoner som UPDATE, DELETE, , MERGEoverskriver skrivinger eller komprimering erstatter eldre Parquet-filer med nyere, kan de gamle filene bli urefererte.
VACUUM fjerner disse urefererte filene bare når begge disse betingelsene er oppfylt:
- Filene refereres ikke lenger til i Delta-loggen.
- Filene er eldre enn den konfigurerte lagringsgrensen.
Fordi VACUUM filer permanent sletter fra OneLake, bruk det forsiktig når du fortsatt trenger eldre tabellversjoner.
Hvorfor VACUUM er viktig
Løp VACUUM når du vil:
- Reduser lagringskostnadene ved å slette utdaterte filer fra OneLake
- Gjenvinn plass etter oppdateringer, slettinger og sammenslåingsoperasjoner
- Rydd opp i forhåndskomprimeringsfiler etter
OPTIMIZEat du har opprettet erstatningsfiler - Unngå at langvarige produksjonstabeller samler opp unødvendige utdaterte datafiler
VACUUM forbedrer ikke spørringsytelsen alene på samme måte som komprimering eller filoppsett-optimaliseringer gjør. Hovedformålet er opprydding i lageret.
Hvor man skal kjøre vakuum
VACUUM er en Spark-kommando i Fabric. Kjør den på steder som bruker Spark-motoren, for eksempel:
- Tekstilnotatbøker
- Spark-jobbdefinisjoner
- Lakehouse Maintenance UI og rørledningsbaserte vedlikeholdsarbeidsflyter
Ikke kjør VACUUM i SQL analytics-endepunktet eller warehouse-SQL-editoren. Disse erfaringene støtter ikke vedlikeholdskommandoer for Spark Delta.
Hvis du ønsker en portalbasert arbeidsflyt, se vedlikehold av Lakehouse-tabellen.
Bemerkning
I notatbøker, kjør SQL-eksempler i en Spark SQL-celle, Python-eksempler i en PySpark-celle, og Scala-eksempler i en Scala-celle.
Syntakseksempler
Bruk følgende eksempler når du kjører VACUUM i Fabric.
Støvsug et bord med standard retensjon
Støvsug et bord med en tilpasset retensjonsterskel
Forhåndsvisningsfiler med DRY RUN
Bruk DRY RUN den til å liste opp filene som vil bli slettet uten å faktisk slette dem.
VACUUM schema_name.table_name DRY RUN
Du kan også kombinere RETAIN og DRY RUN.
VACUUM schema_name.table_name RETAIN 168 HOURS DRY RUN
Vakuum i LITE-modus
VACUUM LITE er et raskere alternativ som kun bruker Delta-transaksjonsloggen for å identifisere urefererte filer, i stedet for å liste opp hver fil i tabellkatalogen. Denne tilnærmingen er betydelig raskere for store tabeller med mange filer.
VACUUM schema_name.table_name LITE
VACUUM schema_name.table_name LITE RETAIN 168 HOURS
VACUUM LITE identifiserer filer som skal fjernes ved å lese Delta-loggen i stedet for å utføre en full katalogliste. Det er raskere, men det krever nok logghistorikk for å avgjøre hvilke filer som ikke er referert. Hvis Delta-loggen er beskjært utover det LITE modusen trenger, opprettes et DELTA_CANNOT_VACUUM_LITE unntak — i så fall tilbake til standard VACUUM (full modus).
Bemerkning
VACUUM LITE støttes i Fabric Spark runtime 2.0 (Delta 4.1) eller nyere. Verifiser at Fabric-runtime-versjonen din støtter denne funksjonen.
Vakuum med en lagertabell
For veldig store tabeller hvor selv standard VACUUM full katalogliste er treg, kan du gi et forhåndsberegnet fillager. I stedet for å liste tabellkatalogen under kjøring, VACUUM leser filstier fra inventaret du leverer.
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://%')
Inventartabellen (eller spørringen) må ha følgende skjema:
| Kolonne | Type | Beskrivelse |
|---|---|---|
path |
streng | Fullt kvalifisert fil URI. |
length |
heltall | Filstørrelse i bytes. |
isDir |
boolsk | Om oppføringen er en katalog. |
modificationTime |
heltall | Fil sist endret tid i millisekunder siden epoken. |
Du kan fylle ut en inventartabell fra OneLake-filmetadata, lagerkonto-inventarrapporter eller en tilpasset Spark-jobb som lister tabellkatalogen på en tidsplan. Dette frigjør det kostbare fillistingssteget fra selve operasjonen VACUUM .
Standard oppbevaringsperiode
Hvis du ikke spesifiserer et oppbevaringsintervall, VACUUM bruker du standard oppbevaringsperiode på syv dager, som er 168 timer.
Denne standarden gir aktive lesere, forfattere og tidsreise-forespørsler et tryggere vindu før eldre filer fjernes.
Sikkerhetssjekk for korte oppbevaringsperioder
Delta Lake inkluderer en retensjonssikkerhetssjekk kontrollert av spark.databricks.delta.retentionDurationCheck.enabled.
Hvis du prøver å bruke en oppbevaringsperiode kortere enn syv dager, advarer denne sikkerhetssjekken deg med mindre du eksplisitt deaktiverer sjekken i Spark-konfigurasjonen din.
Vær ekstra forsiktig før du deaktiverer denne sikringen. Et kort lagringsvindu kan fjerne filer som samtidige arbeidsbelastninger eller gjenopprettingsscenarier fortsatt trenger.
For eksempel ber disse kommandoene om en dags oppbevaringsperiode:
Hvis miljøet ditt har sikkerhetssjekken aktivert, advarer kjøretiden deg om lagringsinnstillinger under syv dager.
Forstå virkningen av tidsreiser
Delta Lake tidsreiser lar deg søke i eldre tabellversjoner så lenge de nødvendige historiske filene fortsatt eksisterer.
VACUUM Fjerner filer som er eldre enn oppbevaringsvinduet, så det fjerner også datafilene som trengs for tidsreiser utover det vinduet. Etter at disse filene er støvsuget, kan du ikke lenger søke i de eldre versjonene.
Før du reduserer retention, bestem hvor mye historisk tilgang arbeidsbelastningene dine, revisjoner, feilsøkingssteg og gjenopprettingsprosesser krever. For mer informasjon, se Tidsreise.
Forstå virkningen på delesjonsvektorer
Slettingsvektorer kan markere rader som slettet uten umiddelbart å omskrive alle berørte datafiler. På grunn av denne oppførselen kan filer som ser gamle ut fortsatt være en del av den aktive tabellens tilstand.
VACUUM fjerner ikke filer som fortsatt refereres, inkludert filer som fortsatt er gyldige fordi deletion vector-metadata fortsatt peker på dem. Hvis du bruker slettevektorer og senere omorganiserer eller optimaliserer tabellen, kan mer utdaterte filer bli kvalifisert for VACUUM etter at disse endringene er fullført.
For å fysisk omskrive data påvirket av slettingsvektorer, se REORG Delta-tabeller.
Følg anbefalte fremgangsmåter
Bruk disse praksisene når du kjører VACUUM i Fabric:
- Kjør
VACUUMetterOPTIMIZEfor å fjerne forhåndskomprimeringsfiler som ikke lenger er nødvendige. - Ikke sett retensjon under syv dager med mindre du tydelig forstår effekten på tidsreiser, lesere, forfattere og restitusjon.
- Planlegg regelmessige
VACUUMoperasjoner i produksjonspipelines slik at utdaterte filer ikke hoper seg opp i OneLake. - Bestem deg for dine tidsreisebehov før du forkorter retensjonen.
- Bruk
DRY RUNførst når du vil verifisere hvilke filer som er i ferd med å bli fjernet.
For vedlikeholdsveiledning Fabric, se Table vedlikeholdsoversikt og Lakehouse table maintenance.
Forstå hva VACUUM ikke fjerner
VACUUM fjerner utdaterte datafiler, men sletter ikke Delta-loggfiler i mappen _delta_log .
Delta-loggopprydding følger sjekkpunkt- og loggretensjonsatferd, som er adskilt fra VACUUM.