Neo4j import工具的控制台输出是什么意思?
示例行:
[INPUT--------------PROPERTIES(2)======|WRITER: W:71.] 3M
[INPUT------|PREPARE(|RELATIO||] 49M
[Relationship --> Relationship + counts-------]282M
当我尝试通过此工具导入大型数据集时,似乎在248M时,导入挂起在“计算密集节点”步骤中。 “计算密集节点”究竟做了什么?
答案 0 :(得分:2)
导入阶段是:
至于解释统计数据,我猜@ mattias-persson写了in the Neo4J manual。复制它,记录:
虽然导入正在运行不同的阶段,但控制台中会打印一些统计数据和数字。对该输出的一般解释是查看水平线,该水平线被分成多个部分,每个部分代表与其他部分并行进行的一种类型的工作。部分越宽,相对于其他部分花费的时间越多,最宽的是瓶颈,也标有*。如果一个部分有一条双线而不是一条线,那就意味着多个线程正在执行该部分的工作。在最右侧显示一个数字,告知该阶段已处理了多少实体(节点或关系)。
举个例子:
[*>:20,25 MB/s-----------|PREPARE(3)==========|RELATIONSHIP(2)===========] 16M
将被解释为:
>
正在以20,25 MB / s的速度读取和解析数据,这些数据正在传递给... PREPARE
为...准备数据RELATIONSHIP
创建实际关系记录和...... v
将关系写入商店。此示例在此示例中不可见,因为与其他部分相比,它非常便宜。观察部分大小可以提供有关可以提高性能的提示。在上面的示例中,瓶颈是数据读取部分(标有>),这可能表示磁盘速度很慢,或者处理同时读写操作很差(因为上一部分通常围绕写入磁盘)
答案 1 :(得分:1)
经过一些离线讨论后,似乎大多数(如果不是全部)"缺失"节点是由于CSV文件中的一行有一个以引用"
开头但不包含结束引用的属性。这导致解析器读取到下一个引用,即通过换行,认为它仍然读取该节点的相同属性值。
对于这样的缺失引号进行某种检测会很棒,但这并不是直截了当的,因为它可能会混淆实际跨越多行的节点/关系。