IoT

Design für das Internet der Dinge

Agustin Pelaez
· 3 Minuten Lesezeit
Per E-Mail versenden

Wenn Sie darüber nachdenken, eine ideale Datenstruktur für Ihre Internet-of-Things-Anwendung zu entwerfen, dann sollten Sie Folgendes tun: Lassen Sie es lieber.

Wie sich herausstellt, erfordert das Internet der Dinge ein hohes Maß an Flexibilität. Warum? Weil Millionen – wenn nicht Milliarden – heterogener Objekte auf unvorhersehbare Weise miteinander interagieren werden. Die strukturierten und starren Tabellen traditioneller Datenbanken helfen uns nicht weiter, da sie vordefinierte Eigenschaften und Tabellen voraussetzen, die wir wiederum nicht vorhersagen können.

Um zu verstehen, warum das wichtig ist, betrachten wir ein Beispiel aus dem Bereich Wassermanagement.

Das Problem

Nehmen wir an, wir möchten den Wasserstand in einer großen Anzahl von Brunnen messen. Eine vereinfachte Datenarchitektur für diese Anwendung sähe folgendermaßen aus:

Internet der Dinge

Das sieht einwandfrei aus und sollte mit einer relationalen Datenbank perfekt funktionieren. Doch dann, zwei Jahre nachdem das System in Betrieb genommen wurde, hat jemand eine Idee:

„Hey, jetzt, wo wir diese neuen internetfähigen Dieselgeneratoren gekauft haben, um die Wasserpumpen mit Strom zu versorgen, lasst uns mal ihre Live-Daten ansehen!““.

Um diese Änderung vorzunehmen, müssten wir eine neue Tabelle mit dem Namen „Kraftwerke“ und eine neue Spalte in der Tabelle „Brunnen“ hinzufügen, die unten rot markiert ist:

Artikeldaten2

In einer relationalen Datenbank würde diese Änderung jedoch erfordern, dass wir alle Tabellenzeilen neu schreiben, sodass sie einen Wert in der neuen Spalte enthalten. Bei zwei Jahren an historischen Daten könnte dies einige Stunden dauern und die Datenbank währenddessen blockieren.

Können Sie sich dieses Vorgehen bei jeder zukünftigen Änderung vorstellen? Wie wirkt sich das auf die Stabilität, die Verfügbarkeit und den Bedarf an technischem Personal des Systems aus?

Die Lösung

Eine interessante Methode zur Verarbeitung IoT -Daten ist der dokumentenorientierte Ansatz. Anstelle von festen Tabellen, Spalten und Zeilen verwendet man Dokumente, die jedes Objekt beschreiben. Man kann sich das wie Tausende von herumliegenden Blättern (Dokumenten) vorstellen, anstatt sie ordentlich in Ordnern in verschiedenen Schränken zu ordnen.

So kompliziert es auch klingen mag, diese Dokumente besitzen kein vordefiniertes Schema wie relationale Datenbanken, was ideal für heutige und zukünftige IoT Anwendungen ist. Dadurch lassen sich die Daten auch auf mehrere Server verteilen, was die Cloud-Kompatibilität erhöht.

Um auf unser Beispiel zurückzukommen: Die Daten zu jedem Brunnen werden nun in einem Dokument und nicht mehr in einer Tabelle gespeichert

Artikeldaten3

Wie Sie sehen können, haben wir alle Eigenschaften des Brunnens in einem einzigen Dokument zusammengefasst, unabhängig von den Beziehungen zwischen dem Brunnen (Wasserstand, Niederschlag, Luftfeuchtigkeit), seiner Umgebung (Stadt, Land) und dem Stromerzeuger (Öldruck, Energieverbrauch usw.).

Diese Vereinfachung ermöglicht zukünftige Änderungen der Dokumenteigenschaften.

Wie lässt sich das in der Praxis umsetzen?

Bei Ubidots war es unsere Priorität, ein flexibles Datenschema anzubieten und es unseren Nutzern über eine RESTful API (und wir verwenden dafür MongoDB

Wir verfügen über ein Basisschema, das mit den meisten IoT Anwendungen kompatibel ist:

  • Datenquellen Variablen enthalten
  • Variablen Werte enthalten
  • Die Werte sind mit einem Zeitstempel versehene Datenpunkte, die die Sensorinformationen enthalten.
Basisschema

Benutzer können aber auch zusätzliche Attribute und Eigenschaften angeben, um ihren Bedürfnissen gerecht zu werden. In unserem Beispiel könnten dies zusätzliche Informationen zu jeder Datenquelle , Variable oder jedem Wert :

zusätzliche Attribute

Es ist erwähnenswert, dass die letzten Werte über die Zeit gespeichert werden, sodass ihre historischen Spuren erhalten bleiben.

In unserer Dokumentation erfahren Sie, wie Sie Ihren Daten solchen Kontext hinzufügen können:

Zusammenfassend lässt sich sagen:

Es gibt eine Vielzahl von IoT Anwendungen, die jeweils unterschiedliche Datenschemata erfordern. In diesem Artikel haben wir dokumentenorientierte Datenbanken als gute Alternative für zukünftige IoT Entwicklungen untersucht und erläutert, wie Ubidots diese unterstützen kann.

Haben Sie eine IoT Anwendung im Sinn? Melden Sie sich an und entwickeln Sie noch heute Ihre eigenen Anwendungen!