将修改后的节点重新加载到AWS-Neptune中时的不良行为

时间:2019-02-13 12:51:21

标签: duplicates amazon-neptune

我正在使用批量加载器将S3上的csv文件中的数据加载到Neptune数据库集群中。 数据加载成功。但是,当我在修改了某些节点的属性值的情况下重新加载数据时,新值不是替换旧值,而是将其添加到旧值中,使其成为由逗号分隔的值列表。例如:

已加载初始值:

~id,~label,ip:string,creationTime:date
2,user,"1.2.3.4",2019-02-13

如果我使用其他IP重新加载该节点:

2,user,"5.6.7.8",2019-02-13

然后我运行以下遍历:g.V(2).valueMap(),并得到:ip=[1.2.3.4, 5.6.7.8], creationTime=[2019-02-13]

尽管这种行为在某些用例中可能是有益的,但大多数情况是不希望的。我希望新的价值取代旧的价值。 在重新加载节点的情况下,我在文档中找不到关于加载程序行为的任何参考,并且在API请求中没有要配置的相关参数。 如何重新加载节点以覆盖现有节点?

2 个答案:

答案 0 :(得分:2)

更新:Neptune现在支持单基数批量加载。只需设置

updateSingleCardinalityProperties = TRUE

来源: https://docs.aws.amazon.com/neptune/latest/userguide/load-api-reference-load.html

答案 1 :(得分:1)

当前,Neptune批量加载器使用Set基数。要更新现有属性,最好的方法是通过HTTP或WS端点使用Gremlin。

在Gremlin中,您可以指定要单基数(从而替换而不是添加到属性值)。一个例子是

Example

希望有帮助, 开尔文