我正在使用批量加载器将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请求中没有要配置的相关参数。 如何重新加载节点以覆盖现有节点?
答案 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
希望有帮助, 开尔文