0Pricing
SQL Academy · Lektion

Komprimierungs- und Aufbewahrungsrichtlinien

Komprimieren Sie alte Chunks mit der spaltenbasierten Komprimierung von TimescaleDB und löschen Sie abgelaufene Chunks automatisch.

Komprimierungs- und Aufbewahrungsrichtlinien ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum komprimieren?

Zeitreihendaten lassen sich stark komprimieren. TimescaleDB komprimiert Chunks spaltenweise und erreicht dabei häufig Komprimierungsverhältnisse von 10–20×.

Eine Hypertable komprimieren

Legen Sie fest, welche Spalten zur Segmentierung und Sortierung der komprimierten Daten verwendet werden:

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

Komprimierungsrichtlinie

Automatisieren Sie die Komprimierung alter Chunks:

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

Abfrageleistung bei komprimierten Daten

Lesezugriffe auf komprimierten Chunks bleiben schnell — TimescaleDB reicht Filter an den Spaltenspeicher weiter. Schreib- und Aktualisierungsvorgänge auf komprimierten Chunks sind eingeschränkt und meist nur zum Anhängen geeignet.

Aufbewahrungsrichtlinie

Verwerfen Sie Daten, die älter als N Intervalle sind — schnell durch das Entfernen des Chunks statt langsam durch DELETE:

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

Manuelle Chunk-Operationen

Untersuchen Sie 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');

Speicher-Tiering

Verschieben Sie alte Chunks auf langsamen Speicher, indem Sie den Tablespace pro Chunk ändern. In Verbindung mit Komprimierung können Sie so Daten über mehrere Jahre zu geringen Kosten aufbewahren.

Komprimierungsverhältnisse in der Praxis

Typische Verhältnisse bei Sensordaten:

  • Numerische Messwerte: mindestens 90–95 % Speicherersparnis
  • Kategorische Daten: 70–80 %
  • Strings/JSON: abhängig vom Inhalt

Für Aktualisierungen dekomprimieren

Sie können einen Chunk dekomprimieren, um alte Daten zu aktualisieren, und ihn anschließend erneut komprimieren:

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;

Entsprechungen in reinem Postgres

Ohne TimescaleDB können Sie mit Partitionen eine eigene Lösung erstellen:

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

Mit kontinuierlichen Aggregaten kombinieren

Ein gängiges Muster: Rohdaten 30 Tage aufbewahren, stündliche Aggregate ein Jahr lang und tägliche Aggregate dauerhaft. Jede Stufe wird passend komprimiert oder aufbewahrt.

Überwachung

Überwachen Sie die komprimierte Größe und das Komprimierungsverhältnis:

SELECT * FROM hypertable_compression_stats('metrics');

Zusammenfassung

Komprimierung und Aufbewahrung machen Postgres zu einem leistungsfähigen Zeitreihenspeicher.

  • Alte Chunks 10–20× komprimieren
  • Aufbewahrungsrichtlinien entfernen Chunks sofort
  • Rohdaten, stündliche und tägliche Aggregate mit unterschiedlichen Aufbewahrungszeiten staffeln
  • Bei Bedarf zur nachträglichen Befüllung dekomprimieren

Kurzer Check

Sie möchten Rohmesswerte 7 Tage lang aufbewahren und alles Ältere automatisch entfernen. Wie wird das mit TimescaleDB umgesetzt?

Häufig gestellte Fragen

Ist die Lektion „Komprimierungs- und Aufbewahrungsrichtlinien“ kostenlos?

Ja — der vollständige Text von „Komprimierungs- und Aufbewahrungsrichtlinien“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Komprimierungs- und Aufbewahrungsrichtlinien“?

Komprimieren Sie alte Chunks mit der spaltenbasierten Komprimierung von TimescaleDB und löschen Sie abgelaufene Chunks automatisch. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Komprimierungs- und Aufbewahrungsrichtlinien“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. TimescaleDB-Hypertables
  2. Kontinuierliche Aggregationen
  3. Komprimierungs- und Aufbewahrungsrichtlinien
  4. Indexauswahl für Zeitreihen
← Zurück zu SQL Academy