Verifizierung und Optimierung einer Graph Datenbank

ein Supper & Supper Use Case

Der Schwerpunkt des Projekts bestand darin, die Graph-Daten für das Training von Machine Learning Modellen zu nutzen. Aus diesem Grund wurden verschiedene Szenarien für Datenexport, -import und automatisierte Verarbeitungspipelines erstellt. In diesem Prozess wurde das gesamte Graph-Schema und die Inhalte gegen die ursprüngliche SQL-Datenbank verglichen und validiert, um zusätzliche Optimierungsansätze abzuleiten. Auch verschiedene Optionen zur Erweiterung des Graph-Schemas mit zusätzlichen Daten für weitere Analysen wurden evaluiert. Insbesondere die Integration von Wetterdaten, die in der SQL-Datenbank nicht abgedeckt wurden, war ein Ziel für dieses Projekt.

Es sollte dabei eine effiziente Möglichkeit geschaffen werden, Daten aus dem Graphen zu extrahieren und über Python- und R-Entwicklungsumgebungen zurückzuschreiben. Somit sollen Machine Learning Modelle dynamisch trainiert und auf die Daten des Graphen angewendet werden.

The neo4j graph is fed by an SQL database and should be used for flexible queries to forward data to development environments.

Für diese Aufgabe wurden hochauflösende mobile Mapping-LiDAR-Scans von zwei deutschen Autobahnen von der Cloud-Vermessung + Planung GmbH zur Verfügung gestellt, die das Straßennetz für die Bayerische Staatsbauverwaltung vermessen hat. Das verwendete Fahrzeug war eine konventionelle MB V-Klasse. Als Messeinheit diente der Trimble MX9 mit eingebauten Riegl-Scannern. Mit diesem Setup wurden sehr hohe Genauigkeiten (+/- 1 cm) und sehr dichte Punktwolken erstellt. Der Scanner erfasste auch Gebäude wie z. B. Brücken rund um die Autobahn und liefert Punktwolken inklusive Intensitätswerten und weiteren Zusatzdaten, die für die Deep-Learning-Aufgabe genutzt werden können.

Eine verallgemeinerte Dokumentation der komplexen Graphenstruktur ist eine Herausforderung. Außerdem mussten Standardabfragen und Aliase für die Entitäten definiert und dokumentiert werden.

  • Verifizierung: Durch den Export von Daten aus der SQL- und der Graph-Datenbank in dasselbe tabellenbasierte Datenformat konnte ein vollständiger Vergleich beider Datenbanken durchgeführt werden. Die Unterschiede wurden bis zu ihrem Kern zurückverfolgt, und es wurden Empfehlungen für Änderungen im Graph-Schema abgeleitet, um sicherzustellen, dass in Zukunft keine Informationen verloren gehen.
  • Abfragen und Integration: Um die Datenextraktion zu vereinheitlichen, wurden Richtlinien für Abfragen zur optimalen Datenextraktion sowie Abfragevorlagen und Standard-Aliase definiert. Als Schnittstelle zu externen Entwicklungsumgebungen wurde ein Python-BOLT-Treiber in einer Pipeline für maschinelles Lernen implementiert.

In diesem Projekt wurde unter anderem ein Empfehlungskatalog erstellt:

  • Änderungen der Syntax und des Datentyps
  • Schema-Abgleiche zur Optimierung häufiger Abfragen zur Leistungssteigerung
  • Datenbankoptimierungen
  • Korrekturen möglicher Schema-Deadlocks
  • Integration von Wetterdaten und weiteren Datenquellen.

Als Schnittstelle zu Entwicklungsumgebungen wurde eine Python / R-Pipeline aufgebaut. Durch Integration in Analysewerkzeuge kann der Graph bei Bedarf abgefragt werden, so dass die Ergebnisse für das Training von Machine Learning Modellen genutzt und direkt auf weitere Daten angewendet werden können.

Kategorie

Technologien

Neo4j
SQL
R
Python

Download

Social Sharing

Weitere Use Cases dieser Kategorie

2023-06-20T14:01:18+02:00

Automatisierte und nutzerfreundliche Pipeline zur Analyse landwirtschaftlicher Feldversuche ein Supper & Supper Use Case lesen