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.
Van toepassing op: Databricks SQL
Databricks Runtime
Verwijder ongebruikte bestanden uit een tabelmap.
Notitie
Deze opdracht werkt anders, afhankelijk van of u werkt aan een Delta-, Apache Spark- of Apache Iceberg-tabel.
Een Delta-tabel leegmaken
Recursief opruimen van mappen die zijn gekoppeld aan de Delta-tabel. Zie Ongebruikte gegevensbestanden verwijderen met vacuümvoor meer informatie en beperkingen.
VACUUM
verwijdert alle bestanden uit de tabelmap die niet worden beheerd door Delta, evenals gegevensbestanden die niet langer de meest recente status van het transactielogboek voor de tabel hebben en ouder zijn dan een bewaardrempel.
VACUUM
slaat alle mappen over die beginnen met een onderstrepingsteken (_
), inclusief de _delta_log
. Het partitioneren van uw tabel op een kolom die begint met een onderstrepingsteken is een uitzondering op deze regel; VACUUM
scant alle geldige partities die zijn opgenomen in de doel-Delta-tabel. Delta-tabelgegevensbestanden worden verwijderd op basis van de tijd dat ze logisch zijn verwijderd uit het transactielogboek van Delta plus retentieuren, niet de wijzigingstijdstempels op het opslagsysteem. De standaarddrempelwaarde is 7 dagen.
Als u VACUUM
op een Delta-tabel uitvoert, verliest u de mogelijkheid om terug te in de tijd te reizen naar een versie die ouder is dan de opgegeven gegevensretentieperiode.
Als voorspellende optimalisatie is ingeschakeld, activeert Azure Databricks de VACUUM
bewerking automatisch als onderdeel van het optimalisatieproces. U hoeft in de meeste gevallen niet handmatig uit te voeren VACUUM
.
Waarschuwing
Het is raadzaam om een bewaarinterval in te stellen op ten minste 7 dagen, omdat oude momentopnamen en niet-verzonden bestanden nog steeds in gebruik kunnen zijn door gelijktijdige lezers of schrijvers aan de tabel. Als VACUUM
actieve bestanden opschoont, kunnen gelijktijdige lezers mislukken of, erger, tabellen beschadigd raken wanneer VACUUM
bestanden verwijdert die nog niet zijn doorgevoerd. U moet een interval kiezen dat langer is dan de langstlopende gelijktijdige transactie en de langste periode die elke stream achter kan blijven bij de meest recente update van de tabel.
Delta Lake heeft een veiligheidscontrole om te voorkomen dat u een gevaarlijke VACUUM
opdracht uitvoert. In Databricks Runtime weet u zeker dat er geen bewerkingen worden uitgevoerd in deze tabel die langer duren dan het retentieinterval dat u wilt opgeven. U kunt deze veiligheidscontrole uitschakelen door de Spark-configuratie-eigenschap in te stellen spark.databricks.delta.retentionDurationCheck.enabled
op false
.
Een Apache Iceberg-tabel opruimen
Recursief verwijdert niet-gereferentieerde bestanden uit de directories die verbonden zijn met de Apache Iceberg-tabel.
- Alleen
VACUUM
zonder componentRETAIN
wordt ondersteund voor Iceberg-tabellen. - De bewaarperiode is vastgesteld op 7 dagen.
Als voorspellende optimalisatie is ingeschakeld, activeert Azure Databricks de VACUUM
bewerking automatisch als onderdeel van het optimalisatieproces. U hoeft in de meeste gevallen niet handmatig uit te voeren VACUUM
.
Syntaxis
VACUUM table_name { { FULL | LITE } | RETAIN num HOURS | DRY RUN } [...]
In Databricks Runtime 16.0 en eerder moet RETAIN num HOURS
voorafgaan aan DRY RUN
in de syntaxis.
Parameterwaarden
-
Identificeert een bestaande Delta-tabel. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten.
RETAIN num HOURS
De drempelwaarde voor retentie. Als de opgegeven bewaarperiode hoger is
delta.deletedFileRetentionDuration
, wordt de bewaarperiode van de tabel gebruikt.DRY RUN
Retourneert een lijst met maximaal 1000 bestanden die moeten worden verwijderd.
FULL
ofLITE
Van toepassing op:
Databricks SQL
Databricks Runtime 16.1 en hoger
FULL
voert de vacuümbewerking uit in de volledige -modus. Hiermee verwijdert u gegevensbestanden buiten de bewaarduur en alle bestanden in de tabelmap waarnaar niet wordt verwezen door de tabel.LITE
voert de vacuümbewerking uit in Lite modus. In plaats van alle bestanden in de tabelmap te vinden, gebruiktVACUUM
het Delta-transactielogboek om bestanden te identificeren en te verwijderen waarnaar niet meer wordt verwezen door tabelversies binnen de retentieduur. AlsVACUUM LITE
niet kan worden voltooid omdat het Delta-logboek is opgeschoond, wordt er een DELTA_CANNOT_VACUUM_LITE uitzondering gegenereerd.De standaardwaarde is
FULL
.
Belangrijk
Het bewaarvenster voor de opdracht VACUUM
wordt bepaald door de eigenschap delta.deletedFileRetentionDuration
tabel, die standaard 7 dagen is.
Dit betekent dat VACUUM
gegevensbestanden verwijdert waarnaar in de afgelopen 7 dagen niet meer wordt verwezen door een Delta-tabelversie.
Als u gegevens gedurende een langere periode wilt bewaren, bijvoorbeeld om tijdreizen voor langere duur te ondersteunen, stelt u deze tabeleigenschap in op een hogere waarde.
In het volgende voorbeeld ziet u hoe u deze drempelwaarde instelt op 30 dagen:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Stofzuig de andere tafels
Recursief vacuümt mappen die zijn gekoppeld aan niet-Delta- en niet-Iceberg-tabellen, waarbij niet-doorgevoerde bestanden ouder dan een retentiedrempel worden verwijderd. De standaarddrempelwaarde is 7 dagen.
In deze tabellen activeert Azure Databricks automatisch bewerkingen VACUUM
wanneer gegevens worden geschreven.
Syntaxis
VACUUM table_name [RETAIN num HOURS]
Parameterwaarden
-
Identificeert een bestaande tabel op naam of pad.
RETAIN num HOURS
De drempelwaarde voor retentie.