使用Neo4j的apoc插件,实现数据从MySQL抽取到Neo4j
2022/1/11 2:04:10
本文主要是介绍使用Neo4j的apoc插件,实现数据从MySQL抽取到Neo4j,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、准备
- 下载apoc插件:apoc-3.5.0.15-all.jar
下载地址:https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/3.4.0.7
注意:apoc版本必须和你Neo4j的版本差不多,例如你的Neo4j版本是3.5.x,apoc的版本也要是3.5.x左右
- 下载MySQL驱动 mysql-connector-java-8.0.22.jar
如果你是写Java的,可以在本地maven仓库找找
将这两个插件放在neo4j安装目录下的plugins文件夹下面
2、配置Neo4j可以使用apoc.*
在Neo4j配置文件XXXX\neo4j-community-3.5.5\conf\neo4j.conf
中搜索dbms.security.procedures.unrestricted
,在后面加上apoc.*
,中间用英文逗号分隔,如下:
dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,apoc.*
较完整的 neo4j.conf 配置:
点击查看代码
dbms.directories.import=import dbms.security.auth_enabled=true # Bolt协议端口 dbms.connector.bolt.enabled=true #dbms.connector.bolt.tls_level=OPTIONAL dbms.connector.bolt.listen_address=:7687 # HTTP Connector. There can be zero or one HTTP connectors. # HTTP协议端口 dbms.connector.http.enabled=true dbms.connector.http.listen_address=:7474 # HTTPS Connector. There can be zero or one HTTPS connectors. dbms.connector.https.enabled=true dbms.connector.https.listen_address=:7473 dbms.tx_log.rotation.retention_policy=1 days dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,apoc.*,rxx.* dbms.jvm.additional=-XX:+UseG1GC dbms.jvm.additional=-XX:-OmitStackTraceInFastThrow dbms.jvm.additional=-XX:+AlwaysPreTouch dbms.jvm.additional=-XX:+UnlockExperimentalVMOptions dbms.jvm.additional=-XX:+TrustFinalNonStaticFields dbms.jvm.additional=-XX:+DisableExplicitGC dbms.jvm.additional=-Djdk.tls.ephemeralDHKeySize=2048 dbms.jvm.additional=-Djdk.tls.rejectClientInitiatedRenegotiation=true dbms.windows_service_name=neo4j dbms.jvm.additional=-Dunsupported.dbms.udc.source=zip
3、使用
在Neo4j浏览器输入call apoc.load.driver('com.mysql.jdbc.Driver')
加载驱动:
然后就可以使用Neo4j连接MySQL数据库查询数据了
示例:
CALL apoc.periodic.iterate( 'CALL apoc.load.jdbc("jdbc:mysql://localhost:3306/neo4jtest?user=root&password=123456","select * from student") YIELD row ', 'CREATE (s:Student) SET s =row', { batchSize:10000, parallel:true} )
- apoc插件功能很强大,使用方法:https://neo4j.com/labs/apoc/4.0/overview/apoc.periodic/apoc.periodic.iterate/
- 如果是表名字,则会把这个表的所有字段的数据,抽到图库,图库节点属性key就是MySQL表的字段名,大小写和MySQL的字段一致
- 如果是查询语句,则会把查询来的结果抽到图库,例如select name from student,则图库的节点只有一个name属性和图库自己自动加的id
这篇关于使用Neo4j的apoc插件,实现数据从MySQL抽取到Neo4j的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程
- 2024-11-01部署MySQL集群学习:新手入门教程
- 2024-11-01部署MySQL集群入门:新手必读指南
- 2024-10-23BinLog入门:新手必读的MySQL二进制日志指南
- 2024-10-23Binlog入门:MySQL数据库的日志管理指南