0Pricing
SQL Academy · Lektion

Kontinuierliche Aggregationen

Aggregieren Sie Zeitreihendaten vorab mit materialisierten Views vom Typ CONTINUOUS AGGREGATE und inkrementeller Aktualisierung.

Kontinuierliche Aggregationen ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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 ein kontinuierliches Aggregat?

Ein vorberechnetes, inkrementell aktualisiertes Aggregat über einer Hypertable — ähnlich wie eine materialisierte Sicht, die bei neu eintreffenden Daten intelligent aktualisiert wird.

Ein kontinuierliches Aggregat erstellen

Stündliche Geräte-Durchschnittswerte:

CREATE MATERIALIZED VIEW metrics_hourly
WITH (timescaledb.continuous) AS
SELECT device_id,
       time_bucket('1 hour', ts) AS hour,
       AVG(value) AS avg_value,
       COUNT(*)   AS samples
FROM metrics
GROUP BY device_id, hour;

Aktualisierungsrichtlinie

TimescaleDB aktualisiert automatisch:

SELECT add_continuous_aggregate_policy('metrics_hourly',
  start_offset => INTERVAL '1 day',
  end_offset   => INTERVAL '1 hour',
  schedule_interval => INTERVAL '15 minutes');
-- Every 15 minutes, refresh the window from 1 day ago to 1 hour ago.

Abfragen

Verwenden Sie einfach SELECT — TimescaleDB verbindet materialisierte Daten mit Rohdaten für den aktuellsten noch nicht materialisierten Zeitraum:

SELECT * FROM metrics_hourly
WHERE device_id = 42
  AND hour >= NOW() - INTERVAL '7 days'
ORDER BY hour;

Echtzeit-Aggregation

Standardmäßig zeigen kontinuierliche Aggregate vorberechnete Daten PLUS Rohdaten für den noch nicht materialisierten Teil. Sie sehen immer die neuesten Werte, allerdings wird dieser Teil bei jeder Abfrage dynamisch berechnet.

Modus nur mit materialisierten Daten

Für vollständig vorberechnete Dashboards ohne dynamische Berechnung deaktivieren Sie die Echtzeit-Aggregation:

ALTER MATERIALIZED VIEW metrics_hourly
  SET (timescaledb.materialized_only = true);

Mehrstufige Aggregation

Erstellen Sie stündliche → tägliche → monatliche Aggregate:

-- daily aggregate from the hourly cagg
CREATE MATERIALIZED VIEW metrics_daily
WITH (timescaledb.continuous) AS
SELECT device_id, time_bucket('1 day', hour) AS day,
       AVG(avg_value) AS avg_value
FROM metrics_hourly
GROUP BY device_id, day;

Die Komprimierung der Hypertable blockiert die Aggregation nicht

Sie können die zugrunde liegende Hypertable komprimieren; kontinuierliche Aggregate funktionieren weiterhin.

Wann kontinuierliche Aggregate materialisierte Sichten übertreffen

  • Zeitreihendaten: integrierte Zeitsemantik
  • Inkrementelle Aktualisierung — die gesamte Historie muss nie erneut eingelesen werden
  • Integration des Echtzeitanteils
  • Mehrstufige Rollups

Kompatibilität

Kontinuierliche Aggregate funktionieren mit TimescaleDB-Hypertables. Für nicht auf TS basierendes Postgres müssen Sie Ihre eigene materialisierte Sicht mit eigener Aktualisierungslogik erstellen.

Historische Daten nachladen

Aktualisieren Sie historische Daten manuell, wenn Sie die Definition des Aggregats ändern:

CALL refresh_continuous_aggregate('metrics_hourly',
  NULL, NOW());
-- Recompute from the beginning of time.

Zusammenfassung

Kontinuierliche Aggregate sind materialisierte Sichten für Zeitreihen.

  • Definiert mit WITH (timescaledb.continuous)
  • Richtlinie zur automatischen Aktualisierung
  • Kombination aus Echtzeit- und materialisierten Daten
  • Tägliche oder wöchentliche Aggregate auf stündlichen Aggregaten aufbauen

Kurzer Check

Warum wird ein kontinuierliches TimescaleDB-Aggregat effizienter aktualisiert als mit REFRESH MATERIALIZED VIEW?

Häufig gestellte Fragen

Ist die Lektion „Kontinuierliche Aggregationen“ kostenlos?

Ja — der vollständige Text von „Kontinuierliche Aggregationen“ 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 „Kontinuierliche Aggregationen“?

Aggregieren Sie Zeitreihendaten vorab mit materialisierten Views vom Typ CONTINUOUS AGGREGATE und inkrementeller Aktualisierung. 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 2 von 4.

Wie lange dauert die Lektion „Kontinuierliche Aggregationen“?

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