InfluxDB lagrer innkommende tidsstemplede sensorpunkter og indekserer dem på tid for raske spørringer

InfluxDB

InfluxDB er en tidsseriedatabase – en database optimalisert for å lagre datapunkter indeksert på tidsstempel. Der en relasjonsdatabase lagrer rader med strukturerte poster, lagrer InfluxDB målinger over tid: temperatur 14:32:01, effektforbruk 14:32:02, fukt 14:32:03. Det gjør den eksepsjonelt effektiv til å lagre, spørre og aggregere den typen kontinuerlige sensordata en Home Assistant-installasjon genererer – hundrevis av tilstandsendringer i timen, hver time, i det uendelige.

InfluxDB lagrer innkommende tidsstemplede sensorpunkter og indekserer dem på tid for raske spørringer

Home Assistant har sin egen innebygde recorder, som lagrer entitetshistorikk i en lokal SQLite-database. Recorderen fungerer godt for korttidshistorikk – de siste ti dagene i Historikk-panelet – men er ikke laget for langtidslagring eller komplekse analytiske spørringer. SQLite vokser raskt med mange entiteter, ytelsen synker over tid, og skjemaet er ikke optimalisert for aggregeringene – timesgjennomsnitt, dagssummer, rullende min/maks – som gjør sensordata nyttige for analyse. InfluxDB løser alle tre: den lagrer data effektivt i årevis uten ytelsestap, spørrespråket er bygd for tidsserie-aggregeringer, og den beholder data så lenge du vil i valgfri oppløsning.

Home Assistant kobler til InfluxDB via den offisielle InfluxDB-integrasjonen, som kjører som et HA-tillegg for lokale instanser eller kobler til en ekstern server. Når den er satt opp, skriver integrasjonen hver tilstandsendring til InfluxDB i sanntid – parallelt med den innebygde recorderen, ikke i stedet for. Du velger hvilke entiteter som skal med, intervallet for kontinuerlige sensorer, og om du bruker InfluxDB v1 eller v2. Dataene lander tagget med entitets-ID, domene og visningsnavn, klare til å spørres fra Grafana eller et hvilket som helst annet verktøy som støtter InfluxDB som datakilde.

Proff-tips: Ekskluder høyfrekvente entiteter for å holde databasen liten
Ikke alle entiteter er verdt å lagre i InfluxDB. Binærsensorer som skifter tilstand hundrevis av ganger om dagen – bevegelsessensorer, dørsensorer i travle områder – gir store datamengder med liten analyseverdi. Sett opp inkluder/ekskluder-listen i InfluxDB-integrasjonen til å skrive bare entitetene du faktisk spør på: energimålere, temperatursensorer, klima-entiteter og værdata. Da holder du databasen kompakt og spørringene raske uten å miste meningsfull historikk.

InfluxDB finnes i to versjoner med ulik arkitektur. InfluxDB v1 bruker et SQL-lignende spørrespråk kalt InfluxQL og lagrer data i databaser og målinger – kjente begreper for alle med databaseerfaring. InfluxDB v2 introduserer et nytt spørrespråk kalt Flux – kraftigere, men brattere læringskurve – og en ny datamodell basert på buckets og organisasjoner. Begge versjoner støttes av HA-integrasjonen og av Grafana. For nye installasjoner er v2 dagens standard; kjører du allerede v1, finnes det ingen tvingende grunn til å migrere.

🏠 Visste du at: InfluxDB ble laget av Paul Dix i 2013 etter at han ble frustrert over å bruke relasjonsdatabaser til å lagre tidsserie-overvåkingsdata i stor skala. Kjerneinnsikten var at tidsseriedata har fundamentalt andre tilgangsmønstre enn relasjonsdata – det skrives nesten alltid i kronologisk rekkefølge og spørres etter tidsrom – og at en database bygd rundt de mønstrene kan være størrelsesordener mer effektiv enn en generell relasjonsdatabase for samme arbeidslast.

Relaterte artikler

No post found!

Kilder