19.01.2022 – Kategorie: Fertigungs-IT
Shared-Nothing: So funktionieren Datenbanken für IIoT-Anwendungen
Im IIoT-Umfeld müssen massive Datenmengen erfasst und in Echtzeit ausgewertet werden. Klassische SQL-Datenbanken geraten da schnell an ihre Grenzen. Eine Alternative bieten verteilt arbeitende SQL-Datenbanken, die den dokumentbasierten Shared-Nothing-Ansatz unterstützen und so ihren ursprünglichen Performance-Nachteil gegenüber NoSQL-Datenbanken mehr als ausgleichen.
Shared-Nothing als Lösung? Tagtäglich senden tausende Sensoren Daten im Sekunden- oder Millisekunden-Takt. Ein einzelner Messfühler erzeugt bereits eine Vielzahl an Megabytes, eine Fertigungsanlage mehrere Gigabytes. Manche Unternehmen unterhalten hunderte solcher Fabriken und vernetzen sie miteinander. So entstehen massive Datenmengen in großer Vielfalt.
Datenbanken müssen viel leisten
Datenbanken müssen diese Daten nicht nur erfassen, sondern auch mit relationalen Informationen aus dem ERP, dem MES und anderen Quellen zusammenbringen und in Echtzeit auswerten. Dabei entstehen große Zeitreihen an Daten, die unterschiedlich in Relation zueinander stehen und komplexe Analysen erlauben. Für diese Mischung aus relationalen und Sensor-Daten ist eine spezifische Datenbank gefragt.
Konventionelle Technologien und ihre Schwächen
Viele Unternehmen verwenden klassische relational Database Management Systeme (RDBMS), die meist die Sprache SQL (Structured Query Language) nutzen und Daten über Spalten und Zeilen organisieren. Die Implementierung dieser Systeme erfolgte jedoch lange bevor das IIoT entstand. So eignen sie sich zwar bestens für die Verwaltung von kaufmännischen Daten, stoßen im Industrial IoT mit Milliarden von Sensordaten (JSON) aber an ihre Grenzen, da sie kaum skalierbar und kombinierbar sind.
Eine andere Option sind NoSQL-Datenbanken. Sie können eine hohe Performance bei großen Datenmengen erreichen, auch mit Sensordaten. Sie verzichten auf relationale Modelle und verfügen über flexible Schemata. Die Organisation der Daten erfolgt über Wertepaare oder Objekte. Damit werden sie bei der Transaktionsbearbeitung performant und lassen sich auf verteilten Systemen einsetzen.
Dennoch sollte ihr Einsatz für Anwendungen des industriellen IoT überdacht werden, denn Zeitreihendaten (Timeseries) haben immer die Anforderung, den Kontext über relationale Daten herzustellen. Im IIoT geht es jedoch nicht nur um das Abspeichern von großen Datenmengen und die Umsetzung von linearen Befehlen. Hier kommt es vielmehr darauf an, große Mengen an Timeseries-Daten mit relationalen Daten, Geo-Daten oder nur Text zu verknüpfen, und dann durch Joins, Aggregationen und individuell definierte, analytische Funktionen gemeinsam auszuwerten. Relationale Daten zusammen mit Produktions-/Sensordaten erhalten eine sehr große Bedeutung im industriellen IoT.
Bild: Crate.io
Anfragen auf verfügbare Knoten verteilt
Verteilt arbeitende SQL-Datenbanken mit einem dokumentbasierten, Shared-Nothing-Ansatz kombinieren die relationale SQL-Arbeitsweise mit der Performance, Einfachheit und Skalierbarkeit von reinen NoSQL-Document-Systemen. Sie ermöglichen zudem, das vorhandene SQL-Know-how und auch SQL-Applikationen anzuwenden.
Beim Shared-Nothing-Ansatz werden die Anfragen auf die verfügbaren Knoten verteilt und können parallel abgearbeitet werden. Die Knoten arbeiten autonom und greifen auf die ihnen zur Verfügung stehenden Ressourcen wie Prozessorleistung, Betriebssystem und Arbeitsspeicher zu. Das Ausbalancieren der Workloads geschieht automatisch durch die Datenbank. Diese Parallelisierung ermöglicht eine schnelle, ausfallsichere und einfache Skalierung – bei Bedarf an mehr Rechenleistung werden im Betrieb einfach weitere Knoten hinzugefügt, ohne Aufwand oder Wartezeiten.
Performance-Nachteil ausgleichen durch Shared-Nothing
Durch den Shared-Nothing-Ansatz können SQL-Systeme ihren ursprünglichen Performance-Nachteil gegenüber NoSQL-Datenbanken ausgleichen und übertreffen, und weiterhin mit Relationen und JSON-Dokumenten in einer Tabelle arbeiten: SQL-typische Joins (liefern eine Ergebnistabelle, die Datensätze und Attribute zweier oder mehrerer Ausgangstabellen enthält), Aggregationen (Konsolidierung oder Verdichtung von Werten), Unter-Abfragen (Subselects) und ähnliches lassen sich performant und parallel ausführen.
Deutlich geringere Kosten
Datenbanken, die speziell für den Einsatz in bestimmten Anwendungen entwickelt wurden, bieten neben technischen auch finanzielle Vorteile. Durch die gewählte Architektur, die Indexierung und die Optimierung des Speichermanagements für Maschinen- beziehungsweise IIoT-Daten lassen sich Anwendungen oft mit deutlich geringeren Cloud-Kosten betreiben. Mit CrateDB verringern sich die Kosten häufig um 50-70 Prozent TCO (Total Cost of Ownership), speziell in großer Skalierung (Datenmenge oder Abfragelast). Dies ergibt sich dadurch, dass man nur mehr eine statt zwei bis drei Datenbanken betreiben, warten und sichern muss.
IIoT-Technologie muss jedoch nicht nur hoch performant sein, sondern auch zuverlässig arbeiten. Deswegen sollte auch die Datenbank entsprechende Features bereitstellen, etwa eine automatische Replikation von Daten im Cluster, Selbstheilung bei Server-Ausfall und rollierende Updates der Software.
Shared-Nothing: Spezielle Datenstrukturen bei IIoT-Projekten
Darüber hinaus muss die Datenbank-Technologie mit den Besonderheiten von IIoT-Projekten umgehen können, denn die Struktur der Datenmengen und deren Analyse unterscheidet sich deutlich von gewöhnlichen Anwendungen. Typisch sind Zeitreihenanalysen, die die Entwicklung bestimmter Werte während eines zeitlichen Verlaufs betrachten. Deswegen ist es für die performante Analyse sinnvoll, die Datenbank-Tabellen automatisch nach Zeitintervallen zu aufzuteilen. So kann eine Tabelle auch unlimitiert groß werden, und trotzdem performant reagieren.
Eine weitere Besonderheit bei IoT-Projekten in industriellen Prozessen ist die Bedeutung des Standortes der Gerätschaften, vor allem wenn sich diese bewegen. Dies wird in speziellen Geo-Datentypen (geo_point und geo_shape) gespeichert. Nur wenn die Datenbank für den Umgang mit diesen geeignet ist, sind skalare Funktionen möglich. Für die Ablage großer unstrukturierter Daten, wie Bild- und Audiodateien, ist wiederum die Anbindung von BLOB-Speichern (Binary Large Objects) vorteilhaft.
Auch muss das System die oft in Stapeln gelieferten Analysedaten in Echtzeit aufnehmen können. Die CrateDB löst dies, indem es den Sperr-Overheads von Stapel-Dateien für den Schreibvorgang entfernt. So ist sie eine interessante Alternative für “IIoT at scale”, also im Einsatz des industriellen IoT in hoher Skalierung.
Der Autor Christian Lutz ist Mitgründer und Geschäftsführer von Crate.io.
Lesen Sie auch: Vereinsmitglieder präsentieren ihre Cloud-Lösungen
Teilen Sie die Meldung „Shared-Nothing: So funktionieren Datenbanken für IIoT-Anwendungen“ mit Ihren Kontakten: