首页 > 解决方案 > 截断并重新加载

问题描述

我正在尝试截断 Neptune 数据库并通过批量加载重新加载相同的数据,但数据库没有考虑将相同的数据加载到 Neptune。我们使用 gV().drop() 和类似的边缘。谁能帮我解决这个问题。我的项目涉及基于时间表的截断和重新加载修改后的数据,并且将具有相同的 ID

我们删除实例并再次重新创建 Neptune 然后加载工作正常

curl -X POST \
    -H 'Content-Type: application/json' \
    https://*:8182/loader -d '
    {
      "source" : "s3://***",
      "format" : "csv",
      "iamRoleArn" : "",
      "region" : "*",
      "failOnError" : "FALSE",
      "parallelism" : "MEDIUM"
    }'

提供的记录数和识别的 Neptune 批量加载器数量不匹配,并且对于首次成功的相同数据重新加载失败

标签: pythonamazon-web-servicesgremlinbulk-loadamazon-neptune

解决方案


您确定您的删除请求已完全完成吗?根据您的数据规模,截断整个数据库可能需要一些时间和 IO,并且在几乎所有情况下,创建一个新集群并将其用于此类用例是一个更好的选择。在某些用例中,客户创建空集群(其中没有实例)并让他们的应用程序声明对空集群的要求,向其中添加一个实例,如果他们想要一个干净的 slate 数据库就开始使用它。

注意事项

  1. 删除大型数据库可能需要时间
  2. 删除数据库涉及大量 IO,并且会产生费用
  3. 删除集群并使用新集群通常更快,而且成本更低
  4. 您可以拥有几乎没有成本的空集群,并且您可以在需要时配置实例
  5. 将实例添加到现有集群或创建新集群通常需要不到 10 分钟,并且您始终可以在您的应用程序中构建登录以提前计划并配置新数据库,切换您的应用程序,然后终止您的旧集群(有或没有最后的快照)。

推荐阅读