Reorganiser Delta-tabeller med REORG

Bruk kommandoen REORG når du trenger å skrive om deler av en Delta-tabell for et spesifikt vedlikeholdsmål. I Fabric omorganiserer REORG det fysiske oppsettet av en tabell ved å omskrive datafiler eller oppdatere tabellmetadata, avhengig av hvilket alternativ du velger.

REORG er forskjellig fra rutinemessig filkomprimering. Den retter seg mot scenarier som fysisk fjerning av rader som slettevektorer markert som slettet.

Hva REORG gjør

REORG TABLE Omskriver tabellens tilstand for en definert vedlikeholdsoperasjon.

  • APPLY (PURGE) omskrivinger påvirket datafiler slik at rader som ble mykt slettet gjennom slettingsvektorer fysisk fjernes fra de underliggende Parquet-filene.

Bruk REORG når du trenger et spesifikt omskrivingsresultat, ikke bare mindre eller færre filer.

Bruk PURGE for fysisk å fjerne mykslettede rader

Slettingsvektorer lar Delta Lake markere rader som slettet uten å omskrive de opprinnelige Parquet-filene med en gang. Den oppførselen holder sletteoperasjonene effektive, men de slettede raddataene finnes fortsatt i de fysiske filene til du skriver dem om.

Når du kjører REORG TABLE ... APPLY (PURGE), omskriver Fabric de berørte filene og fjerner de mykt slettede radene fra de aktive Parquet-filene. Etter PURGE at de er ferdige, er de slettede radene faktisk borte fra de omskrevne filene.

Bemerkning

PURGE er vanligvis ikke nødvendig som et eget vedlikeholdssteg. OPTIMIZE Fjerner automatisk filer der mer enn 5% poster refereres til av slettingsvektorer under komprimering. Reserver PURGE for situasjoner der du trenger eksplisitt kontroll over når mykslettede rader fysisk fjernes.

Dette alternativet er nyttig når:

  • Du har krav til overholdelse eller GDPR og må fjerne slettede data fysisk etter en bestemt tidsplan.
  • Du vil tvinge ut filer som faller under 5%-terskelen som OPTIMIZE brukes.

Gå gjennom syntaksen

Bruk følgende eksempler i en Fabric-notatbok.

Rens mykslettede rader fra en tabell

REORG TABLE table_name APPLY (PURGE)

Rens mykslettede rader kun for å matche data

REORG TABLE table_name WHERE predicate APPLY (PURGE)

Bruk en WHERE klausul når du vil målrette spesifikke partisjoner eller en mindre databit.

REORG TABLE sales.orders
WHERE order_date = DATE '2026-05-01'
APPLY (PURGE)

Velg REORG eller OPTIMIZE

REORG og OPTIMIZE løse ulike problemer.

  • OPTIMIZE Utfører bin-komprimering. Den samler små filer til større filer for å forbedre skanningseffektiviteten.
  • REORG ... APPLY (PURGE) Fjerner fysisk rader som slettevektorer markert som slettet.

Du kan bruke begge kommandoene samtidig. For eksempel kan du kjøre REORG ... APPLY (PURGE) for å fysisk fjerne slettede data, og deretter kjøre OPTIMIZE for å forbedre filoppsettet.

Forstå delesjonsvektorer

Slettingsvektorer er metadatastrukturer som markerer rader som slettet uten umiddelbart å omskrive Parquet-filene som inneholder disse radene. Leserne respekterer slettingsvektorene, slik at de slettede radene ikke vises i spørringsresultatene, men bytene forblir fortsatt i lagring til en omskriving skjer.

REORG ... APPLY (PURGE) er steget som fysisk fjerner disse radene fra de omskrevne Parquet-filene.

Kjør REORG i Fabric

Kjør REORG fra Spark-baserte opplevelser i Fabric, for eksempel:

  • Tekstilnotatbøker
  • Spark-jobbdefinisjoner

Ikke løp REORG fra SQL-analyse-endepunktet. REORG er en Spark SQL-vedlikeholdskommando for Delta-tabeller.

Følg anbefalte fremgangsmåter

  • Kjør PURGE kun når du har et spesifikt behov, som for eksempel krav til etterlevelse. OPTIMIZE Fjerner automatisk filer der mer enn 5% poster refereres til via slettingsvektorer, så rutinemessig vedlikehold krever vanligvis ikke et eget PURGE steg.
  • Kjør PURGE på forhånd VACUUM når du trenger at slettede data fysisk fjernes for å overholde kravene eller GDPR.
  • Bruk WHERE predikater for å målrette spesifikke partisjoner når du ikke trenger å skrive hele tabellen på nytt.
  • Bruk UPGRADE UNIFORM når du trenger Iceberg-lesere, men planlegg for den ekstra metadataen som UniForm oppbevarer.
  • Behandle REORG dem som OPTIMIZE komplementære vedlikeholdsoperasjoner, ikke som utskiftbare.