VACUUM Delta-taulukot

Käytä Delta Lake VACUUM -komentoa poistaaksesi pysyvästi datatiedostoja, joita Delta-taulu ei enää viittaa ja jotka ovat vanhempia kuin säilytysrajasi.

Fabric auttaa siivoamaan vanhentuneet VACUUM tiedostot OneLakessa päivitysten, poistojen, yhdistämisten ja tiivistämistoimintojen jälkeen. Se vähentää tallennustilan kulutusta, poistaa vanhentuneita tiedostoja, joita Fabric enää tarvitse aktiiviseen taulukkotilaan, ja ottaa tilaa takaisin huoltotoimenpiteiden, kuten OPTIMIZE, jälkeen.

VACUUM noudattaa samoja Delta Laken ydinkonsepteja, jotka saatat tuntea avoimen lähdekoodin Delta Lakesta, mutta sitä ajaa Fabric Spark-kokemuksissa, kuten muistikirjoissa, Spark-työmääritteissä ja Lakehousen Maintenance käyttöliittymässä.

Mitä VACUUM poistaa

Delta-taulukko seuraa tiedostoja, jotka muodostavat nykyisen taulutilan Delta-lokissa. Kun operaatiot kuten UPDATE, DELETE, MERGE, kirjoitukset tai tiivistäminen korvaavat vanhemmat Parquet-tiedostot uudemmilla, vanhat tiedostot voivat jäädä viittaamattomiksi.

VACUUM poistaa nämä viitamattomat tiedostot vain, kun molemmat ehdot ovat voimassa:

  • Tiedostoja ei enää viitata Delta-lokissa.
  • Tiedostot ovat vanhempia kuin konfiguroitu säilytyskynnys.

Koska VACUUM se poistaa tiedostoja pysyvästi OneLakesta, käytä sitä varovasti, kun tarvitset vielä vanhempia taulukkoversioita.

Miksi VACUUM on tärkeää

Juokse VACUUM kun haluat:

  • Vähennä tallennuskustannuksia poistamalla vanhentuneita tiedostoja OneLakesta
  • Tilaa otetaan takaisin päivitysten, poistojen ja yhdistämistoimintojen jälkeen
  • Siivoa esitiivistetyt tiedostot korvaavien tiedostojen luomisen OPTIMIZE jälkeen
  • Pidä pitkäaikaiset tuotantotaulukot estämään tarpeettomia vanhentuneita tietotiedostoja

VACUUM Ei paranna kyselyjen suorituskykyä itsessään samalla tavalla kuin tiivistäminen tai tiedostoasettelun optimoinnit. Sen päätarkoitus on varastojen siivous.

Missä käyttää VACUMia

VACUUM on Spark-komento Fabric. Aja sitä paikoissa, joissa käytetään Spark-moottoria, kuten:

  • Kangasmuistikirjat
  • Spark-työn määritykset
  • Lakehouse Maintenance UI ja putkistopohjaiset huoltoprosessit

Älä aja VACUUM SQL-analytiikan päätepisteessä tai varaston SQL-editorissa. Nämä kokemukset eivät tue Spark Deltan huoltokomentoja.

Jos haluat portaalipohjaisen työnkulun, katso Lakehouse-taulun ylläpito.

Muistio

Muistikirjoissa suorita SQL-esimerkit Spark SQL -solussa, Python-esimerkit PySpark-solussa ja Scala-esimerkit Scala-solussa.

Syntaksiesimerkkejä

Käytä seuraavia esimerkkejä, kun ajat VACUUM Fabric:ssa.

Tyhjiö taulukko, jonka oletussäilytys on

VACUUM schema_name.table_name

Tyhjiö pöytä, jossa on mukautettu säilytyskynnys

VACUUM schema_name.table_name RETAIN 168 HOURS

Esikatselutiedostot DRY RUN -toiminnolla

Käytä DRY RUN tiedostojen listaamiseen, jotka poistettaisiin ilman, että niitä oikeasti poistetaan.

VACUUM schema_name.table_name DRY RUN

Voit myös yhdistää RETAIN ja DRY RUN.

VACUUM schema_name.table_name RETAIN 168 HOURS DRY RUN

Tyhjiö LITE-tilassa

VACUUM LITE on nopeampi vaihtoehto, joka käyttää vain Delta-transaktiolokia viitamattomien tiedostojen tunnistamiseen sen sijaan, että kaikki tiedostot listattaisiin taulukkohakemistossa. Tämä lähestymistapa on huomattavasti nopeampi suurille taulukoille, joissa on paljon tiedostoja.

VACUUM schema_name.table_name LITE

VACUUM schema_name.table_name LITE RETAIN 168 HOURS

VACUUM LITE tunnistaa poistettavat tiedostot lukemalla Delta-lokin täydellisen hakemistoluettelon sijaan. Se on nopeampi, mutta vaatii riittävästi lokihistoriaa, jotta voidaan selvittää, mitkä tiedostot eivät ole viitattuja. Jos Delta-lokia on karsittu yli tilan LITE tarpeen, DELTA_CANNOT_VACUUM_LITE poikkeus nostetaan — tällöin palataan standardiin VACUUM (täysi tila).

Muistio

VACUUM LITE on tuettu Fabric Spark Runtime 2.0:ssa (Delta 4.1) tai uudemmassa versiossa. Varmista, että Fabric-ajonaikainen versiosi tukee tätä ominaisuutta.

