TimescaleDB-Hypertables
Wandeln Sie eine Postgres-Tabelle in eine TimescaleDB-Hypertable um, mit automatischer zeitbasierter Partitionierung nach Chunk-Intervall.
TimescaleDB-Hypertables ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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.
Was ist TimescaleDB?
Eine für Zeitreihendaten entwickelte PostgreSQL-Erweiterung. Sie bietet automatische Zeitpartitionierung, Komprimierung, Aufbewahrungsrichtlinien und kontinuierliche Aggregate. Sie kann eigenständig oder zusammen mit regulärem Postgres verwendet werden.
Hypertable
Eine logisch einzelne Tabelle, die physisch anhand der Zeit in „Chunks“ aufgeteilt wird:
CREATE EXTENSION IF NOT EXISTS timescaledb;
CREATE TABLE metrics (
ts TIMESTAMPTZ NOT NULL,
device_id BIGINT NOT NULL,
value DOUBLE PRECISION
);
SELECT create_hypertable('metrics', 'ts');
-- metrics is now a hypertable, chunks created automatically.Zeitintervall für Chunks
Der Standard-Chunk umfasst 7 Tage. Stimmen Sie ihn auf die Geschwindigkeit Ihrer Daten ab (kleinere Chunks für Daten mit hohem Aufkommen):
SELECT create_hypertable('metrics', 'ts', chunk_time_interval => INTERVAL '1 day');
-- One chunk per day, smaller and faster to drop.Daten einfügen
Verwenden Sie einfach ein normales INSERT — TimescaleDB leitet die Zeilen an den richtigen Chunk weiter:
INSERT INTO metrics (ts, device_id, value)
VALUES (NOW(), 1, 42.5);Hypertables abfragen
Sie sieht wie eine normale Tabelle aus. Der Planer entfernt Chunks für zeitlich begrenzte Abfragen aus dem Plan:
SELECT * FROM metrics
WHERE ts >= NOW() - INTERVAL '7 days'
ORDER BY ts DESC LIMIT 100;
-- Only the relevant chunks are read.time_bucket: Intelligenteres date_trunc
Die Gruppierungshilfe von TimescaleDB:
SELECT time_bucket('1 hour', ts) AS hour,
AVG(value) AS avg_value
FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '24 hours'
GROUP BY hour
ORDER BY hour;Partitionierung nach mehreren Spalten
Bei Workloads mit mehreren Mandanten partitionieren Sie zusätzlich nach device_id:
SELECT create_hypertable('metrics', 'ts', 'device_id', 4);
-- Hash-partitions device_id into 4 space partitions per time chunk.Abfragen mit beiden Filtern
Die beste Leistung erzielen Sie, wenn nach beiden Partitionsdimensionen gefiltert wird:
SELECT * FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '7 days';
-- Prunes by both time and space.Indizes auf Hypertables
Indizes werden auf jeden Chunk übertragen:
CREATE INDEX metrics_device_idx ON metrics (device_id, ts DESC);
-- Composite index ideal for 'recent data for one device' queries.Hypertables aktualisieren
UPDATEs und DELETEs funktionieren, sollten bei Zeitreihen aber selten vorkommen. Alte Daten werden normalerweise nur angehängt und sind unveränderlich.
Von regulären Tabellen migrieren
Bestehende Tabellen können in Hypertables umgewandelt werden:
SELECT create_hypertable('metrics', 'ts', migrate_data => true);Zusammenfassung
Hypertables = automatische Zeitpartitionierung für Postgres.
- Eine logische Tabelle, viele physische Chunks
- create_hypertable + chunk_time_interval
- time_bucket für gruppierte Aggregationen
- Indizes werden auf alle Chunks übertragen
Kurzer Check
Sie nehmen IoT-Messwerte mit 100.000 Zeilen pro Sekunde auf. Warum sollten Sie die Tabelle in eine TimescaleDB-Hypertable umwandeln?
Häufig gestellte Fragen
Ist die Lektion „TimescaleDB-Hypertables“ kostenlos?
Ja — der vollständige Text von „TimescaleDB-Hypertables“ 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 „TimescaleDB-Hypertables“?
Wandeln Sie eine Postgres-Tabelle in eine TimescaleDB-Hypertable um, mit automatischer zeitbasierter Partitionierung nach Chunk-Intervall. 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 1 von 4.
Wie lange dauert die Lektion „TimescaleDB-Hypertables“?
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