Tables par agrégation

Une table est créée par agrégation d’un stream :

CREATE TABLE avg_temps_per_city AS
SELECT
    ville,
    AVG(temperature) AS avg_temp
FROM iot_stream_data
WINDOW TUMBLING (SIZE 10 MINUTES)
GROUP BY ville
EMIT CHANGES;

Calcule la température moyenne par ville sur fenêtres de 10 minutes.

EMIT CHANGES : émet les mises à jour au fur et à mesure.

Exemple de résultat

Interrogation de la table :

SELECT
    ville,
    TIMESTAMPTOSTRING(WINDOWSTART, 'yyyy-MM-dd HH:mm:ss', 'Europe/Paris') AS window_start,
    TIMESTAMPTOSTRING(WINDOWEND, 'yyyy-MM-dd HH:mm:ss', 'Europe/Paris') AS window_end,
    avg_temp
FROM avg_temps_per_city;

Résultat :

VILLE              WINDOW_START         WINDOW_END           AVG_TEMP
Clermont-Ferrand   2025-10-06 10:50:00  2025-10-06 11:00:00  21.34
Clermont-Ferrand   2025-10-06 11:00:00  2025-10-06 11:10:00  20.03
Montpellier        2025-10-06 10:50:00  2025-10-06 11:00:00  20.24
Bordeaux           2025-10-06 10:50:00  2025-10-06 11:00:00  21.33
Lyon               2025-10-06 10:50:00  2025-10-06 11:00:00  21.06
Paris              2025-10-06 10:50:00  2025-10-06 11:00:00  20.57

Chaque ligne représente une fenêtre temporelle pour une ville.