Tyhjiö inventaariotaulukolla

Erittäin suurissa taulukoissa, joissa jopa oletustäydellinen VACUUM hakemistoluettelo on hidas, voit tarjota esilasketun tiedostoinventaarion. Sen sijaan, että listattaisiin taulukkohakemisto ajonaikaisesti, VACUUM se lukee tiedostopolut toimittamastasi inventaariosta.

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://%')

Varastotaulukossa (tai kyselyssä) tulee olla seuraava skeema:

Column Tyyppi Description
path merkkijono Täysin pätevä URI.
length kokonaisluku Tiedostokoko tavuina.
isDir totuusarvo Onko merkintä hakemisto.
modificationTime kokonaisluku Tiedoston viimeinen muokattu aika millisekunneina epochin jälkeen.

Voit täyttää varastotaulun OneLake-tiedoston metatiedoista, tallennustilin varastoraporteista tai mukautetusta Spark-työstä, joka listaa taulukon hakemiston aikataulussa. Tämä irrottaa kalliin tiedostolistausvaiheen itse VACUUM toiminnasta.

Oletuspidätysaika

Jos et määrittele säilytysaikaa, VACUUM käytä oletusaikaa seitsemän päivää, eli 168 tunteja.

Tämä oletus antaa aktiivisille lukijoille, kirjoittajille ja aikamatkailukyselyille turvallisemman ikkunan ennen vanhempien tiedostojen poistamista.

Turvallisuustarkistus lyhyiden säilytysaikojen vuoksi

Delta Lake sisältää säilytysturvallisuustarkastuksen, jota valvoo spark.databricks.delta.retentionDurationCheck.enabled.

Jos yrität käyttää pidätysaikaa alle seitsemän päivää, tämä turvatarkastus varoittaa, ellei tarkistusta ole erikseen poistettu käytöstä Spark-konfiguraatiossasi.

Ole erityisen varovainen ennen kuin poistat tämän suojan käytöstä. Lyhyt säilytysikkuna voi poistaa tiedostoja, joita samanaikaiset työkuormat tai palautusskenaariot vielä tarvitsevat.

Esimerkiksi nämä komennot pyytävät yhden päivän säilytysaikaa:

VACUUM schema_name.table_name RETAIN 24 HOURS

Jos ympäristösi pitää turvallisuustarkistuksen päällä, ajonaika varoittaa säilytysasetuksista alle seitsemän päivän.

Ymmärrä vaikutus aikamatkailuun

Delta Lake -aikamatkailu antaa mahdollisuuden kysyä vanhempia taulukkoversioita, kunhan vaaditut historialliset tiedostot ovat vielä olemassa.

VACUUM poistaa tiedostot, jotka ovat vanhempia kuin säilytysikkuna, joten se poistaa myös datatiedostot, joita tarvitaan aikamatkailuun kyseisen ikkunan jälkeen. Kun tiedostot on imuroitu, vanhempia versioita ei enää voi kysellä.

Ennen kuin vähennät säilytystä, mieti, kuinka paljon historiallista pääsyä työkuormasi, auditointisi, virheenkorjausvaiheesi ja palautusprosessisi vaativat. Lisätietoja löytyy kohdasta Aikamatkailu.

Ymmärrä vaikutus deleetiovektoreihin

Poistovektorit voivat merkitä rivit poistetuiksi ilman, että jokainen asiaan vaikuttanut tiedosto kirjoitetaan välittömästi uudelleen. Tämän vuoksi vanhoilta näyttävät tiedostot saattavat silti olla osa aktiivista taulukkotilaa.

VACUUM ei poista tiedostoja, joita viitataan, mukaan lukien tiedostot, jotka pysyvät voimassa, koska poistovektorimetadata viittaa niihin. Jos käytät poistovektoreita ja myöhemmin järjestät tai optimoit taulukon, vanhentuneemmat tiedostot saattavat tulla kelpoisiksi VACUUM muutosten jälkeen.

Poistamisvektoreiden vaikutuksesta vaikuttavan datan fyysisesti uudelleenkirjoittamiseen katso REORG Delta -taulukot.

Parhaiden käytäntöjen noudattaminen

Käytä näitä käytäntöjä ajaessasi VACUUM Fabric:

  • Suorita VACUUM jälki OPTIMIZE poistaaksesi esipakkaustiedostot, joita ei enää tarvita.
  • Älä aseta pysyvyysaikaa alle seitsemän päivän, ellei sinulla ole selkeää selvästi selvää vaikutusta aikamatkailuun, lukijoihin, kirjoittajiin ja toipumiseen.
  • Aikatauluta säännölliset VACUUM toiminnot tuotantoputkissa, jotta vanhentuneet tiedostot eivät kerry OneLakeen.
  • Päätä aikamatkustusvaatimuksesi ennen kuin lyhennät pysyvyyksiä.
  • Käytä sitä DRY RUN ensin, kun haluat varmistaa, mitkä tiedostot ovat poistettavana.

Koko Fabric kattavaa huolto-ohjeistusta löytyy Table maintenance overview ja Lakehouse table maintenance.

Ymmärrä, mitä VACUUM ei poista

VACUUM poistaa vanhentuneet tietotiedostot, mutta ei poista Delta-lokitiedostoja kansiosta _delta_log .

Delta-lokin puhdistus noudattaa tarkistuspiste- ja lokin säilytyskäyttäytymistä, joka on erillinen .VACUUM