Neo4j 问题与修复
数据库结构简介 Neo4j 自 4.0 版本开始引入了多数据库支持,但社区版不支持,每个数据库可以独立存储和查询数据。 neo4j 数据库: 默认创建的主数据库,通常用作应用程序的主存储。 syste…
数据库结构简介
Neo4j 自 4.0 版本开始引入了多数据库支持,但社区版不支持,每个数据库可以独立存储和查询数据。
- neo4j** 数据库**: 默认创建的主数据库,通常用作应用程序的主存储。
- system** 数据库**: 专门用于存储数据库配置、用户管理和权限控制等元信息。不能用于存储业务数据。
APOC
APOC 是一个非常强大的工具集,极大地扩展了 Neo4j 的功能,帮助用户进行复杂的数据操作和分析。
- 数据导入和导出
APOC 提供了多种方法来从不同的格式(如 CSV、JSON、XML 等)导入和导出数据。这使得数据迁移和整合变得更加容易。
- 图形算法
APOC 包含了许多图形算法,如最短路径、社群检测和中心性度量等,帮助用户在图数据库中进行复杂的图分析。
- 数据转换和清洗
通过 APOC,可以轻松地对数据进行转换、过滤和清洗,以适应不同的数据模型和查询需求。
- 图的模式和元数据操作
APOC 提供了对图模式和元数据的访问,能够获取节点和关系的统计信息,帮助用户理解数据的结构。
- 异步过程
APOC 支持异步执行,使得长时间运行的操作不会阻塞其他查询。
- 其他实用功能
APOC 还提供了一些实用功能,例如时间和日期处理、字符串操作、JSON 解析等。
Bolt 协议
- 高效性: Bolt 是 Neo4j 的原生二进制协议,专为图数据库优化。它在数据传输上更加高效,可以在客户端和服务器之间进行更快的数据交换。
- 性能: 由于使用二进制传输,Bolt 协议通常比 HTTP 更快,尤其在处理大规模图数据时,性能差异更为明显。
- 功能支持: Bolt 协议支持更复杂的特性,例如事务、图算法和 APOC 过程等。某些功能在 HTTP 上可能不完全支持。
- 持久连接: Bolt 允许在一个连接中进行多次请求,可以更好地管理连接状态。
APOC 插件确认是否安装成功
1CALL apoc.help("apoc")
2RETURN apoc.version()
APOC 插件 Docker 手动安装
1// 将 APOC JAR 文件复制到容器中
2docker cp ~/Downloads/apoc-5.22.0-extended.jar neo4j:/var/lib/neo4j/plugins/
3// 配置 Neo4j 以允许 APOC
4docker exec -it neo4j /bin/bash
5echo "dbms.security.procedures.unrestricted=apoc.*" >> /var/lib/neo4j/conf/neo4j.conf
6// 重启 Neo4j 容器
7docker restart neo4j
8
9// 验证 APOC 是否安装成功
10CALL apoc.help("apoc")
11RETURN apoc.version()
APOC 导入导出配置
进入容器
1docker exec -it neo4j bash
确保配置目录存在
1mkdir -p /var/lib/neo4j/conf
写入 apoc.conf 文件(会覆盖原文件内容)
1echo 'apoc.export.file.enabled=true' > /var/lib/neo4j/conf/apoc.conf
2echo 'apoc.import.file.enabled=true' >> /var/lib/neo4j/conf/apoc.conf
3echo 'apoc.import.file.use_neo4j_config=true' >> /var/lib/neo4j/conf/apoc.conf
检查写入是否成功
1cat /var/lib/neo4j/conf/apoc.conf
输出应如下:
1apoc.export.file.enabled=true
2apoc.import.file.enabled=true
3apoc.import.file.use_neo4j_config=true
重启容器并验证配置
1docker restart neo4j