Übersicht und Vergleich: Datenbankoptionen für das Internet of Things (IoT)

Bei der Auswahl von Datenbanken für IoT-Anwendungen muss man Kriterien heranziehen, die sich von traditionellen Enterprise-Datenbanken unterscheiden.

Dieser Artikel behandelt

Datenbanksysteme

ÄHNLICHE THEMEN

Anwendungen für das Internet of Things (IoT, Internet der Dinge) stehen einer ganzen Reihe von neuen Herausforderungen gegenüber. Dazu gehören vor allem Datenbank-Management-Systeme (DBMS), die andere Aufgaben bewältigen müssen als herkömmliche Datenbanksysteme.

So müssen Datenbanksysteme im Umfeld von IoT beispielsweise große Datenmengen in Echtzeit oder nahezu Echtzeit verarbeiten können. Außerdem müssen sie Ereignisse verarbeiten, noch während sie ablaufen, anstatt nur in festen Zeitintervallen. Vor allem aber müssen sie mit deutlich größeren Datenmengen umgehen können, als sie normalerweise in Unternehmensanwendungen vorhanden sind.

In anderen Bereichen sind die Anforderungen geringer als im klassischen IT-Umfeld. So verlangt IoT deutlich weniger Datenqualität und Integritätsbedingungen als herkömmliche Anwendungen. Zum Beispiel kann eine Anwendung, die Daten von Fahrzeugen in einem Fuhrpark sammelt, den Verlust von Daten für ein paar Minuten tolerieren und dennoch die grundlegenden Funktionsfähigkeiten der Fahrzeuge überwachen. Obwohl IoT-Sensoren Daten schnell erzeugen, haben sie nicht die gleiche Art von Transaktionen zur Folge, die man in traditionellen Enterprise-Business-Anwendungen findet. Dies verringert die Notwendigkeit für ACID-Transaktionen.

Um IoT-Daten und deren Anforderungen ordnungsgemäß zu behandeln, ist es wichtig, eine dafür geeignete IoT-Datenbank zu finden. Wenn wir jedoch eine solche Datenbank für IoT-Anwendungen auswählen, müssen wir viele Kriterien vergessen, die beim Design von Datenbankanwendungen im operativen Bereich eine Rolle spielen.

Anforderungen für IoT-Datenbanken

Wenn Sie eine Datenbank für eine IoT-Anwendung auswählen, müssen Sie viele Faktoren im Auge behalten. Diese Faktoren stimmen nicht immer mit den Bedürfnissen der üblichen, traditionellen Enterprise-Datenbanken überein. Zu den wichtigsten Überlegungen im IoT-Umfeld zählen Skalierbarkeit, die Fähigkeit, Daten schnell zu speichern, Schema-Flexibilität, Integration mit Analyse-Tools und die Kosten.

Eine Datenbank für IoT-Anwendungen muss skalierbar sein. Idealerweise sind IoT-Datenbanken linear skalierbar. Das bedeutet, dass ein weiterer Server in einem 10-Knoten-Cluster den Datendurchsatz um zehn Prozent erhöht, zwei Server um 20 Prozent und so weiter. IoT-Datenbanken sind in der Regel verteilt organisiert – außer die Anwendung sammelt nur eine geringe Menge an Daten und diese wird auch nicht zunehmen.

Verteilte Datenbanken können auf handelsüblicher Hardware laufen und durch Hinzufügen neuer Server skalieren. So erspart man sich die Migration eines zu klein geratenen Servers auf einen größeren. Verteilte Datenbanken sind besonders gut für Infrastructure as a Service (IaaS) geeignet, da es relativ einfach ist, diese nach Bedarf in ein Datenbank-Cluster hinzuzufügen und wieder daraus zu entfernen.

