sql >> Database teknologi >  >> RDS >> Mysql

Neo4j - Importer data fra en CSV-fil ved hjælp af Cypher

Du kan importere data fra en CSV-fil (Comma Separated Values) til en Neo4j-database. For at gøre dette skal du bruge LOAD CSV klausul.

At være i stand til at indlæse CSV-filer i Neo4j gør det nemt at importere data fra en anden databasemodel (f.eks. en relationsdatabase).

Med Neo4j kan du indlæse CSV-filer fra en lokal eller ekstern URL.

For at få adgang til en fil, der er gemt lokalt (på databaseserveren), skal du bruge en file:/// URL. Ellers kan du importere fjernfiler ved hjælp af en hvilken som helst af HTTPS-, HTTP- og FTP-protokollerne.

Indlæs en CSV-fil

Lad os indlæse en CSV-fil kaldet genres.csv ved hjælp af HTTP-protokollen. Det er ikke en stor fil – den indeholder en liste over 115 musikgenrer, så den vil skabe 115 noder (og 230 egenskaber).

Denne fil er gemt på Quackit.com, så du kan køre denne kode fra din Neo4j-browser, og den bør importeres direkte til din database (forudsat at du har forbindelse til internettet).

Du kan også downloade filen her:genres.csv

LOAD CSV FROM 'https://www.quackit.com/neo4j/tutorial/genres.csv' AS line
CREATE (:Genre { GenreId: line[0], Name: line[1]})

Du kan udelade visse felter fra CSV-filen, hvis det kræves. For eksempel, hvis du ikke ønsker, at det første felt skal importeres til databasen, kan du blot udelade GenreId: line[0], fra ovenstående kode.

Kørsel af ovenstående erklæring skulle give følgende succesmeddelelse:

Du kan følge det op med en forespørgsel for at se de nyoprettede noder:

MATCH (n:Genre) RETURN n

Hvilket skulle resultere i, at noderne er spredt rundt i datavisualiseringsrammen:

Importer en CSV-fil, der indeholder overskrifter

Den tidligere CSV-fil indeholdt ingen overskrifter. Hvis CSV-filen indeholder overskrifter, kan du bruge WITH HEADERS .

Ved at bruge denne metode kan du også referere til hvert felt ved deres kolonne-/overskriftsnavn.

Vi har endnu en CSV-fil, denne gang med overskrifter. Denne fil indeholder en liste over albumnumre.

Igen, denne er ikke en stor fil – den indeholder en liste med 32 spor, så den vil skabe 32 noder (og 96 egenskaber).

Denne fil er også gemt på Quackit.com, så du kan køre denne kode fra din Neo4j browser, og den bør importeres direkte til din database (forudsat at du er forbundet til internettet).

Du kan også downloade filen her:tracks.csv

LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

Dette skulle give følgende succesmeddelelse:

Følges op med en forespørgsel for at se de nyoprettede noder:

MATCH (n:Track) RETURN n

Hvilket skulle resultere i de nye noder spredt rundt i datavisualiseringsrammen.

Klik på Rækker ikon for at se hver node og dens tre egenskaber:

Tilpasset feltafgrænser

Du kan angive en brugerdefineret feltafgrænser, hvis det kræves. For eksempel kan du angive et semikolon i stedet for et komma, hvis det er sådan CSV-filen er formateret.

For at gøre dette skal du blot tilføje FIELDTERMINATOR klausul til erklæringen. Sådan:

LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line FIELDTERMINATOR ';'
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

Import af store filer

Hvis du vil importere en fil med mange data, vises PERODIC COMMIT klausul kan være praktisk.

Brug af PERIODIC COMMIT instruerer Neo4j til at begå dataene efter et bestemt antal rækker. Dette reducerer hukommelsesomkostningerne for transaktionstilstanden.

Standarden er 1000 rækker, så dataene vil blive forpligtet for hver tusinde række.

For at bruge PERIODIC COMMIT bare indsæt USING PERIODIC COMMIT i begyndelsen af ​​sætningen (før LOAD CSV )

Her er et eksempel:

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

Indstilling af frekvensen af ​​periodiske forpligtelser

Du kan også ændre satsen fra 1000 række standard til et andet tal. Du skal blot tilføje nummeret efter USING PERIODIC COMMIT :

Sådan:

USING PERIODIC COMMIT 800
LOAD CSV WITH HEADERS FROM 'https://www.quackit.com/neo4j/tutorial/tracks.csv' AS line
CREATE (:Track { TrackId: line.Id, Name: line.Track, Length: line.Length})

CSV-format/krav

Her er nogle oplysninger om, hvordan CSV-filen skal formateres, når du bruger LOAD CSV :

  • Tegnkodningen skal være UTF-8.
  • Slutlinjens afslutning er systemafhængig, f.eks. \n på Unix eller \r\n på Windows.
  • Afslutningen skal være et komma , medmindre andet er angivet ved hjælp af FIELDTERMINATOR mulighed.
  • Tegnet for strengcitat er det dobbelte anførselstegn " (disse fjernes, når dataene indlæses).
  • Alle tegn, der skal escapes, kan escapes med omvendt skråstreg \ Karakter.
  • LOAD CSV understøtter ressourcer komprimeret med gzip, Deflate, samt ZIP-arkiver.

  1. SQLAlchemy deklarativ:definere triggere og indekser (Postgres 9)

  2. Sådan ændres tekst til små bogstaver i SQL

  3. WordPress MySQL SQL-forespørgselsfejl i WPDB-klassen

  4. 4 out-of-the-box SQL-datakonverteringsmetoder og brugssager