Mysql
 sql >> база данни >  >> RDS >> Mysql

Neo4j - Импортиране на данни от CSV файл с помощта на Cypher

Можете да импортирате данни от CSV (стойности, разделени със запетая) файл в база данни Neo4j. За да направите това, използвайте LOAD CSV клауза.

Възможността за зареждане на CSV файлове в Neo4j улеснява импортирането на данни от друг модел на база данни (например релационна база данни).

С Neo4j можете да зареждате CSV файлове от локален или отдалечен URL.

За достъп до файл, съхранен локално (на сървъра на базата данни), използвайте file:/// URL. В противен случай можете да импортирате отдалечени файлове, като използвате всеки от протоколите HTTPS, HTTP и FTP.

Заредете CSV файл

Нека заредим CSV файл, наречен genres.csv използвайки HTTP протокола. Това не е голям файл — съдържа списък от 115 музикални жанра, така че ще създаде 115 възела (и 230 свойства).

Този файл се съхранява на Quackit.com, така че можете да стартирате този код от вашия браузър Neo4j и той трябва да се импортира директно във вашата база данни (ако приемем, че сте свързани с интернет).

Можете също да изтеглите файла тук:genres.csv

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

Можете да пропуснете определени полета от CSV файла, ако е необходимо. Например, ако не искате първото поле да бъде импортирано в базата данни, можете просто да пропуснете GenreId: line[0], от горния код.

Изпълнението на горния оператор трябва да доведе до следното съобщение за успех:

Можете да последвате това със заявка, за да видите новосъздадените възли:

MATCH (n:Genre) RETURN n

Което трябва да доведе до възлите, разпръснати около рамката за визуализация на данни:

Импортирайте CSV файл, съдържащ заглавки

Предишният CSV файл не съдържаше заглавки. Ако CSV файлът съдържа заглавки, можете да използвате WITH HEADERS .

Използването на този метод също ви позволява да препращате всяко поле по името на колоната/заглавката.

Имаме още един CSV файл, този път със заглавки. Този файл съдържа списък с песни от албума.

Отново, този не е голям файл — съдържа списък от 32 песни, така че ще създаде 32 възела (и 96 свойства).

Този файл също се съхранява на Quackit.com, така че можете да стартирате този код от вашия браузър Neo4j и той трябва да се импортира директно във вашата база данни (ако приемем, че сте свързани с интернет).

Можете също да изтеглите файла тук: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})

Това трябва да доведе до следното съобщение за успех:

Следва заявка за преглед на новосъздадените възли:

MATCH (n:Track) RETURN n

Което трябва да доведе до новите възли, разпръснати около рамката за визуализация на данни.

Щракнете върху Редове икона, за да видите всеки възел и неговите три свойства:

Персонализиран разделител на полета

Можете да посочите персонализиран разделител на полета, ако е необходимо. Например, можете да посочите точка и запетая вместо запетая, ако така е форматиран CSV файлът.

За да направите това, просто добавете FIELDTERMINATOR клауза към изявлението. Като това:

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})

Импортиране на големи файлове

Ако ще импортирате файл с много данни, PERODIC COMMIT клаузата може да бъде удобна.

Използване на PERIODIC COMMIT инструктира Neo4j да запише данните след определен брой редове. Това намалява разхода на паметта за състоянието на транзакцията.

По подразбиране е 1000 реда, така че данните ще се записват на всеки хиляда реда.

За да използвате PERIODIC COMMIT просто вмъкнете USING PERIODIC COMMIT в началото на израза (преди LOAD CSV )

Ето един пример:

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})

Задаване на процента на периодичните ангажименти

Можете също да промените скоростта от 1000 реда по подразбиране на друго число. Просто добавете номера след USING PERIODIC COMMIT :

Като това:

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 формат/Изисквания

Ето малко информация за това как CSV файлът трябва да бъде форматиран, когато се използва LOAD CSV :

  • Кодирането на знаците трябва да е UTF-8.
  • Крайната линия зависи от системата, например \n на Unix или \r\n на Windows.
  • Терминаторът трябва да е запетая , освен ако не е посочено друго с помощта на FIELDTERMINATOR опция.
  • Символът за кавичката на низа е двойната кавичка " (те се премахват, когато данните се прочетат).
  • Всички знаци, които трябва да бъдат екранирани, могат да бъдат екранирани с обратна наклонена черта \ характер.
  • LOAD CSV поддържа ресурси, компресирани с gzip, Deflate, както и ZIP архиви.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON_MERGE_PRESERVE() – Обединяване на множество JSON документи в MySQL

  2. mySQL DataSource на Visual Studio 2012

  3. mysqli последното вмъкване на идентификатор

  4. Коя SQL заявка е по-добра, MATCH AGAINST или LIKE?

  5. Максимален брой записи в таблица на база данни на MySQL