{"id":19372,"date":"2020-08-04T08:02:57","date_gmt":"2020-08-04T06:02:57","guid":{"rendered":"https:\/\/www.inovex.de\/blog\/?p=19372"},"modified":"2025-12-17T07:59:17","modified_gmt":"2025-12-17T06:59:17","slug":"timescaledb-vs-influxdb-zeitreihen-iiot","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/","title":{"rendered":"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT"},"content":{"rendered":"<p>Im Rahmen des Forschungsprojekts <a href=\"https:\/\/www.inovex.de\/de\/leistungen\/data-science-deep-learning\/kollaborative-smart-contracting-plattform-kosmos\/\"><span style=\"font-weight: 400;\">KOSMoS<\/span><\/a> entwickelt inovex zusammen mit acht Projektpartnern eine Plattform f\u00fcr die unternehmens\u00fcbergreifende Vernetzung von Produktions- und Prozessdaten zur Integration neuer Datenprodukte und Gesch\u00e4ftsmodelle. Eine technologische Fragestellung stellt die Wahl einer geeigneten Zeitreihen-Datenbank dar, die es erlaubt, hochfrequente Maschinendaten effizient zu speichern und f\u00fcr analytische Zwecke einfach verf\u00fcgbar zu machen, dar. In diesem Artikel diskutieren wir unsere Erfahrungen mit den zwei popul\u00e4ren Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.<!--more--><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Warum-die-Evaluation\" >Warum die Evaluation?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Evaluation-der-funktionalen-Merkmale\" >Evaluation der funktionalen Merkmale<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Relationale-Datenmodellierung-vs-Tag-Sets\" >Relationale Datenmodellierung vs. Tag-Sets<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Datentypen\" >Datentypen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Abfragesprachen\" >Abfragesprachen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Evaluation-der-nicht-funktionalen-Merkmale\" >Evaluation der nicht-funktionalen Merkmale<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Schreiben-von-Daten\" >Schreiben von Daten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Lesen-von-Daten\" >Lesen von Daten<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Zusammenfassung\" >Zusammenfassung<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#Quellen\" >Quellen<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Warum-die-Evaluation\"><\/span>Warum die Evaluation?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In Zeiten von Industrie 4.0, Industrial Internet of Things (IIoT) und K\u00fcnstlicher Intelligenz werden Zeitreihendaten in zunehmend gr\u00f6\u00dferen Mengen erhoben. Die Verarbeitung dieser Daten kann Maschinenbauer:innenn und -betreiber:innen unter anderem dabei helfen, ihre Maschinen durch eine bedarfsgerechte Wartung und intelligente Betriebsmittel\u00fcberwachung l\u00e4nger im optimalen Bereich zu nutzen.<\/p>\n<p>Neben positiven Aspekten, die die Erhebung der Daten mit sich bringt, werden auch neue Herausforderungen geschaffen. Wohin mit den Daten? Wie k\u00f6nnen die Daten verf\u00fcgbar gemacht werden? Wer darf auf welche Daten zugreifen? Klassische Datenverwaltungssysteme, wie relationale Datenbanken, sto\u00dfen mit Blick auf Leistung, Verl\u00e4sslichkeit und Anpassungsf\u00e4higkeit im Zusammenhang mit Zeitreihen schnell an ihre Grenzen. Wiederkehrende Aufgaben, wie das Schreiben von gr\u00f6\u00dferen Batches oder das Abfragen von Werten \u00fcber einen l\u00e4ngeren Zeitraum, mit zus\u00e4tzlichen Restriktionen an die zeitliche Komponente, k\u00f6nnen im Verlust von Daten oder langen Antwortzeiten des Systems resultieren. Zeitreihen-Datenbanken sind hingegen speziell auf die effiziente Speicherung, Verarbeitung und Analyse von Zeitreihen ausgelegt.<\/p>\n<p>Im Rahmen des Forschungsprojekts\u00a0<a href=\"https:\/\/www.inovex.de\/de\/leistungen\/data-science-deep-learning\/kollaborative-smart-contracting-plattform-kosmos\/\">KOSMoS<\/a> entwickeln wir als Teil eines Konsortiums eine Plattform f\u00fcr eine unternehmens\u00fcbergreifende Vernetzung von Produktions- und Prozessdaten. Eine Herausforderung besteht in der Wahl einer geeigneten Zeitreihen-Datenbank, die es erlaubt, hochfrequente Maschinendaten effizient zu speichern und f\u00fcr analytische Zwecke einfach verf\u00fcgbar zu machen. Um eine sinnvolle Auswahl treffen zu k\u00f6nnen, bieten Kriterien wie Beliebtheit oder Verbreitung zwar einen ersten Anhaltspunkt &#8211; f\u00fcr eine Entscheidung ist aber ein Vergleich der funktionalen und nicht-funktionalen Merkmale der Systeme notwendig. Daher haben wir uns exemplarisch die beiden quelloffenen Datenbankmanagementsysteme TimescaleDB und InfluxDB im Detail angesehen, die sehr unterschiedliche L\u00f6sungskonzepte implementieren.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Evaluation-der-funktionalen-Merkmale\"><\/span>Evaluation der funktionalen Merkmale<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>TimescaleDB ist eine Erweiterung (Plugin) der relationalen Datenbank PostgreSQL. Sie nutzt sogenannte\u00a0<span style=\"font-weight: 400;\">Hypertables<\/span>\u00a0&#8211; eine abstrakte Sicht auf mehrere Tabellen &#8211;\u00a0 und speichert mit Hilfe dieser die Zeitreihen sowohl zeitlich als auch nach Merkmalen segmentiert ab. InfluxDB ist hingegen eine komplette Neuentwicklung mit dem ausschlie\u00dflichen Ziel des Speicherns von Zeitreihen. Durch ihren Aufbau ist sie nur bedingt f\u00fcr das Speichern von anderen, nicht zeitbezogenen Werten geeignet. Vergleicht man die funktionalen Merkmale der beiden Datenbanken miteinander (siehe Tabelle 1) fallen f\u00fcr unseren Anwendungsfall drei wesentliche Unterschiede auf &#8211; das zugrundeliegende Datenmodell, der Umfang an unterst\u00fctzten Datentypen und die zur Verf\u00fcgung stehenden Datenmanipulationssprachen.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Relationale-Datenmodellierung-vs-Tag-Sets\"><\/span>Relationale Datenmodellierung vs. Tag-Sets<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Der relationale Ansatz der PostgresQL wurde f\u00fcr die Datenstrukturen der TimescaleDB beibehalten. Wie in Abbildung 1 skizziert werden die Zeitreihendaten in Tabellen abgespeichert. Die zugeh\u00f6rigen Meta-Informationen der Zeitreihen werden \u00fcber einen Schl\u00fcssel zugeordnet &#8211; angedeutet durch den Pfeil in Abbildung 1 &#8211;\u00a0 jedoch nicht direkt in der Tabelle mit den Messwerten abgelegt.<\/p>\n<p><figure id=\"attachment_19373\" aria-describedby=\"caption-attachment-19373\" style=\"width: 566px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19373\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild1-300x115.png\" alt=\"\" width=\"566\" height=\"217\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild1-300x115.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild1-1024x391.png 1024w, https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild1-768x293.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild1-400x153.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild1-360x138.png 360w, https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild1.png 1188w\" sizes=\"auto, (max-width: 566px) 100vw, 566px\" \/><figcaption id=\"caption-attachment-19373\" class=\"wp-caption-text\">Abbildung 1: Relationales Modell der TimescaleDB (in Anlehnung an [1]).<\/figcaption><\/figure>Bei der InfluxDB werden statt relationaler Strukturen Tag-Sets verwendet, deren Konzept auf sogenannten Measurements basiert (Abbildung 2). Measurements sind in diesem Kontext Tabellen, die f\u00fcr eine bestimmte Messung den Wert, oder auch eine Gruppe von Messungen die Werte, enthalten. Durch ein Tupel von Tags sind die Eintr\u00e4ge ununterscheidbar.<\/p>\n<p><figure id=\"attachment_19374\" aria-describedby=\"caption-attachment-19374\" style=\"width: 618px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19374\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild2-300x86.png\" alt=\"\" width=\"618\" height=\"177\" \/><figcaption id=\"caption-attachment-19374\" class=\"wp-caption-text\">Abbildung 2: Aufbau der sogenannten Measurements in der InfluxDB (in Anlehnung an [1]).<\/figcaption><\/figure>Durch einen Einsatz der TimescaleDB sehen wir f\u00fcr ein Projekt im IIoT Umfeld den Vorteil, dass die Verwaltung von relational strukturierten Metadaten in der gleichen Datenbank erfolgen kann.\u00a0 Das ist n\u00fctzlich, um beispielsweise Informationen wie Maschinentyp oder Betriebsmittel zu speichern und zur Verf\u00fcgung zu stellen.\u00a0 Ohne Mehraufwand kann auch ein Entity-Relationship-Modell implementiert werden, um beispielsweise bei sp\u00e4teren Analysen die Interpretation der Ergebnisse\u00a0 zu vereinfachen. Bei der Verwendung von InfluxDB muss dagegen f\u00fcr die Verwaltung von Metadaten eine zus\u00e4tzliche, relationale Datenbank eingesetzt werden.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Datentypen\"><\/span>Datentypen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Beide Datenbanksysteme unterst\u00fctzen die Datentypen String, Float, Integer und Boolean. Das ist f\u00fcr die meisten F\u00e4lle ausreichend, wie beispielsweise bei der Erfassung von Temperaturwerten (Float), Z\u00e4hlern (Integer), Zust\u00e4nden (Boolean) und Status-Updates (Strings). TimescaleDB unterst\u00fctzt dar\u00fcber hinaus viele weitere komplexe Datentypen und erm\u00f6glicht dadurch beispielsweise eine flexible Ablage von Datenstrukturen, selbst wenn diese nicht vollst\u00e4ndig bekannt sind, etwa JSON Dateien ohne ein bekanntes Schema. Eine gezielte Verarbeitung oder Analyse dieser Daten kann zu einem sp\u00e4teren Zeitpunkt erfolgen.<\/p>\n\n<table id=\"tablepress-24\" class=\"tablepress tablepress-id-24\">\n<thead>\n<tr class=\"row-1\">\n\t<td class=\"column-1\"><\/td><th class=\"column-2\">TimescaleDB<\/th><th class=\"column-3\">influxDB<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">Abfragesprachen<\/td><td class=\"column-2\">SQL<\/td><td class=\"column-3\">influxQL und Flux<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">Besonderheiten bei den Abfragesprachen<\/td><td class=\"column-2\">klassisches SQL (wichtig: \"SORT BY time\") <\/td><td class=\"column-3\">erweiterte Funktionen, wie DERIVATIVE, DIFFERENCE, MOVING_AVERAGE, ...<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">Datentypen<\/td><td class=\"column-2\">Integer<br \/>\nFloat<br \/>\nString<br \/>\nBoolean<br \/>\nTimestamp, date, time \u2026 AND arrays, JSON blobs, geospatial dimensions, currencies, binary data and customized data types<br \/>\n<\/td><td class=\"column-3\">Integer<br \/>\nFloat<br \/>\nString<br \/>\nBoolean<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">Aufl\u00f6sung Zeitstempel<\/td><td class=\"column-2\">Mikrosekunden<\/td><td class=\"column-3\">Nanosekunden<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">Implementierungssprache<\/td><td class=\"column-2\">C<\/td><td class=\"column-3\">Go<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">Zugriffskonzepte [3]<\/td><td class=\"column-2\">ADO.NET<br \/>\nJDBC<br \/>\nnative C library<br \/>\nODBC<br \/>\nstreaming API for large objects<\/td><td class=\"column-3\">HTTP API<br \/>\nJSON over UDP<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-24 from cache -->\n<p>Tabelle 1: Auswahl von funktionalen Merkmalen der influxDB und TimescaleDB<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Abfragesprachen\"><\/span>Abfragesprachen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Auf die Erhebung von Zeitreihendaten folgt in der Regel auch deren Auswertung. F\u00fcr diese Aufgabe sind zwei wichtige Faktoren zu ber\u00fccksichtigen &#8211; die M\u00e4chtigkeit der Abfragesprache und die Abfragezeit. F\u00fcr den geplanten Einsatz muss bewertet werden, wie wichtig die M\u00e4chtigkeit der mitgelieferten Abfragesprache des Systems ist. Reicht der Funktionsumfang der Sprache SQL aus, da die meisten Analysen in weitere Programme (Machine Learning Modelle, Analyse-Skripte, etc.) ausgelagert werden? Oder sollen Analysen m\u00f6glichst ohne weitere Programme durchgef\u00fchrt werden? F\u00fcr diesen Fall liefert die InfluxDB mit ihrer eigenen Abfragesprache Flux den Anwender:innen einen m\u00e4chtigen Werkzeugkasten mit zahlreichen bereits vorimplementierten Funktionen. Deutlich wird dieser gr\u00f6\u00dfere Funktionsumfang unter anderem bei dem Vergleich der Komplexit\u00e4t von umfangreichen Abfragen \u2013 siehe identische Beispielabfragen f\u00fcr Flux und SQL unten. Anzumerken ist aber auch, dass die Verwendung von Flux m\u00f6glicherweise gerade zum Einstieg einen gewissen Lernaufwand mit sich bringt, da die Syntax der Sprache meistens erst erlernt werden muss. Auch oder gerade f\u00fcr Nutzer:innen, die versiert in der Nutzung von\u00a0 SQL sind.<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Beispiel Flux\">from(db:\"telegraf\")\r\n\r\n|&gt; range(start:-1h)\r\n\r\n|&gt; filter(fn: (r) =&gt; r._measurement == \"foo\")\r\n\r\n|&gt; exponentialMovingAverage(size:-10s)<\/pre>\n<pre class=\"lang:mysql decode:true \" title=\"Beispiel SQL\">select id,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0temp,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0avg(temp) over (partition by group_nr order by time_read) as rolling_avg\r\n\r\nfrom (\r\n\r\n\u00a0\u00a0select id,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0temp,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0time_read,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0interval_group,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0id - row_number() over (partition by interval_group order by time_read) as group_nr\r\n\r\n\u00a0\u00a0from (\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0select id,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0time_read,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'epoch'::timestamp + '900 seconds'::interval * (extract(epoch from time_read)::int4 \/ 900) as interval_group,\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0temp\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0from readings\r\n\r\n\u00a0\u00a0) t1\r\n\r\n) t2\r\n\r\norder by time_read;<\/pre>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Evaluation-der-nicht-funktionalen-Merkmale\"><\/span>Evaluation der nicht-funktionalen Merkmale<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Bei der Wahl einer geeigneten Datenbank spielen nicht nur die funktionalen Merkmale eine Rolle. Auch Kriterien, wie die Performance beim Schreiben und Lesen von Daten, der Bedarf an Ressourcen und die generelle Verl\u00e4sslichkeit m\u00fcssten in eine Entscheidung einflie\u00dfen. Dazu haben wir einige Tests durchgef\u00fchrt.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Schreiben-von-Daten\"><\/span>Schreiben von Daten<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Um verschiedene, beliebig komplexe Testszenarien f\u00fcr die Datenspeicherung abzubilden, generiert ein Skript in unserer Testumgebung eine Sequenz von Zufallszahlen. Variierbar sind die Anzahl erzeugter Werte, die Komplexit\u00e4t der Meta-Informationen und der Abstand zwischen zwei Zeitpunkten.\u00a0 Ein Testszenario ist wie folgt aufgebaut:<\/p>\n<p>Es gibt eine Produktionshalle, ausgestattet mit zwei Werkzeugmaschinen.<\/p>\n<p>Jede dieser Werkzeugmaschinen enth\u00e4lt f\u00fcnf Sensorboxen.<\/p>\n<p>Von jeder Sensorbox werden in einem zeitlichen Abstand von einer Sekunde drei Messwerte erfasst (Temperatur, Z\u00e4hler und Luftfeuchtigkeit).<\/p>\n<p>Die Tabelle 2 enth\u00e4lt exemplarische Zeitreihen-Daten einer Werkzeugmaschine:<\/p>\n\n<table id=\"tablepress-25\" class=\"tablepress tablepress-id-25\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Zeitpunkt<\/th><th class=\"column-2\">MaschinenID<\/th><th class=\"column-3\">SensorboxID<\/th><th class=\"column-4\">Temperatur<\/th><th class=\"column-5\">Z\u00e4hler<\/th><th class=\"column-6\">Luftfeuchtigkeit<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">01\/04\/20 10:00:00<\/td><td class=\"column-2\">1<\/td><td class=\"column-3\">1<\/td><td class=\"column-4\">20.0<\/td><td class=\"column-5\">1<\/td><td class=\"column-6\">0.22<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">01\/04\/20 10:00:00<\/td><td class=\"column-2\">1<\/td><td class=\"column-3\">2<\/td><td class=\"column-4\">21.3<\/td><td class=\"column-5\">1<\/td><td class=\"column-6\">0.23<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">...<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">01\/04\/20 10:00:01<\/td><td class=\"column-2\">1<\/td><td class=\"column-3\">1<\/td><td class=\"column-4\">20.5<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">0.22<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">01\/04\/20 10:00:01<\/td><td class=\"column-2\">1<\/td><td class=\"column-3\">2<\/td><td class=\"column-4\">20.9<\/td><td class=\"column-5\">2<\/td><td class=\"column-6\">0.23<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">...<\/td><td class=\"column-2\"><\/td><td class=\"column-3\"><\/td><td class=\"column-4\"><\/td><td class=\"column-5\"><\/td><td class=\"column-6\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-25 from cache -->\n<p>Tabelle 2: Beispiel f\u00fcr erzeugte Zeitreihen-Daten einer Werkzeugmaschine inklusive der Meta-Informationen.<\/p>\n<p>Dieses Szenario haben wir insgesamt in 5 Durchl\u00e4ufen simuliert und dabei den Speicherbedarf f\u00fcr 100.000, 200.000, 500.000, 750.000 und 1.000.000 Eintr\u00e4ge (Zeilen) bestimmt. Die Ergebnisse des Speicherbedarfs sind in Abbildung 3 gegen\u00fcbergestellt.<\/p>\n<figure id=\"attachment_19375\" aria-describedby=\"caption-attachment-19375\" style=\"width: 606px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19375\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild3-300x201.png\" alt=\"\" width=\"606\" height=\"406\" \/><figcaption id=\"caption-attachment-19375\" class=\"wp-caption-text\">Abbildung 3: Speicherbedarf der Datenbanken InfluxDB und TimescaleDB im Szenario mit zwei Werkzeugmaschinen.<\/figcaption><\/figure>\n<p>Es wird deutlich, dass die TimescaleDB im Schnitt mehr Speicher als die influxDB verbraucht &#8211; im beschriebenen Testszenario immerhin durchschnittlich 57% mehr.<\/p>\n<p>Neben dem Speicherbedarf ist auch die zur Verf\u00fcgung stehende Rechenleistung der eingesetzten Hardware ein weiteres Kriterium f\u00fcr die Wahl eines geeigneten Datenbank-Managementsystems. Im Bereich Industrie 4.0 k\u00f6nnen die Ressourcen von einem leistungsstarken Cluster in der Cloud bis hin zu einem einfachen Industrial Edge Device variieren. W\u00e4hrend der Durchf\u00fchrung des obigen Testszenarios hat sich gezeigt, dass die TimescaleDB teilweise bis zu 50% weniger Arbeitsspeicher verwendet und hierdurch &#8211; zumindest w\u00e4hrend unserer Tests &#8211; bez\u00fcglich Out-of-Memory-Fehlern beobachtbar weniger anf\u00e4llig ist. Nat\u00fcrlich k\u00f6nnen die entsprechenden Ressourcen einfach erh\u00f6ht und dieses Kriterium somit unn\u00f6tig gemacht werden. Besteht aber eine wie zuvor erw\u00e4hnte Limitierung der Rechenleistung, muss dieses Kriterium unbedingt in die Auswahl einer Datenbank mit einflie\u00dfen.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Lesen-von-Daten\"><\/span>Lesen von Daten<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Wie bereits im Abschnitt funktionale Merkmale beschrieben, sollten die Abfragesprachen die Anforderungen an die M\u00e4chtigkeit des Sprachumfangs erf\u00fcllen &#8211; abgeleitet vom jeweiligen Anwendungszweck. Als weiteres Kriterium spielt die Abfragezeit eine gro\u00dfe Rolle. Wie lange braucht beispielsweise die Datenbank um eine Tabelle vom Umfang \\(N\\) mit bestimmter Komplexit\u00e4t \\(K\\) zu aggregieren? Um die beiden Datenbank-Managementsysteme in diesem Punkt zu testen, haben wir aufbauend auf den erzeugten Daten aus dem vorherigen Testszenario zwei exemplarische Abfragen geschrieben. Die erste Abfrage liefert die durchschnittlichen Messwerte f\u00fcr alle Maschinen ID und Sensor ID Tupel \u00fcber den gesamten Erfassungszeitraum. Die zweite Abfrage baut auf der ersten Abfrage auf und ist um ein Clustering in f\u00fcnf Minuten Intervalle erweitert. Der Vergleich der gemessenen Abfragezeiten von TimescaleDB und InfluxDB hat gezeigt, dass sich diese im Durchschnitt nicht bemerkbar voneinander unterscheiden.<\/p>\n<figure id=\"attachment_19376\" aria-describedby=\"caption-attachment-19376\" style=\"width: 607px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-19376\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/07\/DB_Bild4-300x202.png\" alt=\"\" width=\"607\" height=\"409\" \/><figcaption id=\"caption-attachment-19376\" class=\"wp-caption-text\">Abbildung 4: Abfragezeiten in Sekunden f\u00fcr die beiden durchgef\u00fchrten Abfragen (1 und 2).<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Zusammenfassung\"><\/span>Zusammenfassung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Betrachten wir noch einmal die gesamte Evaluierung, k\u00f6nnen wir zusammenfassend sagen:<\/p>\n<p><span style=\"color: #003366;\"><b>Flexibilit\u00e4t<\/b><\/span><\/p>\n<ul>\n<li>F\u00fcr das einfache Ablegen von (zeitabh\u00e4ngigen) Messreihen ist die InfluxDB eine einfache M\u00f6glichkeit, ohne hohen Aufwand f\u00fcr ein relationales Design.<\/li>\n<li>Fallen aber neben den einfachen Messreihen komplexere Daten und Meta-Informationen an, sollte f\u00fcr eine bessere Strukturierung zu einer L\u00f6sung wie der TimescaleDB gegriffen werden.<\/li>\n<\/ul>\n<p><span style=\"color: #003366;\"><b>Abfragesprachen<\/b><\/span><\/p>\n<ul>\n<li>InfluxDB bietet hier durch die Abfragesprache Flux ein m\u00e4chtiges Werkzeug f\u00fcr Abfragen.\u00a0 Jedoch ist der m\u00f6gliche Mehraufwand f\u00fcr das Lernen der Sprache zu ber\u00fccksichtigen.<\/li>\n<li>Anders bei der TimescaleDB. Diese kommt mit der klassischen Sprache SQL, welche vielen Entwickler:innen und Data Scientists bekannt ist und dadurch einen schnellen Einstieg erm\u00f6glicht. Der Sprachumfang wird durch spezifische Funktionen f\u00fcr die Analyse von Zeitreihen erg\u00e4nzt.<\/li>\n<\/ul>\n<p><span style=\"color: #003366;\"><b>Arbeitsspeicher, Datenspeicher und Performance<\/b><\/span><\/p>\n<ul>\n<li>TimescaleDB verbraucht im Vergleich zu InfluxDB weniger Arbeitsspeicher. Hierdurch ist auch ein Einsatz auf schw\u00e4cheren Ger\u00e4ten (Edge-Devices, Embedded Systems, \u2026) m\u00f6glich.<\/li>\n<li>TimescaleDB verbraucht gegen\u00fcber InfluxDB in den Test im Durchschnitt 57% mehr Datenspeicher.<\/li>\n<li>InfluxDB und TimescaleDB unterscheiden sich zeitlich bei der Durchf\u00fchrung von Abfragen nicht merklich.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>Die Inhalte dieser Arbeit stammen aus dem Projekt <a href=\"https:\/\/www.interaktive-technologien.de\/projekte\/kosmos\">KOSMoS<\/a> \u2013 Kollaborative Smart Contracting Plattform f\u00fcr digitale Wertsch\u00f6pfungsnetze. Dieses Forschungs- und Entwicklungsprojekt wird mit Mitteln des Bundesministeriums f\u00fcr Bildung und Forschung (BMBF) im Programm \u201eInnovationen f\u00fcr die Produktion, Dienstleistung und Arbeit von morgen\u201c (F\u00f6rderkennzeichen 02P17D026) gef\u00f6rdert und vom Projekttr\u00e4ger Karlsruhe (PTKA) betreut. Die Verantwortung f\u00fcr den Inhalt dieser Ver\u00f6ffentlichung liegt bei den Autor:innen.<\/p>\n<p>&nbsp;<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Quellen<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>[1] <a href=\"https:\/\/blog.timescale.com\/blog\/timescaledb-vs-influxdb-for-time-series-data-timescale-influx-sql-nosql-36489299877\/\">https:\/\/blog.timescale.com\/blog\/timescaledb-vs-influxdb-for-time-series-data-timescale-influx-sql-nosql-36489299877\/<\/a>, aufgerufen am 29.7.2020<\/p>\n<p>[2] <a href=\"https:\/\/blog.timescale.com\/blog\/sql-vs-flux-influxdb-query-language-time-series-database-290977a01a8a\/\">https:\/\/blog.timescale.com\/blog\/sql-vs-flux-influxdb-query-language-time-series-database-290977a01a8a\/<\/a>, aufgerufen am 29.7.2020<\/p>\n<p>[3] <a href=\"https:\/\/db-engines.com\/de\/system\/InfluxDB%3BTimescaleDB\">https:\/\/db-engines.com\/de\/system\/InfluxDB%3BTimescaleDB<\/a>, aufgerufen am 29.7.2020<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Rahmen des Forschungsprojekts KOSMoS entwickelt inovex zusammen mit acht Projektpartnern eine Plattform f\u00fcr die unternehmens\u00fcbergreifende Vernetzung von Produktions- und Prozessdaten zur Integration neuer Datenprodukte und Gesch\u00e4ftsmodelle. Eine technologische Fragestellung stellt die Wahl einer geeigneten Zeitreihen-Datenbank dar, die es erlaubt, hochfrequente Maschinendaten effizient zu speichern und f\u00fcr analytische Zwecke einfach verf\u00fcgbar zu machen, dar. In [&hellip;]<\/p>\n","protected":false},"author":221,"featured_media":19408,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[74],"service":[712],"coauthors":[{"id":221,"display_name":"Michael Schneider","user_nicename":"mschneider"}],"class_list":["post-19372","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-iot","service-internet-of-things-iot"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT - inovex GmbH<\/title>\n<meta name=\"description\" content=\"In diesem Artikel diskutieren wir unsere Erfahrungen mit den zwei popul\u00e4ren Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"In diesem Artikel diskutieren wir unsere Erfahrungen mit den zwei popul\u00e4ren Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-04T06:02:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-17T06:59:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michael Schneider\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild-1024x576.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Schneider\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Michael Schneider\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/\"},\"author\":{\"name\":\"Michael Schneider\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/person\/004e8b1c7c764155aeef7f57f87303b7\"},\"headline\":\"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT\",\"datePublished\":\"2020-08-04T06:02:57+00:00\",\"dateModified\":\"2025-12-17T06:59:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/\"},\"wordCount\":1772,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png\",\"keywords\":[\"IoT\"],\"articleSection\":[\"Analytics\",\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/\",\"url\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/\",\"name\":\"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png\",\"datePublished\":\"2020-08-04T06:02:57+00:00\",\"dateModified\":\"2025-12-17T06:59:17+00:00\",\"description\":\"In diesem Artikel diskutieren wir unsere Erfahrungen mit den zwei popul\u00e4ren Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage\",\"url\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png\",\"contentUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png\",\"width\":1920,\"height\":1080,\"caption\":\"Logos of influx and timescale in front of a graph\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.inovex.de\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.inovex.de\/de\/#website\",\"url\":\"https:\/\/www.inovex.de\/de\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.inovex.de\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.inovex.de\/de\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\/\/www.inovex.de\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/inovexde\",\"https:\/\/x.com\/inovexgmbh\",\"https:\/\/www.instagram.com\/inovexlife\/\",\"https:\/\/www.linkedin.com\/company\/inovex\",\"https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/person\/004e8b1c7c764155aeef7f57f87303b7\",\"name\":\"Michael Schneider\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/www.inovex.de\/de\/#\/schema\/person\/image\/b754f64cbeba13c38ef1fba8059c2f3f\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/523b41f244ad63c3fc63e9e01c00c55abc137e15c5e028bb73f5fcf421faa2bc?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/523b41f244ad63c3fc63e9e01c00c55abc137e15c5e028bb73f5fcf421faa2bc?s=96&d=retro&r=g\",\"caption\":\"Michael Schneider\"},\"url\":\"https:\/\/www.inovex.de\/de\/blog\/author\/mschneider\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT - inovex GmbH","description":"In diesem Artikel diskutieren wir unsere Erfahrungen mit den zwei popul\u00e4ren Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/","og_locale":"de_DE","og_type":"article","og_title":"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT - inovex GmbH","og_description":"In diesem Artikel diskutieren wir unsere Erfahrungen mit den zwei popul\u00e4ren Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.","og_url":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2020-08-04T06:02:57+00:00","article_modified_time":"2025-12-17T06:59:17+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png","type":"image\/png"}],"author":"Michael Schneider","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild-1024x576.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Michael Schneider","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten","Written by":"Michael Schneider"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/"},"author":{"name":"Michael Schneider","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/004e8b1c7c764155aeef7f57f87303b7"},"headline":"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT","datePublished":"2020-08-04T06:02:57+00:00","dateModified":"2025-12-17T06:59:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/"},"wordCount":1772,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png","keywords":["IoT"],"articleSection":["Analytics","General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/","url":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/","name":"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png","datePublished":"2020-08-04T06:02:57+00:00","dateModified":"2025-12-17T06:59:17+00:00","description":"In diesem Artikel diskutieren wir unsere Erfahrungen mit den zwei popul\u00e4ren Open-Source-Zeitreihen-Datenbanken TimescaleDB und InfluxDB.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2020\/08\/timescale-vs-influx-db-artikelbild.png","width":1920,"height":1080,"caption":"Logos of influx and timescale in front of a graph"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/timescaledb-vs-influxdb-zeitreihen-iiot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"TimescaleDB vs. influxDB: Zeitreihendatenbanken f\u00fcr das IIoT"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/004e8b1c7c764155aeef7f57f87303b7","name":"Michael Schneider","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/image\/b754f64cbeba13c38ef1fba8059c2f3f","url":"https:\/\/secure.gravatar.com\/avatar\/523b41f244ad63c3fc63e9e01c00c55abc137e15c5e028bb73f5fcf421faa2bc?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/523b41f244ad63c3fc63e9e01c00c55abc137e15c5e028bb73f5fcf421faa2bc?s=96&d=retro&r=g","caption":"Michael Schneider"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/mschneider\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/19372","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/221"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=19372"}],"version-history":[{"count":5,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/19372\/revisions"}],"predecessor-version":[{"id":65465,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/19372\/revisions\/65465"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/19408"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=19372"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=19372"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=19372"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=19372"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}