Wat is TimescaleDB?

TimescaleDB is een extensie voor de relationele database PostgreSQL die er een volwaardige time series database van maakt, met automatische partitionering op tijd (hypertables), kolomgebaseerde compressie en doorlopend bijgewerkte aggregaten. Het product werd in 2017 gelanceerd door het bedrijf Timescale, dat in juni 2025 zijn naam veranderde in Tiger Data; de extensie zelf heet nog steeds TimescaleDB. Binnen OT-omgevingen en OT-convergentie wordt TimescaleDB gebruikt voor industriële telemetrie, IIoT-data, proceshistorie, energiemonitoring en voorspellend onderhoud. Het grote voordeel: procesdata en relationele IT-data (orders, assets, batches) staan in dezelfde database en zijn met gewone SQL te combineren.


🧠 Hoe werkt TimescaleDB?

TimescaleDB draait als extensie binnen een normale PostgreSQL-server. Na het laden van de bibliotheek (shared_preload_libraries) en CREATE EXTENSION timescaledb blijft alles wat PostgreSQL kan beschikbaar: transacties, joins, indexen, gebruikersrechten, replicatie en de bekende tools. TimescaleDB voegt daar een aantal tijdreeksbouwstenen aan toe:

Bouwsteen Wat het doet Waarom het telt in OT
Hypertable Eén logische tabel die automatisch wordt opgesplitst in chunks per tijdvak (standaard 7 dagen), optioneel ook per andere dimensie Inserts en queries raken alleen de recente of relevante chunks
Columnstore (Hypercore) Zet oudere chunks om naar kolomopslag met compressie, vaak 90% of meer besparing Jaren procesdata blijven betaalbaar online
Continuous aggregates Materialized views die automatisch en incrementeel worden bijgewerkt, bijvoorbeeld minuut- of uurgemiddelden Dashboards lezen samenvattingen in plaats van miljarden ruwe rijen
Retentiebeleid Verwijdert hele chunks die ouder zijn dan een ingestelde termijn Opschonen kost geen zware DELETE-queries
Hyperfuncties SQL-functies zoals time_bucket, first, last, locf, interpolate en time_weight (die laatste via de aanvullende TimescaleDB Toolkit) Tijdgewogen gemiddelden en gaten in meetreeksen netjes verwerken
Jobs Ingebouwde planner voor compressie-, retentie- en aggregatiebeleid Geen externe cron-taken nodig

Een typische OT-tabel bevat een tijdstempel, een tag- of asset-ID, een waarde en een kwaliteits- of statuscode. In TimescaleDB is dat een hypertable met een index op (tag, tijd); een asset-hiërarchie of ISA-95-model staat in gewone relationele tabellen ernaast.


🔄 Wat is het verschil met een traditionele historian?

Een klassieke historian zoals AVEVA PI is gebouwd voor proceswaarden, met eigen compressiealgoritmen (zoals swinging door), een tag-database en kant-en-klare connectoren naar honderden besturingssystemen. TimescaleDB is een algemene database: krachtiger in SQL en integratie, maar zonder de OT-specifieke schil.

Eigenschap Traditionele historian TimescaleDB
Basis Eigen (proprietary) opslagengine PostgreSQL met extensie
Querytaal Leverancier-API, soms SQL-laag Standaard SQL
Connectoren naar PLC/DCS Uitgebreid, meegeleverd Via gateway of eigen software (OPC UA, MQTT)
Compressie Deadband/swinging door bij inname Kolomcompressie van oudere chunks, alle waarden blijven bewaard
Relationele data Beperkt (asset framework) Volledig: joins met orders, batches, onderhoud
Schaalbaarheid zelf gehost Leverancierafhankelijk Verticaal plus read-replica’s
Licentie Commercieel, vaak per tag Apache 2.0-kern plus gratis Timescale License

In de praktijk vervangt TimescaleDB de site-historian zelden volledig. Vaker vormt het een analyse- of datalaag erboven, of de opslag van een moderne SCADA zoals Ignition, die tagdata in een SQL-database kan historiseren.


🏭 Waar past TimescaleDB in de OT-architectuur?

TimescaleDB is geen realtime besturingscomponent en hoort niet op de veldlaag. Een realistische plaatsing in het Purdue Model:

