neo4j apoc数据库数据导入
时间: 2025-02-19 09:33:12 浏览: 52
### 使用 APOC 库将 MySQL 数据导入到 Neo4j 图数据库
#### 准备工作
确保安装并配置好 Neo4j 和 MySQL。下载适合 Neo4j 版本的 `apoc` 插件以及 `mysql-connector-java` 驱动程序[^2]。
对于 Neo4j 3.4.6 版本,应使用对应的 APOC 3.4.0.1 版本以避免兼容性问题导致的服务不可用情况发生[^3]。
#### 创建连接字符串
定义用于访问 MySQL 的 JDBC 连接 URL、用户名和密码:
```cypher
CALL apoc.config.set('apoc.jdbc.url', 'jdbc:mysql://localhost:3306/your_database?user=your_user&password=your_password')
```
此命令设置全局参数来简化后续调用中的连接信息输入[^1]。
#### 加载表结构至节点与关系模式
假设有一个名为 `users` 的表格,其中包含字段 id, name, age;另一个关联表叫作 friendships 表示用户之间的友谊关系,则可以通过如下方式创建相应的图模型:
```cypher
// 清除已有数据 (仅限测试环境)
MATCH (n) DETACH DELETE n;
// 将 users 表转换成节点
CALL apoc.load.jdbc("SELECT * FROM users", "users") YIELD row AS userRecord
CREATE (:User {
userId: toInteger(userRecord.id),
userName: userRecord.name,
userAge :toInteger(userRecord.age)
});
// 建立 friendship 关系
CALL apoc.load.jdbc("SELECT from_id,to_id FROM friendships", "friendships") YIELD row as friendPair
WITH friendPair.from_id AS sourceId, friendPair.to_id AS targetId
MATCH (source: User {userId: toInteger(sourceId)}), (target: User {userId: toInteger(targetId)})
MERGE (source)-[:FRIEND]->(target);
```
上述脚本首先清除了现有数据(适用于开发环境中),接着通过两次 SQL 查询分别构建了代表用户的节点集及其间的社交联系边集合。
阅读全文
相关推荐


















