Neo4J Web客户端在大型Cypher创建查询中失败.144000行



我是Neo4J的新手,目前正在尝试将现有数据迁移到NEO4J数据库中。我写了一个小程序,将当前数据(以定制格式)转换为一个大型创建Cypher查询,以供数据库的初始群体。我的第一个迭代是在某种程度上保留现有对象模型的结构化,即对象成为节点,节点类型与当前对象模型中的对象名称相同,并且成员成为属性(成员名称为属性名称)。因此,这是针对所有基本类型(和字符串)进行的,因此任何成员对象的分解方式与原始对象模型中的方式相同。

这在性能方面很好,已经生成了可以通过Web Frontend/Client执行的13000 行创建Cypher查询。但是,我相信该模型对于图形数据库而言并不理想,因为可能会有许多属性,相反,我想将这些"基本"节点(具有基本类型的成员)变为自己的节点,与更多有关"抽象"节点代表更高级别的对象/类。这意味着每个成员是一个带有单个(首先,它可能成长)属性的节点{value:; quot" 42"},或者我可以将节点类型设置为数据类型(即整数)。如果我的理解是正确的,这也将使我能够在"成员"(因为它们是节点而不是propeties)之间建立关系,从而在表达不同对象的原始成员之间的关系时允许更大的自由,而不仅仅是将父对象相互关联。

问题在于,这现在生成了144000 的线路查询(这不是对其他人的大型数据集),Neo4J客户端似乎在批量上批量。代码突出显示似乎在客户端的查询输入框中起作用(即它正确突出显示,我认为这意味着它正确解析了它并且有效的cypher查询),但是当我来运行查询时,我会得到通常的浏览器响应,然后堆栈溢出(无需PUNN意图)错误。Neo4J客户端的更优雅地退出,总是要求我强制执行最终任务,并且DB在2.5-3GB的使用中,有效的数据和少量数据(144000行,大约2/3是关系大多数〜48000节点)。但是我读到我应该能够与毫秒中的数百万节点和关系打交道?

已经用Firefox和Chrome尝试了它。我正在Windows10上使用Neo4J社区版。SDK最初将与C#和C 一起使用。这项研究处于初始阶段,所以我还没有使用过SDK。

这是一种有效的方法,即最初通过创建查询填充数据库?我也将数据分解为基本类型的方法是好的吗?或者是否存在这种方法可能引起的问题。

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

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

有关详细的解释,请查看:

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

(此页面还讨论了真正大数据集的批处理加载程序。)

由于您正在为Cypher查询生成代码,因此我不会想象您会在生成CSV文件时遇到太多麻烦。

(作为表现的指示,我今天已经将100万个记录CSV加载到两分钟的笔记本电脑上运行的Neo4J。)

最新更新