我有一个早期使用嵌入式neo4j的应用程序,但现在我已迁移到neo4j服务器(使用java rest binding)。我需要一次导入4k节点,大约40k属性和30k关系。当我使用嵌入式neo4j导入时,过去需要花费10-15分钟,但neo4j服务器需要3个多小时才能获得相同的数据,这是不可接受的。如何配置服务器以更快地导入数据。
这是我的neo4j.properties看起来像
# Default values for the low-level graph engine
use_memory_mapped_buffers=true
neostore.nodestore.db.mapped_memory=200M
neostore.relationshipstore.db.mapped_memory=1G
neostore.propertystore.db.mapped_memory=500M
neostore.propertystore.db.strings.mapped_memory=500M
#neostore.propertystore.db.arrays.mapped_memory=130M
# Enable this to be able to upgrade a store from 1.4 -> 1.5 or 1.4 -> 1.6
#allow_store_upgrade=true
# Enable this to specify a parser other than the default one. 1.5, 1.6, 1.7 are available
#cypher_parser_version=1.6
# Keep logical logs, helps debugging but uses more disk space, enabled for
# legacy reasons To limit space needed to store historical logs use values such
# as: "7 days" or "100M size" instead of "true"
keep_logical_logs=true
# Autoindexing
# Enable auto-indexing for nodes, default is false
node_auto_indexing=true
# The node property keys to be auto-indexed, if enabled
node_keys_indexable=primaryKey
# Enable auto-indexing for relationships, default is false
relationship_auto_indexing=true
# The relationship property keys to be auto-indexed, if enabled
relationship_keys_indexable=XY
cache_type=weak
答案 0 :(得分:1)
您可以共享用于导入数据的代码吗?
java-rest-binding只是围绕详细REST API的一个瘦包装器,它不用于数据导入。
如果您想导入更多数据,我建议使用参数批量使用密码查询。查看RestCypherQueryEngine(restGraphDb.getRestAPI())。并查看restGraphDB.executeBatch()以在单个请求中执行多个查询。
请不要依赖这些查询的结果,以便稍后在导入中做出决定。
或者导入嵌入的数据,然后将目录复制到服务器data/graph.db
目录。