0Pricing
SQL Academy · Lezione

Criteri di compressione e conservazione

Comprima i chunk meno recenti con la compressione colonnare di TimescaleDB ed elimini automaticamente quelli scaduti.

Criteri di compressione e conservazione è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.

Perché comprimere?

I dati di serie temporali sono altamente comprimibili. TimescaleDB comprime i chunk in formato colonnare, spesso ottenendo rapporti di compressione di 10–20×.

Compressione di una hypertable

Configuri quali colonne utilizzare per segmentare e ordinare i dati compressi:

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

Politica di compressione

Automatizzi la compressione dei chunk meno recenti:

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

Prestazioni delle query sui dati compressi

Le letture sui chunk compressi sono comunque veloci: TimescaleDB spinge i filtri verso il column store. Le scritture e gli aggiornamenti sui chunk compressi sono limitati, per lo più in modalità append-only.

Politica di conservazione

Elimini i dati più vecchi di N intervalli: è rapido eliminare il chunk, mentre DELETE è lento:

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

Operazioni manuali sui chunk

Esplori i chunk:

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

Suddivisione in livelli di archiviazione

Sposti i chunk meno recenti su un disco più lento modificando il tablespace per ogni chunk. In combinazione con la compressione, può conservare anni di dati a basso costo.

Rapporti di compressione nella pratica

Rapporti tipici sui dati dei sensori:

  • Metriche numeriche: risparmio di spazio pari o superiore al 90–95%
  • Dati categorici: 70–80%
  • Stringhe/JSON: dipende dal contenuto

Decompressione per gli aggiornamenti

Può decomprimere un chunk per aggiornare i dati meno recenti, quindi ricomprimerlo:

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;

Equivalenti in Postgres standard

Senza TimescaleDB può implementare autonomamente una soluzione basata sulle partizioni:

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

Combinazione con le continuous aggregate

Un modello comune consiste nel conservare i dati grezzi per 30 giorni, le aggregazioni orarie per 1 anno e quelle giornaliere per sempre. Ogni livello viene compresso o conservato in modo appropriato.

Monitoraggio

Monitori le dimensioni e il rapporto di compressione:

SELECT * FROM hypertable_compression_stats('metrics');

Riepilogo

La combinazione di compressione e conservazione trasforma Postgres in un archivio competente per le serie temporali.

  • Comprima i chunk meno recenti di 10–20×
  • La conservazione elimina i chunk istantaneamente
  • Organizzi i dati grezzi, orari e giornalieri in livelli con periodi di conservazione diversi
  • Decomprima per eseguire un riempimento retroattivo, se necessario

Verifica rapida

Desidera conservare 7 giorni di metriche grezze ed eliminare automaticamente tutto ciò che è più vecchio. Qual è il modo previsto da TimescaleDB?

Domande Frequenti

La lezione «Criteri di compressione e conservazione» è gratuita?

Sì — il testo completo di «Criteri di compressione e conservazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.

Cosa imparerò in «Criteri di compressione e conservazione»?

Comprima i chunk meno recenti con la compressione colonnare di TimescaleDB ed elimini automaticamente quelli scaduti. Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare SQL Academy?

Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Criteri di compressione e conservazione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione SQL Academy?

Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Hypertable di TimescaleDB
  2. Aggregati continui
  3. Criteri di compressione e conservazione
  4. Scelta degli indici per le serie temporali
← Torna a SQL Academy