VACUUM
A következőkre vonatkozik: Databricks SQL
Databricks Runtime
Távolítsa el a nem használt fájlokat egy táblakönyvtárból.
Feljegyzés
Ez a parancs másként működik attól függően, hogy Delta- vagy Apache Spark-táblán dolgozik.
Delta-tábla vákuuma
A Delta-táblához társított rekurzívan vákuumkönyvtárak. További részletekért és korlátozásokért lásd: A fel nem használt adatfájlok eltávolítása a vákuum parancs segítségével.
VACUUM
eltávolítja az összes olyan fájlt a táblakönyvtárból, amelyet nem a Delta kezel, valamint azokat az adatfájlokat, amelyek már nem szerepelnek a tábla tranzakciónaplójának legújabb állapotában, és régebbiek a megőrzési küszöbértéknél.
VACUUM
az aláhúzással (_
) kezdődő összes könyvtárat kihagyja, amely tartalmazza a _delta_log
. A tábla aláhúzással kezdődő oszlopon való particionálása kivétel a szabály alól; VACUUM
megvizsgálja a cél deltatáblában található összes érvényes partíciót. A Delta-tábla adatfájljai a Delta tranzakciónaplójából logikailag eltávolított időnek és a megőrzési időnek megfelelően törlődnek, nem pedig a tárolási rendszeren lévő módosítási időbélyegek alapján. Az alapértelmezett küszöbérték 7 nap.
A Delta-táblákon az Azure Databricks nem aktivál automatikusan VACUUM
műveleteket.
Ha egy Delta-táblán futtat VACUUM
, elveszíti az időutazás a megadott adatmegőrzési időszaknál régebbi verzióra való visszalépést.
Figyelmeztetés
Javasoljuk, hogy legalább 7 napos megőrzési időközt állítson be, mert a régi pillanatképeket és a nem véglegesített fájlokat továbbra is használhatják az egyidejű olvasók vagy írók a táblához. Ha VACUUM
törli az aktív fájlokat, az egyidejű olvasók meghibásodhatnak, vagy rosszabb esetben a táblák megsérülhetnek, ha VACUUM
törli a még nem véglegesített fájlokat. Olyan időközt kell választania, amely hosszabb, mint a leghosszabb egyidejű tranzakció, és azt a leghosszabb időtartamot, amelyet bármely stream el tud tartani a tábla legutóbbi frissítésétől.
A Delta Lake biztonsági ellenőrzéssel megakadályozza, hogy veszélyes VACUUM
parancsot futtasson. A Databricks Runtime-ban biztos lehet abban, hogy ezen a táblán nem hajtanak végre olyan műveleteket, amelyek hosszabb időt vesznek igénybe, mint amennyit meg szeretne adni. Ezt a biztonsági ellenőrzést kikapcsolhatja úgy, hogy a Spark konfigurációs tulajdonságát spark.databricks.delta.retentionDurationCheck.enabled
false
.
VACUUM table_name { { FULL | LITE } | RETAIN num HOURS | DRY RUN } [...]
A Databricks Runtime 16.0 és korábbi verzióiban RETAIN num HOURS
-nak kell megelőznie a DRY RUN
-et a szintaxisban.
Fontos
A VACUUM
parancs adatmegőrzési időtartamát a delta.deletedFileRetentionDuration
táblatulajdonság határozza meg, amely alapértelmezés szerint 7 nap.
Ez azt jelenti, hogy VACUUM
eltávolítja azokat az adatfájlokat, amelyekre már nem hivatkozik a Delta-tábla verziója az elmúlt 7 napban.
Ha hosszabb ideig szeretné megőrizni az adatokat, például hosszabb ideig szeretné támogatni az időutazást, állítsa ezt a táblatulajdonságot magasabb értékre.
Az alábbi példa a küszöbérték 30 napra való beállítását mutatja be:
ALTER TABLE table_name SET TBLPROPERTIES ('delta.deletedFileRetentionDuration' = '30 days');
Paraméterek
-
Egy meglévő Delta-táblát azonosít. A név nem tartalmazhat időbeli specifikációt vagy beállításspecifikációt.
RETAIN num HOURS
A megőrzési küszöbérték.
DRY RUN
Legfeljebb 1000 törölendő fájlból álló listát ad vissza.
FULL
vagyLITE
A következőkre vonatkozik:
Databricks SQL
Databricks Runtime 16.1 és későbbi verziók
FULL
Teljes módban futtatja a vákuumműveletet. Ez törli az adatmegőrzési időtartamon kívüli adatfájlokat, és a táblakönyvtárban lévő összes olyan fájlt, amelyre a tábla nem hivatkozik.LITE
Lite módban futtatja a vákuumműveletet. Ahelyett, hogy megkeresné a táblakönyvtár összes fájlját,VACUUM
a Delta tranzakciónaplóval azonosítja és eltávolítja azokat a fájlokat, amelyekre már nem hivatkoznak a táblaverziók a megőrzési időtartamon belül. HaVACUUM LITE
nem lehet befejezni, mert a Delta-naplót trimmelték, DELTA_CANNOT_VACUUM_LITE kivétel keletkezik.Az alapértelmezett érték a
FULL
.
Porszívózzon egy nem Delta-táblát
Rekurzív módon vákuumozza a nem Delta táblához társított könyvtárakat, és eltávolítja a megőrzési küszöbértéknél régebbi, nem véglegesített fájlokat. Az alapértelmezett küszöbérték 7 nap.
Nem Delta-táblákon az Azure Databricks automatikusan aktiválja VACUUM
műveleteket az adatok írása során.
Syntax
VACUUM table_name [RETAIN num HOURS]
Paraméterek
-
Egy meglévő táblát azonosít név vagy elérési út alapján.
RETAIN num HOURS
A megőrzési küszöbérték.