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
- TimescaleDB-Hypertables
- Kontinuierliche Aggregationen
- Komprimierungs- und Aufbewahrungsrichtlinien
- Indexauswahl für Zeitreihen