本地文件以file:///为前缀,必须在指定文件夹内才能进行导入
在mac电脑上如果以默认路径安装为/usr/local/neo4j-community-4.2.1/import
file directly placed in import directory (import/data.csv)
LOAD CSV FROM “file:///data.csv”

将CSV数据存储入Neo4j

目标:本文显示了将CSv数据存入Neo4j的几种不同方法和在此过程中可能出现的问题的解答。
前提条件:在引入数据之前,应了解什么是图数据库以及怎样创建一个属性图数据模型、Cypher语言基础。

引入CSV文件的方法:

有多种不同方式能够将CSV数据存入Neo4j。
1.LOAD CSV Cypher命令:可处理小中型数据集(最多10million条)
2.Neo4j-admin 大量数据引入工具:直接加载大量数据集的有效命令行工具
3.Kettle引入工具:映射和执行数据处理流的步骤,适用于大数据集

LOAD CSV Cypher命令

LOAD CSV是一句Cypher查询语句,它不仅是一个数据输入机制,还将许多方面结合到一个操作中。

  1. 支持从URI中加载/输入数据
  2. 将输入数据直接映射到复杂的图/域结构
  3. 处理数据转换 支持复杂计算
  4. 创建或合并(merge)实体、关系和结构

*为了更好的控制,可以在cypher-shell中运行LOAD CSV命令而非在浏览器中运行。

读取CSV文件

LOAD CSV可以处理本地和远程文件。
需要在开头加上file:///以指明本地文件。Neo4j默认本地文件只能从Neo4j import目录中被读取,该目录的位置取决于使用的操作系统。在mac操作系统中该位置是/import
Neo4j文件夹的位置在/usr/local/neo4j-community-4.2.1
在终端的启动命令cd /usr/local/neo4j-community-4.2.1/bin ./neo4j start

示例:

//Example 1 - file directly placed in import directory
(import/data.csv) LOAD CSV FROM “file:///data.csv” //Example 2 -
file placed in subdirectory within import directory
(import/northwind/customers.csv) LOAD CSV FROM
“file:///northwind/customers.csv”

网页托管文件可以由URL指明,如https://host/path/data.csv。
示例:

//Example 1 - website LOAD CSV FROM
‘https://data.neo4j.com/northwind/customers.csv’ //Example 2 - Google
LOAD CSV WITH HEADERS FROM
‘https://docs.google.com/spreadsheets/d/’

需注意的点:
  1. 所有csv文件中的数据都以string读入,需要用toInteger( ),toFloat( ),spilt( )等函数对值进行转换
  2. 注意Cypher导入语句是否有拼写错误。标签、属性名、关系类型和变量区分大小写。
  3. 尽可能在load前完成复杂数据处理

注意:Neo4j不存储空值

将数据从关系型数据库导入neo4j的主要工具
  1. LOAD CSV 最简单的一种方式,需要csv形式的独立实体表和关联表
  2. APOC Awesome Procedures on Cypher 扩展库,提供通用过程和函数,适用复杂数据
  3. ETL Tool 内置的UI工具,通过JDBC连接将关系转换为图,允许大数据集的批量数据导入