Purdue-laag Mogelijke rol van TimescaleDB
Level 2 Lokale opslag op een edge-server naast SCADA of een kleine installatie
Level 3 Site-historian of datalaag voor MES en OEE-rapportage
Level 3.5 Replica in de IDMZ, zodat IT-gebruikers niet in het OT-netwerk hoeven
Level 4 en cloud Centraal analyseplatform voor meerdere sites, bijvoorbeeld via Tiger Cloud

Data komt meestal binnen via een gateway: een OPC UA-client, een MQTT-broker of Unified Namespace met een database-schrijver, Node-RED, Telegraf of een Kafka-pipeline. Grafana heeft een PostgreSQL-databron met TimescaleDB-ondersteuning en is de gebruikelijke visualisatielaag. Containerbeelden maken uitrol met Docker of Kubernetes eenvoudig, ook op edge-hardware.


🔧 Hoe richt u TimescaleDB in voor procesdata?

Een stappenplan dat in OT-projecten goed werkt:

  1. Bepaal het datamodel - kies tussen een smal model (tijd, tag-ID, waarde, kwaliteit) en een breed model (één kolom per signaal per machine). Het smalle model is flexibeler bij duizenden tags.
  2. Maak de hypertable - begin met de standaard chunk van 7 dagen. De vuistregel van de leverancier: de indexen van de chunks waarin actief wordt geschreven moeten in circa 25% van het werkgeheugen passen. Op een server met 64 GB en 10 GB indexgroei per dag past een chunk van 1 dag beter.
  3. Stel compressie in - segmenteer op tag- of asset-ID en sorteer op tijd, en comprimeer chunks na bijvoorbeeld 7 tot 30 dagen.
  4. Definieer continuous aggregates - bijvoorbeeld 1-minuut- en 1-uurgemiddelden met min/max, zodat OEE-dashboards en energierapporten snel blijven.
  5. Leg retentie vast - ruwe data bijvoorbeeld 1 tot 2 jaar, aggregaten 10 jaar of langer, afhankelijk van wettelijke en kwaliteitseisen.
  6. Regel beschikbaarheid en back-up - PostgreSQL streaming replication met automatische failover (bijvoorbeeld Patroni), plus back-ups die regelmatig hersteltests doorstaan.

Een rekenvoorbeeld: 5.000 tags die elke seconde een waarde leveren geven 432 miljoen rijen per dag. Ongecomprimeerd is dat al snel tientallen gigabytes per dag; met kolomcompressie en aggregaten blijft een meerjarige historie op één server haalbaar.


📜 Is TimescaleDB open source?

Deels. TimescaleDB kent twee edities in dezelfde codebase:

  • Apache 2-editie - hypertables, chunkbeheer en basisfuncties zoals time_bucket, first en last. Echt open source.
  • Community-editie (Timescale License, TSL) - columnstore/compressie, continuous aggregates, retentie- en jobbeleid en de geavanceerde hyperfuncties. Gratis te gebruiken, ook commercieel en in eigen producten, maar u mag de Community-editie niet als databasedienst aan anderen verkopen.

Voor een industrieel bedrijf dat TimescaleDB zelf host, is de Community-editie vrijwel altijd bruikbaar. Let op bij managed PostgreSQL-diensten van cloudproviders: die bieden TimescaleDB vaak niet aan, of alleen de Apache 2-editie zonder compressie, continuous aggregates en retentiebeleid. Het oude multi-node (gedistribueerde) cluster is na versie 2.13 geschrapt. Sinds versie 2.29 (juli 2026) ondersteunt TimescaleDB PostgreSQL 16, 17 en 18; ondersteuning voor PostgreSQL 15 is daarmee vervallen.


🔐 Hoe beveiligt u TimescaleDB in een OT-omgeving?

Voor cybersecurity geldt: een database met procesdata is aantrekkelijk voor aanvallers: manipulatie ondermijnt de data-integriteit van rapportages en ransomware kan jaren historie onbruikbaar maken. Omdat TimescaleDB PostgreSQL is, gelden de gewone PostgreSQL-hardeningmaatregelen:

Maatregel Uitwerking
Versleuteling TLS verplicht in pg_hba.conf (hostssl), ook voor replicatie
Toegangsbeheer RBAC met aparte rollen voor schrijvende gateway, lezers en beheer
Sterke authenticatie SCRAM-SHA-256; MFA via jump host of centrale identity provider, PostgreSQL zelf kent geen MFA
Segmentatie Netwerksegmentatie, database in eigen zone, IT leest uit een replica in de DMZ of IDMZ
Telemetrie Zet timescaledb.telemetry_level op off in afgeschermde netwerken
Logging en herstel Auditlogging (pgAudit), offline of immutable back-ups, gedocumenteerd herstel voor forensisch onderzoek
Patchen Volg PostgreSQL- en TimescaleDB-releases binnen het lifecyclebeheer

