ArtikelManagement

Neo4j und Oracle: Zusammenspiel zwischen Graphdatenbank und RDBMS

Autor/Redakteur: Stefan Kolmar, Director Field Engineering Europe bei Neo Technology/gg

Oracle ist und bleibt eine tragende Säule für Unternehmensanwendungen. Gleichzeitig benötigen IT-Unternehmen heute Funktionalitäten, die über die Möglichkeiten von Oracle und andere relationale Datenbankmanagementsysteme hinausgehen. Dazu gehören mehr Datenvielfalt, mehr Agilität, höhere Geschwindigkeit und neue Wege, um aus den Zusammenhängen zwischen den Daten Erkenntnisse zu gewinnen.

Entscheidende Vorteile bringt ein gemeinsamer Einsatz von Graphdatenbanken und relationalen Datenbanken. Indem RDBMs von Abfragen entlastet werden, die sich auf vernetzte Daten beziehen, lässt sich die Anwendungsleistung deutlich verbessern. Das ermöglicht mehr Agilität. Bei richtig konzipierter Koexistenz erfolgen so schnelle Traversals (Suchvorgänge) anhand des Graphen, während sich Transaktionsdaten aus dem RDBMS auslesen lassen

Zudem gibt es Szenarien, in denen es einfach Sinn ergibt, relationale Datenbankmanagementsysteme einer Graphdatenbank vorzuziehen und umgekehrt. Oracle eignet sich sehr gut für tabellarische, strukturierte Daten. Doch unstrukturierte, stark vernetzte Daten oder dynamische Daten, wie beispielsweise Hierarchien und Netzwerke, sind besser in einer Graphdatenbank wie zum Beispiel Neo4j aufgehoben.

Migrieren oder synchronisieren?

Neo4j kann mit relationalen Datenbankmanagementsystem wie Oracle auf verschiedene Weise zusammenarbeiten. Welchen Ansatz man wählt, hängt von den spezifischen Aufgaben und Zielen der Anwendungen ab.

Einsatz von Oracle und Neo4j für Ancestry-as-a-Service bei Monsanto

Migrieren eines Teilbereichs der Daten

Wenn Anwendungen bestimmte Fragestellungen aufgrund der Tiefe und Komplexität der Datenbeziehungen nicht effizient beantworten können, empfiehlt es sich, relevante Daten nach Neo4j zu migrieren. Neo4j übernimmt dann die Funktion eines transaktionalen und ACID-kompatiblen Datenspeichers für diesen Teil der Daten. Informationen zu Kunden und Produkten finden sich beispielsweise in Neo4j, während ihre Kennungen sowie die Beziehungen zwischen ihnen in Neo4j abgespeichert sind. Die aufrufende Anwendung fragt dann Neo4j nach den Beziehungen ab und nutzt das Resultset für die Abfrage von Details aus Oracle.
Die Migration der Daten nach Neo4j erfolgt über CSV-Dateien. Hierzu werden Tabellen aus Oracle exportiert und als CSV-Datei in Neo4j importiert. Dabei kommt entweder ein Befehlszeilentool oder die Syntax der Graphabfragesprache Cypher zum Einsatz. Der Vorgang kann manuell oder automatisch mithilfe eines ETL-Tools erfolgen.