[bigdata-086] python3+neo4j 从mysql数据库读取记录然后创建节点和关系写入到neo4j

本文介绍如何使用Python3从MySQL数据库读取数据,并将记录转换为节点和关系,导入到Neo4j图数据库中,同时创建了针对不同节点类型的索引以优化查询效率。
摘要由CSDN通过智能技术生成
1. 测试
1.1web界面  http://tz211:7474/browser/
在这里执行 MATCH (n) RETURN n,能看到节点和相互关系
一共是3个节点,6个相互关系


1.2 在211执行cypher-shell
./cypher-shell -u neo4j -p 123456


1.3 执行convert-test.py


上述1.1和1.2和1.3是一致的。


1.4 在web节点执行删除所有节点命令
然后再找查询节点,发现没有节点了。符合预期。
在cypher-shell执行查询结果,也没有节点,符合预期。
在convert-test执行查询结果,也没有节点,符合预期。




1.5 在cypher创建节点
CREATE (:MP {num:"18717917632"});
在三处都能看到节点,正确。


MERGE (:MP {num:"18717917632"});
三处只有一个节点,正确。


MERGE (:MP {num:"18717917666"});
三处均增加了一个节点,正确。


再次执行
MERGE (:MP {num:"18717917666"});
三处没有变化,正确。


2. 代码测试
2.1 参考文档
《The Neo4j Developer Manual v3.2》python版


2.2 session
session是一个容器,它存储一系列的transaction事务。session从一个池里获取到连接。session不是线程安全的。
要把session放在一个context block,那么,当这个block执行完毕,session就可以正确地关闭。代码形如:
-----------------------------
def add_person(self, name):
    session = self._driver.session()
    ses
首先需要安装 `neo4j-driver` 和 `clickhouse-driver` 库。可以通过以下命令进行安装: ``` pip install neo4j-driver clickhouse-driver ``` 接下来,可以通过以下代码连接到 ClickHouse 数据库: ```python from clickhouse_driver import Client client = Client(host='localhost', port=9000, user='default', password='', database='mydatabase') ``` 其中,`host`、`port`、`user`、`password` 和 `database` 分别是 ClickHouse 数据库的主机地址、端口号、用户名、密码和数据库名称。 接着,可以通过以下代码连接到 Neo4j 数据库: ```python from neo4j import GraphDatabase uri = 'bolt://localhost:7687' driver = GraphDatabase.driver(uri, auth=('neo4j', 'password')) ``` 其中,`uri` 是 Neo4j 数据库的连接地址,`auth` 是连接的用户名和密码。 然后,可以通过以下代码创建节点: ```python with driver.session() as session: session.run("CREATE (n:Person {name: 'Alice'})") session.run("CREATE (n:Person {name: 'Bob'})") ``` 其中,`Person` 是节点的标签,`name` 是节点的属性。 接着,可以通过以下代码创建关系: ```python with driver.session() as session: session.run("MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) CREATE (a)-[:KNOWS]->(b)") ``` 其中,`KNOWS` 是关系类型。 最后,可以通过以下代码查询节点关系: ```python with driver.session() as session: result = session.run("MATCH (n)-[r]->(m) RETURN n, r, m") for record in result: print(record) ``` 以上就是实现 Neo4j 连接 ClickHouse 数据库,自动生成节点关系的代码示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值