首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j web客户端在大型Cypher创建查询中失败。144000行

Neo4j web客户端在大型Cypher创建查询中失败。144000行
EN

Stack Overflow用户
提问于 2017-09-14 10:27:16
回答 1查看 165关注 0票数 1

我是neo4j新手,目前正在尝试将现有数据迁移到neo4j数据库中。我编写了一个小程序,将当前数据(定制格式)转换为数据库初始填充的大型CREATE查询。我的第一次迭代是保留现有对象模型的结构,即对象成为节点,节点类型与当前对象模型中的对象名称相同,成员成为属性(成员名是属性名)。这是针对所有基本类型(和字符串)完成的,因此任何成员对象都按照与原始对象模型相同的方式进行分解。

这在性能上很好,已经生成了13000+行创建密码查询,可以通过web前端/客户端执行这些查询。然而,对于图数据库来说,该模型并不理想,因为可能有许多属性,因此我希望将这些“基本”节点(具有基本类型的成员)分解为他们自己的节点,与一个更“抽象”的节点相关,该节点代表更高层次的对象/类。这意味着每个成员都是一个节点,其属性为{ value:"42“},或者我可以将节点类型设置为数据类型(即整数)。如果我的理解是正确的,这也将允许我在“成员”(因为它们是节点而不是propeties)之间创建关系,从而允许在表达不同对象的原始成员之间的关系时获得更大的自由,而不仅仅是将父对象相互关联。

问题是,现在这会生成144000+行Cypher查询(与其他查询相比,这并不是一个大的数据集),neo4j客户端似乎正在大量使用该数据集。代码高亮显示在客户端的查询输入框中(即它正确地高亮显示,这意味着它正确地解析了它,并且是有效的密码查询),但是当我运行该查询时,我会得到通常的浏览器没有响应,然后堆栈溢出(不是punn意图)错误。更重要的是,neo4j客户端没有优雅地退出,总是要求我强制执行end任务,而db处于2.53GB的使用范围内,有效和少量的数据(144000行,大约2/3是关系,因此最多可以达到48000节点)。然而我读到,我应该能够在毫秒内处理数百万个节点和关系?

已经在firefox和chrome上试过了。我正在windows10上使用windows10社区版。sdk最初将与C#和C++一起使用。这项研究还处于初期阶段,所以我还没有使用sdk。

这是一种有效的方法,即最初通过创建查询填充到数据库吗?另外,我关于将数据分解为基本类型的方法是一个好方法吗?或者,这种方法可能会产生一些问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-14 20:11:56

这是一个非常大的Cypher查询!

如果使用LOAD CSV FROM...填充数据库,并提供包含要加载的数据的CSV文件,您会做得更好。

如需详细解释,请参阅:

https://neo4j.com/developer/guide-import-csv/

(本页还讨论了用于真正大型数据集的批处理加载程序。)

由于您正在为Cypher查询生成代码,所以我不会想象您在生成CSV文件时会遇到太多困难。

(作为性能指标之一,我已经在两分钟内在笔记本电脑上运行的Neo4j中加载了100万张CSV记录。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46216650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档