SQL Academy · leksjon

Komprimerings- og oppbevaringspolicyer

Komprimer gamle deler med TimescaleDBs kolonnebaserte komprimering, og slett utløpte deler automatisk.

Leksjon 3 av 414 trinn

Komprimerings- og oppbevaringspolicyer er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hvorfor komprimere?

Tidsseriedata lar seg komprimere svært godt. TimescaleDB komprimerer chunks i kolonneformat og oppnår ofte komprimeringsforhold på 10–20×.

Komprimere en hypertabell

Konfigurer hvilke kolonner som skal segmentere og ordne de komprimerte dataene:

ALTER TABLE metrics SET (
  timescaledb.compress,
  timescaledb.compress_segmentby = 'device_id',
  timescaledb.compress_orderby = 'ts DESC'
);

Komprimeringspolicy

Automatiser komprimering av gamle chunks:

SELECT add_compression_policy('metrics', INTERVAL '7 days');
-- Chunks older than 7 days get compressed automatically.

Spørringsytelse på komprimerte data

Lesing fra komprimerte chunks er fortsatt rask — TimescaleDB skyver filtre ned til kolonnelageret. Skriving og oppdatering av komprimerte chunks er begrenset (for det meste bare tilføying).

Oppbevaringspolicy

Slett data som er eldre enn N intervaller — raskt (slett en chunk) sammenlignet med tregt (DELETE):

SELECT add_retention_policy('metrics', INTERVAL '90 days');
-- Chunks older than 90 days are dropped automatically.

Manuelle chunk-operasjoner

Utforsk chunks:

SELECT * FROM chunks_detailed_size('metrics');
SELECT show_chunks('metrics', older_than => INTERVAL '90 days');
SELECT drop_chunks('metrics', older_than => INTERVAL '90 days');

Lagringsnivåer

Flytt gamle chunks til en treg disk ved å endre tablespace for hver chunk. Kombinert med komprimering kan De beholde data fra flere år til lav kostnad.

Komprimeringsforhold i praksis

Typiske forhold for sensordata:

  • Numeriske måleverdier: 90–95 % eller mer spart plass
  • Kategoriske data: 70–80 %
  • Streng/JSON: avhenger av innholdet

Dekomprimere for oppdateringer

De kan dekomprimere en chunk for å oppdatere gamle data og deretter komprimere den på nytt:

SELECT decompress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;
-- Update / fix
SELECT compress_chunk(c) FROM show_chunks('metrics', newer_than => INTERVAL '60 days') c;

Tilsvarende løsninger i vanlig Postgres

Uten TimescaleDB kan De lage en egen løsning med partisjoner:

DROP TABLE events_2022;            -- retention (fast)
-- No native columnar compression in vanilla Postgres for time-series.

Kombinere med kontinuerlige aggregater

Et vanlig mønster er å beholde rådata i 30 dager, timevise aggregater i ett år og daglige aggregater for alltid. Hvert nivå komprimeres eller beholdes etter behov.

Overvåking

Følg med på komprimert størrelse og komprimeringsforhold:

SELECT * FROM hypertable_compression_stats('metrics');

Oppsummering

Komprimering og oppbevaring gjør Postgres til et godt tidsserielager.

  • Komprimer gamle chunks 10–20×
  • Oppbevaringsregler sletter chunks umiddelbart
  • Lag separate nivåer for rådata, timevise og daglige data med ulik oppbevaringstid
  • Dekomprimer for etterfylling ved behov

Hurtigsjekk

De ønsker å beholde råmålinger i 7 dager og automatisk slette alt som er eldre. Hva er TimescaleDB-måten å gjøre dette på?

Gratis å komme i gang

Lær deg SQL med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
46
Leksjoner
183

Ofte stilte spørsmål

Er leksjonen «Komprimerings- og oppbevaringspolicyer» gratis?

Ja – hele teksten i «Komprimerings- og oppbevaringspolicyer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Komprimerings- og oppbevaringspolicyer»?

Komprimer gamle deler med TimescaleDBs kolonnebaserte komprimering, og slett utløpte deler automatisk. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med SQL Academy?

Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Komprimerings- og oppbevaringspolicyer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?

Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. TimescaleDB-hypertabeller
  2. Kontinuerlige aggregater
  3. Komprimerings- og oppbevaringspolicyer
  4. Indeksvalg for tidsserier
← Tilbake til SQL Academy