neo4j-admin是Neo4j官方提供的命令行工具,适用于全新数据库初始化或全量数据迁移,支持CSV、JSON等格式。
步骤:
nodes.csv、relationships.csv)。节点文件需包含:ID(唯一标识)、:LABEL(标签)和属性(如name:string);关系文件需包含:START_ID(起始节点ID)、:END_ID(结束节点ID)、:TYPE(关系类型)和属性(如since:int)。neo4j-admin import --nodes=nodes.csv --relationships=relationships.csv --database=neo4j
可选参数:--create-indexes=true(导入后自动创建索引,提升查询性能)。LOAD CSV是Neo4j内置的Cypher命令,用于增量导入CSV文件(如每日新增数据),无需停止服务。
步骤:
import目录读取文件(Docker环境中为/var/lib/neo4j/import)。LOAD CSV WITH HEADERS FROM 'file:///nodes.csv' AS row
CREATE (:Person {id: toInteger(row.id), name: row.name, age: toInteger(row.age)});
LOAD CSV WITH HEADERS FROM 'file:///relationships.csv' AS row
MATCH (a:Person {id: toInteger(row.startId)}), (b:Person {id: toInteger(row.endId)})
CREATE (a)-[:FRIENDS {since: toInteger(row.since)}]->(b);
关键参数:WITH HEADERS(表示CSV第一行为标题行)、file:///(指向import目录)。APOC(Awesome Procedures On Cypher)是Neo4j的扩展插件,提供apoc.import系列过程,支持**CSV、JSON、XML、图文件(GraphML、GEXF)**等多种格式,功能更灵活。
步骤:
plugins目录,修改neo4j.conf(添加dbms.security.procedures.unrestricted=apoc.*),重启Neo4j。CALL apoc.import.csv(
["file:///nodes.csv", "Person:ID,name,age:int"],
["file:///relationships.csv", ":START_ID,:END_ID,:TYPE,since:int"],
{database: "neo4j"}
);
CALL apoc.import.json("file:///data.json", {database: "neo4j"});
优势:支持复杂数据结构(如嵌套JSON)、批量操作,且可自定义导入逻辑(如属性映射)。
http://localhost:7474),点击顶部菜单栏的“+”→“Import”,选择CSV或JSON文件,按照向导配置节点/关系映射,点击“Execute”完成导入。import目录,然后在“Query”面板执行LOAD CSV命令。neo4j-admin可将整个数据库导出为二进制备份文件(.dump),包含数据、索引、约束等完整信息。
步骤:
neo4j-admin dump --database=neo4j --to=/path/to/backup.dump
neo4j-admin load --from=/path/to/backup.dump --database=neo4j --force
注意:备份文件较大,适合全量迁移或灾难恢复。
APOC的apoc.export系列过程支持CSV、JSON、图文件(GraphML、GEXF)、Cypher脚本等格式,可导出特定子图或查询结果。
常用命令:
CALL apoc.export.cypher.all("all_data.cypher", {format: "plain"});
CALL apoc.export.csv.nodes("nodes.csv", "MATCH (n:Person) RETURN n", {database: "neo4j"});
CALL apoc.export.json.relationships("relationships.json", "MATCH ()-[r]->() RETURN r", {database: "neo4j"});
优势:支持过滤(如WHERE子句)、自定义输出路径(如绝对路径),适合部分数据迁移或分析。
通过Cypher查询筛选所需数据,然后使用apoc.export.query或LOAD CSV导出。
示例:导出所有年龄大于30的用户及其朋友关系:
MATCH (p:Person {age: gt(30)})-[r:FRIENDS]->(friend:Person)
RETURN p, r, friend
然后使用APOC导出查询结果:
CALL apoc.export.csv.query("MATCH (p:Person {age: gt(30)})-[r:FRIENDS]->(friend:Person) RETURN p, r, friend", "adult_friends.csv", {});
MATCH (n) RETURN n LIMIT 100),点击结果面板顶部的“Export”按钮,选择CSV或JSON格式下载。import目录需挂载为rw);路径使用绝对路径避免错误。MERGE语句避免重复)。neo4j.conf,否则无法调用相关过程。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。