Use Case · Energia · datavirrat ja integraatio

Integraatiot, jotka pitävät ennusteet ajan tasalla reaaliajassa

Reaaliaikainen dataintegraatio energiayhtiölle · tapahtumapohjainen ennusteputki kulutus- ja hintaennusteille

Energiayhtiön ennustetoiminta nojaa useaan ulkoiseen ja sisäiseen tietolähteeseen, jotka päivittyvät eri kadensseilla: kulutusmittauksiin, sääennusteisiin ja pörssisähkön hintatietoon. Haaste on pitää nämä syötteet yhtenäisinä ja tuoreina niin, että kulutus- ja hintaennusteet lasketaan uudelleen heti kun niiden syöte muuttuu — ei vasta seuraavassa eräajossa.

Datavirrat
LIVE
Syötteet
Kulutus · sää · spot
Liipaisumalli
Tapahtumapohjainen inference
Tavoite
Ennusteet aina tuoreina
Tietolähteet ja kadenssit

Heterogeeniset syötteet eri rytmeillä

Tekninen ydinongelma ei ole yksittäisen rajapinnan haku, vaan se että lähteet päivittyvät eri tahtiin ja eri semantiikalla (event-time vs. processing-time). Ennuste on yhtä tuore kuin sen vanhin syöte.

Kulutusmittaukset

LähdeDatahub / AMR head-end
ProtokollaTapahtumavirta (Kafka / Event Hubs)
KadenssiVarttitaso, jatkuva
ErityistäSettlement-korjaukset saapuvat jälkikäteen → myöhästyvää dataa

Sääennuste

LähdeSää-API (ECMWF / FMI)
ProtokollaREST-poll, ajastettu nouto
KadenssiUusi malliajo ~6 h välein
ErityistäHilamuotoinen data, paikkakohtainen interpolointi

Pörssisähkön hinta

LähdeNord Pool day-ahead + intraday
ProtokollaREST / markkinasanoma
KadenssiDay-ahead 1×/vrk, intraday jatkuva
ErityistäJulkaisuhetki sidottu markkina-aikatauluun (CET)

Generoitavat ennusteet

Ennusteet ovat itse datatuotteita, joilla on omat syötteensä ja uudelleenlaskennan liipaisimensa.

Inference
Kulutus­ennusteSyötteet: kulutushistoria + sääennuste + kalenteri. ML-/aikasarjamalli, inference tapahtumapohjaisesti.
Hinta­ennusteSyötteet: kulutusennuste + sääennuste (tuuli/aurinko) + spot-historia. Lasketaan uudelleen, kun syöte päivittyy.

Miksi eräajo ei riitä

Kun syötteet saapuvat eri tahtiin, kiinteä eräajoikkuna joko viivästyttää tuoretta dataa tai laskee turhaan muuttumattomalla syötteellä.

Tuoreus
  • Uusi sääennusteajo pitäisi heijastua kulutus- ja hintaennusteeseen heti, ei tuntien päästä.
  • Myöhästyvä mittausdata edellyttää uudelleenlaskentaa oikealle ajanjaksolle (event-time).
  • Syötteiden riippuvuudet pitää hallita, jotta yksi päivitys liipaisee oikeat — ei kaikki — ennusteet.
Integraatioarkkitehtuuri

Putki lähteestä ennusteen jakeluun

Tapahtumaväylä irrottaa lähteet ja kuluttajat toisistaan. Päivitykset etenevät virtana, ja ennusteiden inference liipaistaan syötteen muuttuessa.

1VastaanottoPollerit, virrat, tiedostot
2TapahtumaväyläKafka / Event Hubs
3VirtaprosessointiNormalisointi, event-time
4TallennusAikasarja + feature store
5InferenceEnnusteiden laskenta
6JakeluAPI + downstream

Interaktiivinen demo

Datavirta ja tapahtumapohjainen uudelleenlaskenta

Simulaatio näyttää syötteet ja niiden tuoreuden vasemmalla. Kun syöte päivittyy, riippuvat ennusteet lasketaan uudelleen oikealla (versionumero kasvaa, kortti välähtää). Kokeile syöttää päivitys käsin tai simuloida datakatko.

Simulaatiokello: 0 s
Syötteet (tapahtumavirrat)
Generoitavat ennusteet
Simulaatio käynnissä. Syötteet päivittyvät kadenssinsa mukaan, ja ennusteet lasketaan uudelleen vain kun niiden syöte muuttuu — tämä on tapahtumapohjaisen integraation ydin.
Tekniset huomiot

Mitä reaaliaikaisuus vaatii käytännössä

Tapahtumapohjainen uudelleenlaskenta

Inference liipaistaan syötteen saapumisesta, ei kellosta. Riippuvuusgraafi määrää, mitkä ennusteet lasketaan uudelleen ja missä järjestyksessä.

Tuoreuden valvonta

Jokaisella syötteellä on tuoreus-SLA. Kun ikä ylittää kynnyksen, syntyy hälytys ja ennuste merkitään syötteeltään vanhentuneeksi alavirtaan asti.

Myöhästyvä ja epäjärjestyksessä data

Event-time-semantiikka ja watermarkit hoitavat jälkikäteen saapuvat mittaukset. Korjausajo kohdistuu oikeaan ajanjaksoon, ei saapumishetkeen.

Idempotenssi ja versiointi

Sama tapahtuma voidaan toistaa turvallisesti. Ennusteilla on aikaleima ja versio, jolloin alavirta tietää aina, mihin syötejoukkoon tulos perustuu.

Irrotettu arkkitehtuuri

Tapahtumaväylä poistaa point-to-point-riippuvuudet. Uusi kuluttaja tai lähde liitetään ilman, että olemassa olevia integraatioita muutetaan.

Takaisinlataus ja toistettavuus

Virrasta voidaan toistaa historia (replay), mikä mahdollistaa mallien uudelleenajon ja korjaukset ilman erillistä eräpoiminta-putkea.

Lopputulos data- ja integraationäkökulmasta

Kun lähteet virtaavat yhteisen väylän läpi ja ennusteet liipaistaan tapahtumista, järjestelmän tila on jatkuvasti konsistentti: jokainen ennuste heijastaa tuoreinta saatavilla olevaa syötettä, ja sen perusta on jäljitettävissä versioon ja aikaleimaan asti. Reaaliaikaisuus ei ole nopeampi eräajo vaan eri toimintamalli — data liikkuu työntäen, ei vetäen.