Har udviklet en pipeline til timebaseret aggregering af elforbrug i Python / SQL / Bash + Jq, der opnår 180 ms for 30‑dages datasæt på tværs af heterogene JSONL‑kilder.
Platform- og dataingeniør
Situation. Virksomheden behandler store mængder heterogene eldata fra flere datakilder, hver med sin egen rapporteringsfrekvens — fra timeintervaller til 15‑minutters intervaller og i nogle tilfælde uregelmæssige tidsstempler. Denne variabilitet gør det udfordrende at skabe et sammenhængende, sammenligneligt datasæt. For at understøtte præcis energianalyse skal disse data normaliseres til konsistente timeforbrugsværdier, aggregeret pr. zone.
Opgave. Målet var at tage rå event‑data fra et historisk datasæt (i JSONL‑format) og konvertere det til timeafstemte elforbrugstal, struktureret som én række pr. time og pr. zone. Konkret indebar opgaven at afstemme tidsstemplede data til strikse timeintervaller, aggregere den samlede elproduktion inden for hvert interval, indregne grænseoverskridende udveksling ved at lægge import til og trække eksport fra, og udskrive de endelige værdier i et struktureret, skalerbart format. Løsningen skulle desuden være effektiv nok til at skalere over lange tidsvinduer (30+ dage) og på tværs af flere lande/zoner.
Handling. Tre forskellige varianter af løsningen blev implementeret med henholdsvis Python, JQ (til JSON‑behandling på kommandolinjen) og SQL, hver optimeret til forskellige kontekster. Python blev valgt for sin fleksibilitet og evne til effektivt at håndtere in‑memory‑transformationer: en pipeline, der parser JSONL‑filerne, resampler tidsserien til timeintervaller, aggregerer produktion og beregner nettoelforbrug (produktion + import − eksport) og eksporterer resultaterne. JQ gav en hurtig løsning med minimale afhængigheder, og i PostgreSQL blev dataene importeret, normaliserede tabeller oprettet og en række SQL‑forespørgsler skrevet. For at vurdere ydeevnen blev hver løsning benchmarket med både 1‑dags og 30‑dages datasæt.
Resultat. Python‑implementeringen viste sig som den hurtigste og mest skalerbare løsning og gennemførte 1‑dags databehandling på blot 34 ms og 30‑dages datasættet på 180 ms. Det bekræftede egnetheden til større tidsvinduer med sub‑sekund‑ydeevne og gav samtidig klar, vedligeholdelig kode, der let kunne udvides til flere zoner eller integreres i en ETL‑pipeline.