Import danych z bazy relacyjnej do Neo4j
Jednym z najprostszych sposobów jest import danych z wykorzystaniem plików csv.
Załóżmy, że mamy bazę relacyjną składającą się z dwóch tabel powiązanych relacją:
1. Eksportujemy dane z bazy relacyjnej do pliku. W MS SQL Server można skorzystać z Wizarda (database -> Tasks -> Export data)
2. W pierwszej kolejności należy załadować dane z tabel będących wierzchołkami grafu – a więc dane z tabeli Pojazd oraz Osoba. Opłaca się także założyć indeksy, gdyż znacznie przyspiesza to pracę:
USING PERIODIC COMMIT 10000 LOAD CSV WITH HEADERS FROM 'file:/d:/temp/Osoba.csv' AS osoba CREATE (:Osoba{Pesel: osoba.Pesel, Imie: osoba.Imie, Nazwisko: osoba.Nazwisko}) CREATE INDEX ON :Osoba(Pesel) USING PERIODIC COMMIT 10000 LOAD CSV WITH HEADERS FROM 'file:/d:/temp/Pojazd.csv' AS pojazd CREATE (:Pojazd{Id: toInt(pojazd.Id), Nazwa: pojazd.Nazwa, Typ: pojazd.Typ}) CREATE INDEX ON :Pojazd(Id)
3. Powiązanie – krawędź – ładujemy wykorzystując zapytanie:
USING PERIODIC COMMIT 10000 LOAD CSV WITH HEADERS FROM "file:/d:/temp/Pojazd.csv" AS Pojazd MATCH (osoba:Osoba { Pesel: Pojazd.Pesel}),(pojazd:Pojazd {Id: toInt(Pojazd.Id)}) CREATE (osoba)-[:OSOBA_POJAZD]->(pojazd)