我每周在我的Neo4j数据库中导入CSV,90%的数据已经存在。是我的数据库更新过程。
我正在将数据与ids合并,我对这些设置了一个独特的约束来确保这一点。
从技术角度来看一切都很好。但从运营的角度来看,我有一些需求:
谢谢你的帮助!
我理解您的问题的方式是,您加载的CSV包含完整重新加载数据的所有信息,或至少一个数据域,您希望跟踪添加、更新和删除该结果。
如果我的假设是正确的,那么对于您的第一个问题,您可以将CSV_STATUS
属性设置为可能受影响的每个节点和关系的Deleted
之类的内容。您应该在运行CSV加载之前执行此操作。然后,在合并语句的ON MATCH中,可以将CSV_STATUS
设置为Matchated
,在ON CREATE中,可以将其设置为New
。在加载CSV之后,具有csv_status
的deleted
的每个节点或关系都不会出现在CSV中,您可以进行相应的后处理。
对于第二个问题,我会考虑在节点中保存两个版本的name属性。从CSV加载的“原始”值和擦洗或编辑的值。在CSV加载中,只需更新原始名称值。作为后处理步骤,您可以使用某种编程匹配将所有:org节点上的原始名称与擦洗过的名称进行比较,并使用csv_status
匹配的csv_status
。例如,也许只比较两个名字中的阿尔法人。如果匹配失败,那么组织名称可能已经更改。
我从几个csv文件迭代上传节点和边,每个节点类型一个。加载节点工作得很好,但加载边并不总是有效。实际上,有些节点有数字作为标识符--如果是这样的话,所有这种类型的节点都有数字--但加载为字符串,因此创建边失败。手动创建一个边,添加用双引号包装标识符,效果很好。 边缘: 密码命令:
我使用以下命令将数据从csv文件加载到Neo4j中。输入文件很大,有数百万行。当这个查询运行时,我可以查询节点的数量并检查进度。但是一旦它停止创建节点,我想它就会继续创建关系。但我无法检查这一步的进展。 我有两个疑问: 它是否处理每一行文件的命令,即为每一行源码创建节点和关系等?? 或者它一次创建所有节点,然后创建关系。 下面是加载文件的密码器。
下面是我的密码 请告诉我,我应该如何从csv文件指定关系。
我尝试使用load CSV with headers命令将以下节点加载到Neo4j中: 我将Excel-Sheet保存为: 所以有6个节点(就像我有6行一样),但它们都没有任何属性 我已经尝试用不同的分隔符保存文件,或者手动添加引号。后者给出: PS:我在stackoverflow上阅读了关于这个主题的所有其他帖子,但没有一个能帮我解决这个问题 给予: