当前位置: 首页 > news >正文

neo4j导入导出方法

在 Neo4j 中,如果需要将数据从 一个环境导出,再 导入到另一个环境(如从开发环境迁移到生产环境),可以通过以下方法实现:


方法 1:使用 neo4j-admin 导出和导入(完整数据库迁移)


一、全库导出与导入(neo4j-admin

1. 导出数据(源环境)
# 1. 停止 Neo4j 容器
docker-compose stop neo4j# 2. 执行导出(生成 `neo4j.dump`)
docker-compose run --rm neo4j \neo4j-admin database dump neo4j \--to-path=/var/lib/neo4j/backups/# 3. 从容器复制备份文件到宿主机
docker cp neo4j:/var/lib/neo4j/backups/neo4j.dump ./backups/# 4. 重启 Neo4j(可选)
docker-compose start neo4j
2. 导入数据(目标环境)
# 1. 将 `neo4j.dump` 复制到目标机的挂载目录(如 `./backups/`)
scp ./backups/neo4j.dump user@target:/path/to/backups/# 2. 停止目标 Neo4j
docker-compose stop neo4j# 3. 执行导入(覆盖现有数据)
docker-compose run --rm neo4j \neo4j-admin database load neo4j \--from-path=/var/lib/neo4j/backups/neo4j.dump \--force# 4. 重启 Neo4j
docker-compose start neo4j
验证数据
MATCH (n) RETURN count(n);  -- 检查节点数量
SHOW CONSTRAINTS;          -- 验证约束和索引


方法 2:使用 apoc.exportapoc.import(部分数据迁移)

适用于 导出特定数据(如子图、CSV/JSON) 并导入到其他环境。

步骤 1:在源环境导出数据

(1)导出为 Cypher 脚本(包含节点和关系)
CALL apoc.export.cypher.all("export.cypher", {format: 'plain'});
  • 导出文件export.cypher(默认存储在 /var/lib/neo4j/import/
(2)导出为 CSV/JSON
// 导出查询结果为 CSV
CALL apoc.export.csv.query("MATCH (u:User) RETURN u.name AS name, u.age AS age","users.csv",{}
);// 导出查询结果为 JSON
CALL apoc.export.json.query("MATCH (u:User) RETURN u","users.json",{}
);

步骤 2:将导出文件复制到目标环境

# 从容器复制到宿主机
docker cp neo4j:/var/lib/neo4j/import/export.cypher ./backups/# 传输到目标机器
scp ./backups/export.cypher user@target-machine:/path/to/import/

步骤 3:在目标环境导入数据

(1)导入 Cypher 脚本
// 直接执行导出的 Cypher 脚本
CALL apoc.cypher.runFile("file:///export.cypher");
(2)导入 CSV/JSON
// 导入 CSV
LOAD CSV WITH HEADERS FROM 'file:///users.csv' AS row
CREATE (:User {name: row.name, age: toInteger(row.age)});// 导入 JSON
CALL apoc.load.json("file:///users.json") YIELD value AS row
CREATE (u:User) SET u = row;

方法 3:使用 Neo4j 浏览器导出 & 导入

(1)在源环境导出数据

  1. 打开 Neo4j 浏览器(http://localhost:7474)。
  2. 执行查询(如 MATCH (n) RETURN n)。
  3. 点击 “Export” 按钮,选择 CSV/JSON 格式下载。

(2)在目标环境导入数据

  1. 将下载的文件放入目标 Neo4j 的 import 目录。
  2. 使用 LOAD CSVapoc.load.json 导入(参考方法 2)。

对比不同方法

方法适用场景优点缺点
neo4j-admin dump/load全库迁移完整备份,包含索引/约束需停机
apoc.export/import部分数据迁移灵活,可导出子图需手动处理索引
Neo4j 浏览器导出简单查询导出无需命令行仅适合小数据量

注意事项

  1. 版本兼容性:确保源和目标 Neo4j 版本一致,否则 neo4j-admin 可能不兼容。
  2. 文件权限:确保目标 Neo4j 有权限读取导入文件。
  3. APOC 插件:目标环境需安装相同版本的 APOC。

总结

  • 全库迁移 → 用 neo4j-admin dump/load(最可靠)。
  • 部分数据迁移 → 用 apoc.export + LOAD CSV/apoc.import
  • 简单数据导出 → 用 Neo4j 浏览器 + CSV/JSON。

按需选择方法即可!

http://www.xdnf.cn/news/1319725.html

相关文章:

  • 25年第十本【金钱心理学】
  • 半敏捷卫星观测调度系统的设计与实现
  • 《WINDOWS 环境下32位汇编语言程序设计》第3章 使用MASM
  • Effective C++ 条款46:需要类型转换时请为模板定义非成员函数
  • Critic-V: VLM Critics Help Catch VLM Errors in Multimodal Reasoning(CVPR 2025)
  • 飞算AI 3.2.0实战评测:10分钟搭建企业级RBAC权限系统
  • 【牛客刷题】求四个数的最小公约数:两种高效解法详解(枚举法和最大公约数法)
  • 华为云之Linux系统安装部署Tomcat服务器
  • 【技术博客】480p 老番 → 8K 壁纸:APISR × SUPIR × CCSR「多重高清放大」完全指南
  • YoloV9改进策略:Block改进-DCAFE,并行双坐标注意力机制,增强长程依赖与抗噪性-即插即用
  • 【Golang】:函数和包
  • HTTPS 配置与动态 Web 内容部署指南
  • 数组实现各类数据结构
  • 创建工作空间与功能包
  • nodejs 中间件
  • 科目二的四个电路
  • Windows运维之以一种访问权限不允许的方式做了一个访问套接字的尝试
  • 健身房预约系统SSM+Mybatis实现(三、校验 +页面完善+头像上传)
  • es7.17.x es服务yellow状态的排查查看节点,分片状态数量
  • 生成模型实战 | InfoGAN详解与实现
  • 1. Docker的介绍和安装
  • 安装pytorch3d后报和本机cuda不符
  • gitee 流水线+docker-compose部署 nodejs服务+mysql+redis
  • Matlab数字图像处理——基于BM4D压缩感知的三维图像信号重构算法
  • ai测试(六)
  • 中级统计师-会计学基础知识-第五章 财务报告
  • (MST,并查集)nflsoj #4114 货车运输/洛谷 P1967NOIP2003 货车运输
  • 反向代理、负载均衡器与API网关选型决策
  • C++算法题目分享:二叉搜索树相关的习题
  • 【165页PPT】基于IPD的研发项目管理(附下载方式)