Ich werte derzeit mögliche NoSQL-Technologien für meinen Anwendungsfall aus. Ich habe viele Sensordatenprotokolle (mehrere TBs) und möchte die Daten in einer skalierbaren, effizienten Weise analysieren.Grafikdatenbanken für Sensordaten - Wie modelliert man die Beziehung?
Meine Sensordaten enthalten einen Zeitstempel, eine Position und eine Liste von Sensorattributnamen (z. B. "Temperatur") und Sensorattributwert (z. B. 12,9 ° C). Der Speicherort ist jedoch nicht in allen meinen Dateneinträgen vorhanden. Auch die Liste der Attribute pro Eintrag variiert. So ein Protokolleintrag könnten Daten wie folgt enthalten:
- sensor_id: 1
- Ort: lat/lon (Anmerkung: aber nicht immer in jedem Eintrag enthalten)
- Datumzeit: timestamp_of_log_date
- attribute_name1: "attribute_value1"
- attribute_name2: 123123
- attribute_name3: 0,933
- attribute_nameN: "attribute_valueN"
Ich bin kürzlich auf Graphdatenbanken gestoßen und finde das Konzept interessant. Ich bin mir nicht sicher, ob mein Anwendungsfall in einer Diagrammdatenbank angewendet werden sollte, weil Beziehungen zwischen meinen Daten fehlen.
Es gibt einige Möglichkeiten, um eine Beziehung zwischen meinen Sensordaten zu modellieren, aber jetzt kann ich nur denken Sie an den folgenden Beziehungen:
- Datum/Uhrzeit der Einträge Jahr-> Month-> Day-> Stunde-> Minute-> Second
- Lage der Einträge Continent-> Country-> Bundesland-> Stadt-> Straße/PoI
- Sensor ID-> Attributnamen
ich meine Daten am abfragt mit georäumlichen Abfragen, Zeit qu eries und "normale" Attributabfragen (field_x < = 1000).
Noch eine Anmerkung: Wenn ich geospatiale Abfragen ausführe, möchte ich normalerweise weitere Datensätze basierend auf dem Zeitstempel des Datensatzes auslesen, der in der räumlichen Abfrage gefunden wurde. Also im Grunde, wenn meine geospatial Abfrage beendet und einen Datensatz mit Timestamp "25.06.2016-20: 40: 30" zurückgibt, möchte ich auch alle anderen Datensätze, die einen Zeitstempel innerhalb einer Minute für jeden Datensatz in der Geospatial-Abfrage gefunden haben.
Neo4j zum Beispiel ist gut in der Verarbeitung von Geospatial-Abfragen, die eine ziemlich häufige Abfrageart für meine Anwendungsfall ist. Aber wie würde ich meine Daten modellieren? Wie sind meine Knoten mit den anderen Knoten verbunden? Müssen sie überhaupt angeschlossen werden?
Sie können Spatial-Plugin für Neo4j verwenden. https://github.com/neo4j-contrib/spatial – piyush121
Während das Aussehen, dass Sie keine Grafikdatenbank benötigen, um mit diesen Daten zu arbeiten. –
@stdob Ich stimme zu, dass ich sicherlich keine Graphdatenbank benötige, um mit diesen Daten zu arbeiten, aber ist das eine schlechte Idee? – j9dy