Vise Tabellhistorikk (Grunnleggende om Tidsreise)
Sveip for å vise menyen
Time Travel er en Delta Lake-funksjon som lar deg spørre tidligere versjoner av en tabell. Ved å bruke transaksjonsloggen kan Databricks rekonstruere tilstanden til dataene dine fra et hvilket som helst tidspunkt i den registrerte historikken.
En av de mest kraftfulle "sikkerhetsnettene" i Databricks er muligheten til å se nøyaktig hvem som endret en tabell, når endringen skjedde, og hvordan dataene så ut før endringen.
For vår diamonds-tabell på workspace.workshop.diamonds blir hver oppdatering eller sletting automatisk sporet.
1. DESCRIBE HISTORY-kommandoen
For å se hele tidslinjen for dataene dine, bruk DESCRIBE HISTORY-kommandoen — den gir en detaljert oversikt over hver versjon av tabellen.
DESCRIBE HISTORY workspace.workshop.diamonds
Når du kjører denne, vil du se en tabell med følgende nøkkelkolonner:
- version: et heltall som starter fra 0 (første gang tabellen ble opprettet);
- timestamp: nøyaktig dato og klokkeslett for endringen;
- userName: personen som utførte handlingen;
- operation: hva som skjedde (f.eks.
WRITE,UPDATE,DELETEellerMERGE); - operationParameters: tekniske detaljer om endringen.
2. Spørring på en spesifikk versjon
Hvis en nylig oppdatering ødela "Price"-kolonnen, kan du hente en eldre versjon for å se de opprinnelige verdiene ved å bruke syntaksen VERSION AS OF.
-- Look at the diamonds table exactly as it was in Version 0
SELECT * FROM workspace.workshop.diamonds VERSION AS OF 0
3. Spørring etter tidsstempel
Hvis du ikke kjenner versjonsnummeret, men vet at dataene var riktige på et bestemt tidspunkt, kan du "reise tilbake" ved å bruke TIMESTAMP AS OF.
-- Look at the data as it existed at a specific time
SELECT * FROM workspace.workshop.diamonds TIMESTAMP AS OF '2026-02-11 09:00:00'
4. Hvorfor dette er viktig
I tradisjonelle databaser, hvis du ved et uhell kjører en DELETE-kommando uten en WHERE-setning, må du kontakte en databaseadministrator for å gjenopprette en sikkerhetskopi — en prosess som kan ta flere timer.
Med Delta Lake Time Travel kan du rette opp feilen selv på sekunder ved å hente data fra en tidligere versjon og overskrive den nåværende ødelagte tabellen med de friske historiske dataene.
5. Håndtering av historikk
Som standard beholder Delta Lake 30 dager med historikk. Selv om dette er svært nyttig, krever lagring av historikk at eldre datafiler beholdes, men de underliggende datafilene for slettede/overskrevne versjoner beholdes kun i 7 dager (delta.deletedFileRetentionDuration) før VACUUM kan rydde dem opp.
I profesjonelle miljøer bruker dataingeniører kommandoen VACUUM for å rydde opp i svært gamle filer og redusere lagringskostnader. For dette kurset er historikken din trygg og klar for utforskning.
VACUUM er en oppryddingskommando som permanent sletter gamle datafiler som Delta Lake ikke lenger trenger — de som blir liggende igjen etter oppdateringer, slettinger eller overskrivinger.
VACUUM workspace.workshop.diamonds
Som standard beholder Delta 30 dager med filhistorikk for Time Travel. VACUUM fjerner filer eldre enn denne grensen for å spare lagringsplass.
Du kan også angi et tilpasset oppbevaringsvindu:
VACUUM workspace.workshop.diamonds RETAIN 7 HOURS
1. Hvilken SQL-kommando lar deg se listen over alle tidligere versjoner og operasjoner utført på en tabell?
2. Du oppdaterte ved et uhell diamonds-tabellen og vil se dataene fra for 10 minutter siden. Hvilken syntaks bør du bruke?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår