Megosztás a következőn keresztül:


VACUUM

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet 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.enabledfalse.

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

  • table_name

    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 vagy LITE

    A következőkre vonatkozik:igennel van megjelölve Databricks SQL igennel van megjelölve 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. Ha VACUUM 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

  • table_name

    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.