Eine IoT-Datenbank sollte auch fehlertolerant und hochverfügbar sein. Wenn ein Knoten in dem Datenbank-Cluster ausfällt, sollte er noch in der Lage sein, Lese- und Schreibanfragen anzunehmen. Verteilte Datenbanken erstellen Kopien oder Repliken von Daten und schreiben diese auf mehrere Server. Wenn einer der Server, der einen bestimmten Datensatz speichert, ausfällt, kann einer der anderen Server, der eine Kopie des Datensatzes gespeichert hat, auf die Leseanfrage reagieren.

Schreibaufträge können verschieden gehandhabt werden. Wenn der Server, für den normalerweise eine Schreibanforderung gedacht ist, ausfällt, kann ein anderer Knoten in dem Cluster die Schreibanforderung ersatzweise entgegennehmen. Ist der ausgefallene Server wieder online, kann der Ersatzserver den Auftrag wieder an diesen Zielserver weiterleiten.

Ein weiterer Ansatz zur Sicherstellung einer hohen Verfügbarkeit bei Schreibenaufträgen ist die Nutzung eines verteilten Messaging-Systems. Solche Messaging-Systeme sind beispielsweise Apache Kafka oder Amazon Kinesis, das auf Apache Kafka basiert. Diese Systeme können hochvolumige Schreibaufträge akzeptieren und sie dauerhaft in einem Publish-and-Subscribe-System speichern. Wenn ein Server ausfällt oder das Volumen der Schreibaufträge für die verteilte Datenbank zu hoch ist, um sie in Echtzeit zu speichern, können die Daten in dem Nachrichtensystem zwischengespeichert werden, bis die Datenbank den Rückstand der Daten wieder verarbeiten kann oder zusätzliche Knoten in das Datenbank-Cluster hinzugefügt wurden.

Grundsätzlich sollten IoT-Datenbanken so flexibel sein, wie es die Anwendung erfordert. NoSQL-Datenbanken – insbesondere Schlüssel-Wert-, dokumenten- und spaltenorientierte Datenbanken – können verschiedene Datentypen und Strukturen aufnehmen, ohne vordefinierte, feste Schemata definieren zu müssen. NoSQL-Datenbanken sind eine gute Möglichkeit, wenn eine Organisation mehrere Datentypen verwendet und diese Datentypen sich mit hoher Wahrscheinlichkeit im Laufe der Zeit ändern. In anderen Fällen können Anwendungen, die bestimmte, festgelegte Datensätze sammeln – wie etwa Daten über die Wetterbedingungen – von einem relationalen Modell profitieren. Dazu gehören beispielsweise In-Memory SQL-Datenbanken wie MemSQL.

Eine Datenbank für IoT-Anwendungen unternehmensintern verwalten

Unternehmen, die ihre eigenen Datenbanken intern verwalten möchten, können mit DataStax Cassandra auf eine hoch skalierbare, verteilte NoSQL-Datenbank zurückgreifen. Die spaltenorientierte Datenbank unterstützt flexible, große Tabellenschemata, schreibt schnell und ist auf hohe Skalierbarkeit und Ausfallsicherheit bei verteilten Systemen ausgelegt. Die Daten werden in Schlüssel-Wert-Relationen abgelegt. Das System ist offen dokumentiert und in Java implementiert.

Riak IoT ist ebenfalls ein verteilter, hochskalierbarer Schlüssel-Wert-Speicher, der mit Apache Spark zusammenarbeitet. Die Big-Data-Analytics-Plattform ist für schnelle Lese- und Schreibvorgänge optimiert und ermöglicht vor allem die analytische Verarbeitung von Streams. Für die In-Memory-Analyse lädt der Spark-Konnektor die Daten von Riak zu Spark. Die Ergebnisse können wieder in Riak gespeichert werden. Auch Cassandra funktioniert übrigens zusammen mit Spark sowie anderen Big-Data-Analytics-Plattformen wie Hadoop MapReduce.

OpenTSDB ist eine weitere Open-Source-Datenbank, die zum Speichern, Verwalten und Auswerten besonders großer Datenmengen wie Zeitreihendaten konzipiert ist. Sie ist auf Hadoop und HBase lauffähig. Die Datenbank besteht aus Kommandozeilen-Interfaces und einem Time Series Daemon (TSD). Die TSDs, die für die Verarbeitung aller Datenbankanforderungen verantwortlich sind, werden unabhängig voneinander ausgeführt. Obwohl TSDs HBase verwenden, um Zeitreihendaten zu speichern, haben TSD-Benutzer wenig bis keinen Kontakt mit HBase selbst.

