Wat is een Time Series Database?

Een time series database (TSDB) is een database die is geoptimaliseerd voor het opslaan, comprimeren en bevragen van meetwaarden die elk aan een tijdstempel zijn gekoppeld, zoals sensorwaarden, procesparameters en machinestatussen. Waar een gewone database vooral records bijwerkt, voegt een TSDB vrijwel alleen nieuwe waarden toe en vraagt hij ze op per tijdvenster. Dat maakt hem de opslaglaag onder SCADA-trends, historians, condition monitoring en predictive maintenance binnen de industriële automatisering.


🧠 Hoe werkt een time series database?

Elk datapunt bestaat uit drie delen:

  • Tijdstempel - het moment van meten, meestal in milliseconden of nanoseconden en bij voorkeur in UTC
  • Waarde(n) - de meetwaarde zelf, bijvoorbeeld 72,3 °C, vaak aangevuld met een kwaliteitsstatus
  • Labels of tags - beschrijvende kenmerken zoals installatie, lijn of sensor-ID, waarmee u reeksen filtert en groepeert

Eén unieke combinatie van meting en labels vormt een serie. Het aantal series heet de cardinaliteit. Labels worden geïndexeerd, waarden niet. Zet daarom nooit unieke of sterk wisselende gegevens, zoals ordernummers of willekeurige ID’s, in een label: elke nieuwe waarde maakt dan een nieuwe serie aan. Hoge cardinaliteit is een van de belangrijkste oorzaken van hoog geheugengebruik en trage queries.

Het schrijfpatroon is append-only: nieuwe waarden komen achteraan, oude waarden worden zelden gewijzigd. Queries vragen bijna altijd een tijdvenster op, zoals “het gemiddelde debiet per minuut van de afgelopen 24 uur”. Daarop is de hele opslag afgestemd.


🔧 Hoe slaat een TSDB tijdreeksen zo compact op?

Een TSDB combineert een aantal technieken die in een relationele database ontbreken of beperkt zijn:

Techniek Werking Effect
Partitioneren op tijd Data wordt opgedeeld in blokken per tijdvak, zoals de chunks van TimescaleDB of de blokken van twee uur in Prometheus Snel zoeken per periode, oude blokken in één keer verwijderen
Kolomopslag Waarden van één reeks staan naast elkaar op schijf, bijvoorbeeld in Parquet-bestanden Goede compressie en snelle aggregaties
Delta-of-delta Slaat niet het tijdstempel op, maar de verandering van het interval Regelmatige metingen kosten bijna geen bits
XOR-compressie Vergelijkt een kommagetal bit voor bit met de vorige waarde Stabiele waarden comprimeren sterk
Downsampling Zet ruwe data om naar gemiddelden per minuut of uur Lange historie met weinig opslag
Retentiebeleid Verwijdert of archiveert data automatisch na een vaste termijn Voorspelbaar opslagvolume

De bekendste uitwerking van delta-of-delta en XOR is Gorilla, de in-memory TSDB die Facebook in 2015 op de VLDB-conferentie beschreef. Gorilla bracht datapunten van 16 bytes terug tot gemiddeld 1,37 byte, een factor 12, bij ongeveer 12 miljoen nieuwe datapunten per seconde. Prometheus en veel andere TSDB’s gebruiken varianten van die techniek en komen gemiddeld uit op 1 à 2 bytes per waarde.

Een Historian werkt vaak anders: die laat met deadband- en swinging door-compressie waarden weg die binnen een tolerantie op een rechte lijn liggen. Een TSDB bewaart standaard elke waarde en comprimeert verliesvrij.


🔄 Wat is het verschil tussen een TSDB, een historian en een relationele database?

Aspect Time series database Historian Relationele database
Doel Generieke opslag van tijdreeksen Industriële procesdata met context Transacties en relaties
Compressie Verliesvrij (delta, XOR, kolommen) Deadband en swinging door, instelbaar per tag Generiek of beperkt
Datacollectie Via losse agents, MQTT of API’s Ingebouwde interfaces voor OPC, Modbus en DCS Moet door een applicatie worden aangeleverd
Querytaal SQL, InfluxQL of PromQL Eigen API’s, OPC UA Historical Access SQL met joins
Licentie Vaak open source Meestal commercieel, per tag Beide

Technisch is een historian een TSDB met industriële collectors, tagbeheer en procesfuncties erbovenop. In de praktijk kiest u een historian als u kant-en-klare koppelingen met PLC’s, RTU’s en DCS-systemen wilt. Een open TSDB kiest u als u flexibiliteit wilt en de collectie en contextualisatie zelf kunt organiseren.


📦 Welke time series databases worden in OT gebruikt?

Platform Achtergrond Kenmerk
AVEVA PI System AVEVA, voorheen OSIsoft Historian met eigen archief, veel gebruikt in proces- en energie-industrie
InfluxDB InfluxData InfluxDB 3 (sinds april 2025) is in Rust gebouwd op Apache Arrow en Parquet; Core is open source onder MIT/Apache 2, Enterprise is commercieel
TimescaleDB Tiger Data (tot juni 2025 Timescale) PostgreSQL-extensie met hypertables en continuous aggregates, handig om procesdata met IT-data te combineren
QuestDB QuestDB Open source (Apache 2.0), SQL met SAMPLE BY, basis van de Core Historian in Ignition 8.3
Prometheus Ontstaan bij SoundCloud (2012), sinds 2016 een CNCF-project Monitoring van IT-systemen en servers met PromQL; standaard 15 dagen lokale retentie
Proficy Historian Proficy, sinds maart 2026 van TPG Industriële historian, voorheen van GE Vernova

