Michael Simons Neo4j

„Die aufgeführten Beispiele eigenen sich alle, um initiale Datensätze zu laden. Falls die Möglichkeiten wider Erwarten für Ihren Anwendungsfall nicht ausreichen, können Sie zum Beispiel den Neo4j-Treiber für Ihre bevorzugte Programmiersprache einsetzen, um aus Ihrer Anwendung Daten zu importieren. Da dieser Vorgang natürlich dann einen Schritt weiter von der Datenbank entfernt ist, ist er tendenziell langsamer.“

Nachdem Sie im vorherigen Teil dieser Serie Neo4j und einige sanfte Grundlagen der Graphentheorie kennen gelernt haben, möchte ich Ihnen im zweiten Teil zeigen, wie Sie Neo4j mit Daten befüllen können. Bestands- und Bewegungsdaten entstehen in der Regel durch die Benutzung von Anwendungen, die mit einer Datenbank interagieren. Stammdaten werden jedoch oftmals initial geladen, aggregiert oder in anderer Art und Weise angereichert. Neo4j bietet – mit oder ohne externe Werkzeuge – eine Vielzahl von Möglichkeiten, Daten zu laden und als Graph zu speichern.

Artikelserie

  • Teil 1: Anwendungsentwicklung auf Basis von Neo4j im Spring-Ökosystem
  • Teil 2: Integration verschiedener Datentypen
  • Teil 3: Möglichkeiten, mit Neo4j zu kommunizieren

Integration verschiedener Datenquellen

Die Abschnitte zum Laden von Daten aus relationalen Datenbanken sind natürlich nur relevant, wenn Sie bereits eine relationale Datenbank mit relevanten Daten in Betrieb haben. Ist das nicht der Fall und möchten Sie einfach nur die Beispiele ausprobieren, können Sie zum Beispiel meine PostgreSQL-Datenbank mit musikalischen Statistiken aus bootiful-music oder aber auch die Sakila Sample Database testen. Ich habe in den Repositorys meines Spring-Boot-Buchs eine PostgreSQL-Variante. Weitere Ports finden Sie auf zum Beispiel auf den jOOQ-Seiten der Data Geekery: The Sakila Database.

Einfache Migration von relationalen Datenbanken mit Neo4j-ETL

Im ersten Teil dieser Serie haben Sie bereits die Neo4j-Desktop-Distribution kennen gelernt. Über die Desktopoberfläche können Sie das Neo4j-ETL-Werkzeug installieren. ETL steht für Extract, Transform and Load. Neo4j-ETL kann über standardkonforme JDBC-Treiber mit vielen relationalen Datenbanken interagieren und Daten extrahieren. Wechseln Sie über die Schaltfläche Graph Applications zu den installierten Anwendungen für Graphen (Abb. 1):

Abb. 1: Neo4j-ETL-Werkzeug installieren

Abb. 1: Neo4j-ETL-Werkzeug installieren

Tragen Sie im Feld Install Graph Application den URL r.neo4j.com/neo4j-etl-app ein, um das Neo4j-ETL-Werkzeug zu installieren. Über die Schaltfläche Add Application fügen Sie das Werkzeug anschließend Ihrem Projekt hinzu. Starten Sie nun die Datenbank und anschließend das ETL-Werkzeug (Abb. 2):

Abb. 2: Neo4j-ETL-Werkzeug

Abb. 2: Neo4j-ETL-Werkzeug

Über die Schaltfläche Add connection konfigurieren Sie die Verbindung zur relationalen Datenbank. Der Graph des Projekts ist bereits vorab ausgewählt.

Neo4j liefert zusammen mit dem ETL-Werkzeug die JDBC-Treiber einiger bekannter Datenbanken mit aus (Abb. 3). Im Beispiel habe ich der Einfachheit halber den PostgreSQL-Treiber genutzt. Über den Typ jdbc haben Sie die Möglichkeit, eigene JAR-Dateien mit dem passenden Treiber anzugeben. Oracles JDBC-Treiber ist beispielsweise einer dieser Kandidaten.

Abb. 3: Konfiguration von Neo4j-ETL

Abb. 3: Konfiguration von Neo4j-ETL

Nach erfolgreichem Test der Verbindung können Sie mit der Erstellung der Abbildungsregeln fortfahren.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Java Magazin 8.19 - "Service Mesh"

Alle Infos zum Heft
579897961Teil 2: Integration verschiedener Datentypen mit Neo4j
X
- Gib Deinen Standort ein -
- or -