Neptune图批量导入CSV时重复Edge ID问题解决方案咨询
Neptune批量加载CSV时处理重复Edge ID的方案
问题描述
我正尝试通过curl命令调用Neptune批量加载API,将CSV文件数据导入图数据库,但加载失败,原因是目标图中已存在对应Edge ID。当前使用的请求参数如下:
{ "mode": "AUTO", "updateSingleCardinalityProperties": "TRUE", "parallelism": "OVERSUBSCRIBE", "source": <file path>, "failOnError": "FALSE", "region": <region>, "format": "csv", "queueRequest": "TRUE", "iamRoleArn": <IAM role> }
此前尝试在加载前查询所有已存在的Edge ID,但因数据量过大,耗时超过一天,现寻求替代方案,实现覆盖已存在的Edge ID或直接忽略重复项。
可行解决方案
调整加载模式为
MERGE
Neptune的批量加载支持MERGE模式,无需提前查询现有ID:- 若Edge已存在,会根据CSV中的数据更新其属性(配合
updateSingleCardinalityProperties": "TRUE"参数,可覆盖单基数属性) - 若Edge不存在,则直接创建
- 修改请求参数中的
mode字段为MERGE即可生效
- 若Edge已存在,会根据CSV中的数据更新其属性(配合
添加
ignoreErrors参数忽略重复项
结合已设置的failOnError": "FALSE",新增ignoreErrors": "DuplicateEntry"参数:- 加载时遇到Edge ID重复的错误会直接跳过,不会中断整个加载任务
- 该参数仅忽略重复条目错误,其他类型错误仍会根据
failOnError的配置处理
利用CSV属性覆盖逻辑
在MERGE模式下,确保CSV中的Edge ID与现有Edge ID完全匹配:- CSV中指定的属性会覆盖现有Edge的对应属性
- CSV中未提及的属性,现有Edge的属性会保持不变
内容的提问来源于stack exchange,提问作者Sudha N
相关产品推荐
相关产品推荐