Voor visualisatie wordt een open TSDB vaak gecombineerd met Grafana. Sommige TSDB’s maken deel uit van bredere SCADA- of MES-omgevingen.


🏭 Waarvoor gebruikt u een TSDB in de industrie?

  • Trending - temperatuur, druk en debiet over uren, dagen of jaren vergelijken
  • Prestaties - OEE, stilstand en cyclustijden per lijn berekenen
  • Onderhoud - trillingen, stroomopname en draaiuren volgen voor condition monitoring
  • Analyse - trainingsdata leveren voor machine learning en anomaliedetectie
  • Digital Twin en Edge Computing - een lokale TSDB buffert data op de edge en synchroniseert later met een centrale omgeving
  • IT-monitoring - servers, netwerken en applicaties bewaken met monitoring-tools

Typische databronnen zijn PLC’s, RTU’s, sensoren, drives en HMI’s, via OPC UA, MQTT, Sparkplug B of Modbus-gateways. In IIoT-architecturen abonneert de TSDB zich vaak op een Unified Namespace, zodat elke nieuwe waarde zonder polling binnenkomt.


🧭 Hoe richt u een TSDB in voor OT-data?

  1. Ontwerp het datamodel - kies welke kenmerken label worden (installatie, lijn, eenheid) en welke waarde. Houd de cardinaliteit beperkt.
  2. Leg tijd vast bij de bron - gebruik het tijdstempel van de PLC of het veldapparaat, niet het moment van binnenkomst, en synchroniseer klokken.
  3. Bepaal de bemonstering - 1 seconde is gangbaar voor procesdata; trillingsanalyse vraagt veel hogere frequenties.
  4. Stel retentie per niveau in - bijvoorbeeld ruwe data 90 dagen, minuutgemiddelden vijf jaar.
  5. Buffer bij storingen - laat de collector data lokaal opslaan als de verbinding wegvalt (store and forward).
  6. Plan beschikbaarheid en back-up - met replicatie voor high availability en een geteste back-up.

Rekenvoorbeeld: 2.000 tags die elke seconde een waarde leveren, geven 172,8 miljoen waarden per dag. Bij ongeveer 1,5 byte per waarde na compressie is dat zo’n 260 MB per dag, ruim 90 GB per jaar. Bewaart u na 90 dagen alleen minuutwaarden met gemiddelde, minimum en maximum, dan blijven 8,6 miljoen waarden per dag over: twintig keer minder. Ruisende signalen comprimeren slechter, dus reken met marge.


🔐 Hoe beveiligt u een time series database?

In OT-omgevingen is het cruciaal om zowel de integriteit als de beschikbaarheid van procesdata te garanderen.


❓ Veelgestelde vragen

Waar staat TSDB voor?

TSDB staat voor time series database, een database die is gebouwd voor meetwaarden met een tijdstempel. Een TSDB is geoptimaliseerd voor veel kleine schrijfacties en voor queries over tijdvensters, zoals gemiddelden per minuut of uur.

Is een historian hetzelfde als een time series database?

Een historian is een gespecialiseerde time series database voor industriële procesdata. Naast opslag levert een historian ingebouwde collectors voor OPC, Modbus en DCS-systemen, tagbeheer en procesgerichte compressie. Een generieke TSDB biedt de opslag, maar de collectie organiseert u zelf.

Waarom is een TSDB sneller dan een SQL-database voor sensordata?

Een time series database partitioneert data op tijd, slaat waarden per reeks in kolommen op en comprimeert tijdstempels en waarden met technieken als delta-of-delta en XOR. Daardoor leest een query over een tijdvenster veel minder data van schijf dan een rij-gebaseerde SQL-database.

Wat is cardinaliteit in een time series database?

Cardinaliteit is het aantal unieke series in een time series database, dus het aantal combinaties van meting en labels. Hoge cardinaliteit ontstaat als unieke waarden zoals ordernummers als label worden opgeslagen. Dat kost veel geheugen en vertraagt schrijven en lezen.

Hoeveel opslag heeft een TSDB nodig?

Een time series database gebruikt na compressie gemiddeld 1 à 2 bytes per waarde. 2.000 tags met één waarde per seconde kosten dan ongeveer 260 MB per dag. Downsampling en retentiebeleid beperken de groei verder.

Welke time series database is open source?

InfluxDB 3 Core, TimescaleDB, QuestDB en Prometheus zijn bekende open-source time series databases. Bij TimescaleDB vallen sommige functies, zoals compressie en continuous aggregates, onder de eigen Timescale License. Commerciële edities bieden vaak extra’s zoals hoge beschikbaarheid.


📌 Samengevat

Een time series database (TSDB) slaat meetwaarden met een tijdstempel compact op en maakt ze snel opvraagbaar per tijdvenster. Met tijdpartitionering, kolomopslag, compressie, downsampling en retentiebeleid vormt een TSDB de opslaglaag onder historians, SCADA-trends, monitoring en predictive maintenance. Beveilig hem als elk OT-systeem: met authenticatie, TLS, segmentatie en betrouwbare back-ups.