采用mongo-connector及Neo4j Doc Manager将MongoDB中数据导入Neo4j(嵌套结构形成关系)
MongoDB启用副本
Windows安装MongoDB服务 bat脚本
1 | @echo off |
Windows卸载MongoDB服务 bat脚本
1 | @echo off |
初始化MongoDB Replica set
进入mongo shell执行rs.initiate()
安装Neo4j Doc Manager
1 | # 新增python环境neo4j.venv |
启动mongo-connector
进入Python环境:workon neo4j.venv
运行neo4j_doc_manager:mongo-connector -m 192.168.1.188:27017 -t http://127.0.0.1:7474/db/data -d neo4j_doc_manager
同步指定Databse.Collection:mongo-connector -m 127.0.0.1:27017 -n uadb_suzhou_gyyq.AddressNode -t http://127.0.0.1:7474/db/data -d neo4j_doc_manager
neo4j_doc_manager运行后,当MongoDB插入数据时,mongodb Document将会实时转换为图结构存储到Neo4j,文档Key会转换为Node,值对象作为Node的属性值。
问题记录
No handlers could be found for logger “mongo_connector.util”
实际错误:py2neo.database.status.Unauthorized: http://127.0.0.1:7474/db/manage/server/jmx/domain/org.neo4j
解决方案:
- 停用 authorization
考虑到性能和测试便捷可停用Neo4j安全授权机制。
在neo4j-server.properties
中设置dbms.security.auth_enabled=false
- 设置NEO4J_AUTH环境变量
若生产环境已启用授权,设置NEO4J_AUTH环境变量export NEO4J_AUTH=user:password
AttributeError: ‘Graph’ object has no attribute ‘cypher’
解决方案:neo4j_doc_manager github issue
参考官网文档,安装时附加—pre参数,然而运行dev版有问题,老实安装stable版本即可
OplogThread: Last entry no longer in oplog cannot recove
修改mongo-connector配置参数后报错
解决:删除日志文件(mongo-connector.log)所在根目录的oplog.timestamp
文件,上次异常终止mongo-connector写入了xxx,导致无法正常运行
如何提高同步速度
how-do-i-increase-the-speed-of-mongo-connector
mongo-connector Configuration-Options