经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » neo4j » 查看文章
使用Neo4j的apoc插件,实现数据从MySQL抽取到Neo4j
来源:cnblogs  作者:祖国滴粑粑花  时间:2022/1/17 11:00:12  对本文有异议

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仓库找找
    image

image

将这两个插件放在neo4j安装目录下的plugins文件夹下面

2、配置Neo4j可以使用apoc.*

在Neo4j配置文件XXXX\neo4j-community-3.5.5\conf\neo4j.conf中搜索dbms.security.procedures.unrestricted,在后面加上apoc.*,中间用英文逗号分隔,如下:

  1. dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,apoc.*

较完整的 neo4j.conf 配置:

点击查看代码
  1. dbms.directories.import=import
  2. dbms.security.auth_enabled=true
  3. # Bolt协议端口
  4. dbms.connector.bolt.enabled=true
  5. #dbms.connector.bolt.tls_level=OPTIONAL
  6. dbms.connector.bolt.listen_address=:7687
  7. # HTTP Connector. There can be zero or one HTTP connectors.
  8. # HTTP协议端口
  9. dbms.connector.http.enabled=true
  10. dbms.connector.http.listen_address=:7474
  11. # HTTPS Connector. There can be zero or one HTTPS connectors.
  12. dbms.connector.https.enabled=true
  13. dbms.connector.https.listen_address=:7473
  14. dbms.tx_log.rotation.retention_policy=1 days
  15. dbms.security.procedures.unrestricted=my.extensions.example,my.procedures.*,apoc.*,rxx.*
  16. dbms.jvm.additional=-XX:+UseG1GC
  17. dbms.jvm.additional=-XX:-OmitStackTraceInFastThrow
  18. dbms.jvm.additional=-XX:+AlwaysPreTouch
  19. dbms.jvm.additional=-XX:+UnlockExperimentalVMOptions
  20. dbms.jvm.additional=-XX:+TrustFinalNonStaticFields
  21. dbms.jvm.additional=-XX:+DisableExplicitGC
  22. dbms.jvm.additional=-Djdk.tls.ephemeralDHKeySize=2048
  23. dbms.jvm.additional=-Djdk.tls.rejectClientInitiatedRenegotiation=true
  24. dbms.windows_service_name=neo4j
  25. dbms.jvm.additional=-Dunsupported.dbms.udc.source=zip

3、使用

在Neo4j浏览器输入call apoc.load.driver('com.mysql.jdbc.Driver')加载驱动:

image

然后就可以使用Neo4j连接MySQL数据库查询数据了
image

示例:

  1. CALL apoc.periodic.iterate(
  2. 'CALL apoc.load.jdbc("jdbc:mysql://localhost:3306/neo4jtest?user=root&password=123456","select * from student") YIELD row ',
  3. 'CREATE (s:Student) SET s =row',
  4. { batchSize:10000, parallel:true}
  5. )
  • apoc插件功能很强大,使用方法:https://neo4j.com/labs/apoc/4.0/overview/apoc.periodic/apoc.periodic.iterate/
  • 如果是表名字,则会把这个表的所有字段的数据,抽到图库,图库节点属性key就是MySQL表的字段名,大小写和MySQL的字段一致
  • 如果是查询语句,则会把查询来的结果抽到图库,例如select name from student,则图库的节点只有一个name属性和图库自己自动加的id

本文来自博客园,作者:祖国滴粑粑花,转载请注明原文链接:https://www.cnblogs.com/rxx1005/p/15786471.html

原文链接:http://www.cnblogs.com/rxx1005/p/15786471.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号