MemSQL ist eine relationale Datenbank, die vollständig kompatibel zu MySQL ist und auf Echtzeit-Daten-Streaming hin optimiert ist. Mit MemSQL können gestreamte Daten, Transaktionen und historische Daten innerhalb derselben Datenbank gehalten werden. Die Datenbank kann auch ohne weitere Konfiguration gut mit Erdbeobachtungsdaten umgehen, die für standortbasierte IoT-Anwendungen nützlich sein können.

Die Grundidee von MemSQL ist die Beschleunigung von Datenoperationen durch zwei Techniken: Die Datenbank läuft komplett im Arbeitsspeicher und SQL-Befehle wandelt die Software in Echtzeit in C++ um. MemSQL unterstützt die Zusammenarbeit mit Hadoop Distributed File System (HDFS) und Apache Spark, sowie anderen Data-Warehousing-Lösungen.

IoT-Datenbank-Optionen aus der Cloud

Unternehmen und Entwickler, die einen verwalteten Datenbankservice bevorzugen, sollten sich mit AWS-Angeboten wie Kinesis Streams und DynamoDB beschäftigen. Kinesis kann eingesetzt werden, um Daten schon dann zu erfassen, während sie noch erzeugt werden. Die so in Echzeit gespeicherten Daten können an die NoSQL-Dokumentendatenbank DynamoDB gesendet werden. Diese arbeitet mit dem Amazon-Elastic-MapReduce-Service zusammen, der Hadoop- und Spark-basierte analytische Dienstleistungen anbietet.

Beispielsweise kann Amazon Kinesis Streams durchgehend Terabytes von Daten pro Stunde von Hunderttausenden von Quellen wie Website-Klick-Streams, finanziellen Transaktionen, Feeds aus sozialen Medien, IT-Protokollen und Standortverfolgungsereignissen erfassen und speichern.

Wenn eine Organisation sich dazu entschließt, mit einem Provider für Database as a Service (DBaaS) zusammenzuarbeiten, sollte die Kostenstruktur sorgfältig geprüft werden. AWS Kinesis Streams werden stundenbasiert abgerechnet. Ab 0,015 US-Dollar pro Stunde lässt sich der Amazon Kinesis-Stream mit einem Dateneingang von einem MB pro Sekunde und einem Datenausgang von zwei MB pro Sekunde nutzen.

Wie für die Daten selbst verwendet Kinesis Streams PUT Payload Units, um den Gesamtverbrauch zu berechnen. Jede Einheit umfasst zwischen einem und 25 KB Daten, so wird zum Beispiel ein zehn KB Datensatz als eine Einheit in Rechnung gestellt, während ein 30 KB Datensatz als zwei in Rechnung gestellt wird. Den Kunden werden 0,014 Dollar pro eine Million Einheiten berechnet.

Bei AWS DynamoDB sind die ersten 25 GB pro Monat und bis zu 25 Schreibkapazitätseinheiten sowie bis zu 25 Lesekapazitätseinheiten kostenlos. Jedes GB danach wird mit 0,25 Dollar pro Monat berechnet. Die voraussichtliche Monatsrechnung lässt sich mit dem Monatsrechner kalkulieren.

Mehr zum Thema Datenbanken:

Drei Optionen für die Migration von Oracle-Datenbanken in die AWS-Cloud.

Microsoft Azure oder AWS: Welche Cloud-Datenbank eignet sich für Sie?

Was man beim Recovery verteilter Datenbanken beachten muss.

Datenbanken in der Cloud: Darauf sollten Unternehmen achten.

Netzwerk-, hierarchische und (nicht-) relationale Datenbankmodelle im Vergleich.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im April 2016 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Datenbanksysteme

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close