知识库

在 neo4j-import 中使用 ACTUAL 数据类型

在使用 neo4j-admin import 导入数据时,请务必先检查所需的 CSV 文件结构和注意事项,再继续操作。

ACTUAL 与 String(默认)或 Integer 的比较

CSV 中的每个节点必须有一个 :ID,其格式可以是 IntegerStringACTUAL。默认是 String,也可以在表头中显式指定 Integer。然而事实上,在性能和内存方面,两者大致相同,使用默认值即可。

使用 Integer 或 String 比使用 ACTUAL 稍占用更多内存,因此可能会想选择后者。但实际上这通常不是最好的选择,除非你有特定的使用场景。

ACTUAL 是什么,以及它为何特殊?

ACTUAL 指的是实际的节点 ID,在 Neo4j 中意味着该记录在磁盘上的真实位置。使用 ACTUAL 与 neo4j-import 时,所有 `:ID`s 必须是有序的,并且在加载期间所有被导入的 CSV 文件中都必须保持有序。这在已有的数据集,尤其是规模大且结构复杂的情况下,通常很难实现。

假设你已经对所有待导入的 CSV 文件中的节点进行了排序,还必须考虑这些 ID 是否存在间隙。任何间隙都会在磁盘上留下未使用的空间,可能会减少图数据库存储的可用空间。

最后,避免在使用 ACTUAL 时使用过大的 ID,因为这会显著增大存储文件的大小,显而易见,这应该尽量避免。

关键要点

如果你使用低值、连续且有序的 :ID`s,`ACTUAL` 应该能够良好工作,但它要求了解内部存储结构,并且在跨 CSV 文件保持所有节点有序方面可能具有挑战性。

neo4j-admin import 旨在为一个全新、空的数据库填充数据,不能用于向已有数据库中导入数据。
© . This site is unofficial and not affiliated with Neo4j, Inc.