如何将顶点和边批量加载到现有的AWS Neptune Graph



我有一个正在运行的AWS Neptune graphDB,它正在生产环境中使用。此后,我确定了要添加的新顶点,这些顶点将连接到数据库中特定的现有顶点。

我添加了原始集,将其与"csv到neptune批量格式"脚本分割在https://github.com/awslabs/amazon-neptune-tools/tree/master/csv-to-neptune-bulk-format。

我的问题是,如何以最有效的方式批量加载我的附加集?关于如何理解这一点,我有两个想法,但我希望有人知道一个更简单的方法。

方法1将使用上面的"csv到neptune批量格式"脚本来拆分新的附加集,然后批量加载。然后,我将在新集合与原始集合重叠的地方有重复的顶点,因为上面的脚本将为新集合将连接到原始集合的顶点分配新的顶点id。我有一个函数,然后合并这些重复的顶点。不过,这种方法可能相当耗费资源。

方法2是用上面的脚本分割附加集,然后在生成的csv中为将原始集与附加集连接的边替换连接顶点的id。因此,基本上,边csv将从[~id,~label,~from,~to]更改为[~id、~label、,以补充从第一个bulkupload生成的顶点id,~to>。

我希望我遗漏了一些文档或逻辑,这些文档或逻辑将允许我使用现有的顶点id来简单地批量加载新处理的顶点csv和将新顶点与原始顶点连接的边csv。如有任何帮助或建议,我们将不胜感激。

大容量加载程序可用于的不仅仅是第一次加载到空图中。您可以使用它来添加新的节点和边,以及更新需要添加新属性或替换现有(单个基数(属性值的现有节点和边。

我没有使用csv-to-neptune-bulk-format工具,我通常直接为节点和边生成Neptune CSV格式。

你能说更多关于你想摄入的数据目前的格式,以及为什么你需要使用该工具进行ETL吗?如果你能添加更多的信息,我会相应地更新这个答案。

最新更新