Ontwerp de omgeving volgens IEC 62443 (zones en conduits), Defense in Depth en Zero Trust-principes; NIST SP 800-82 geeft aanvullende richtlijnen voor ICS. Op organisatieniveau sluiten ISO 27001 en het NIST CSF daarop aan. Organisaties die onder de Cyberbeveiligingswet vallen, moeten zulke maatregelen ook kunnen aantonen.


🧪 Praktijkvoorbeeld: energiemonitoring in een fabriek

Een Nederlandse voedingsmiddelenproducent wil energieverbruik per productielijn koppelen aan productieorders om de energie per kilo product te bepalen, onder meer voor de EED-energieauditplicht.

Component Rol
Energiemeters en PLC’s Leveren kWh, gas en perslucht via Modbus/OPC UA
Edge-gateway Publiceert waarden via MQTT naar de broker
TimescaleDB (Level 3) Slaat ruwe data op, comprimeert na 14 dagen, bewaart uuraggregaten 10 jaar
ERP-koppeling Laadt orders en batches in gewone tabellen
Grafana Dashboards met kWh per order en per kilo

Omdat orders en meetwaarden in één database staan, is “energie per order” één SQL-join met time_bucket in plaats van een export naar Excel. Dezelfde data voedt later modellen voor AI en anomaliedetectie. Dat is precies de kracht van TimescaleDB binnen IT/OT-convergentie.


❓ Veelgestelde vragen

Is TimescaleDB gratis te gebruiken?

TimescaleDB is gratis voor zelf gehoste installaties: de kern valt onder Apache 2.0 en de geavanceerde functies onder de gratis Timescale License. Die licentie verbiedt vooral het aanbieden van de Community-editie als databasedienst (DBaaS) aan derden. Een beheerde versie is te koop als Tiger Cloud.

Wat is het verschil tussen TimescaleDB en InfluxDB?

TimescaleDB is een PostgreSQL-extensie met standaard SQL en volledige relationele functies, terwijl InfluxDB een eigen tijdreeksdatabase is met een eigen opslagengine. TimescaleDB is sterk wanneer u procesdata wilt combineren met relationele IT-data. InfluxDB is eenvoudiger op te zetten voor pure metrics.

Kan TimescaleDB een industriële historian vervangen?

TimescaleDB kan de opslag- en analysefunctie van een historian overnemen, maar mist de meegeleverde connectoren naar besturingssystemen en de OT-specifieke beheerschil. Daarom wordt het vaak naast een bestaande historian gebruikt, of als database achter een SCADA-pakket. Voor nieuwe, kleinere installaties kan het wel de volledige historian zijn.

Hoeveel compressie haalt TimescaleDB op procesdata?

TimescaleDB haalt met de columnstore vaak een besparing van 90% of meer, omdat opeenvolgende meetwaarden van één tag sterk op elkaar lijken. De werkelijke ratio hangt af van de segmentatie, de sorteervolgorde en de ruis in het signaal. Test daarom altijd met een representatieve dataset.

Wat is een hypertable in TimescaleDB?

Een hypertable is een TimescaleDB-tabel die zich voor de gebruiker gedraagt als één gewone tabel, maar intern wordt verdeeld in chunks per tijdvak. Queries en inserts raken alleen de relevante chunks, waardoor prestaties stabiel blijven naarmate de data groeit. Oude chunks kunnen in één keer worden gecomprimeerd of verwijderd.

Is TimescaleDB geschikt voor de edge?

TimescaleDB draait als container op gangbare edge-servers en industriële pc’s, zolang er genoeg geheugen en betrouwbare opslag is. Op de edge buffert het lokaal en repliceert het of stuurt het aggregaten door naar een centrale database. Voor zeer kleine apparaten is een lichtere oplossing vaak geschikter.


📌 Samengevat

TimescaleDB maakt van PostgreSQL een time series database die procesdata en IT-data in één SQL-omgeving samenbrengt. Met hypertables, kolomcompressie, continuous aggregates en retentiebeleid is het een open en betaalbaar fundament in de architectuur voor historisering en analyse binnen IT/OT-convergentie, mits u het positioneert in de juiste Purdue-zone en beveiligt volgens IEC 62443.