2

我尝试在大小约为 200MB 的 DynamoDB 表中添加索引。

它花了将近 15 个小时,并且仍在运行。我检查了我是否为索引提供了低读/写 IOPS。现在我想增加 IOPS 并重新启动索引创建活动。

任何想法 - 如果可以取消当前操作?

谢谢

4

2 回答 2

3

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html

您不能取消进行中的全局二级索引创建。

但从好的方面来说,您需要取消操作以更改吞吐能力是不正确的。

如果索引上的预置写入吞吐量设置太低,则索引构建将需要更长的时间才能完成。为了缩短构建新全局二级索引所需的时间,您可以临时增加其预置写入容量。

编辑:

创建索引后,您应该设置其预置写入容量以反映应用程序的正常使用情况。

于 2018-05-03T07:39:58.827 回答
1

您可以使用 AWS CLI 调整当前运行的索引创建的读取容量单位和写入容量单位值:

创建一个名为 gsi-update-MyIndex.json 的文件,其内容如下:

[
  {
    "Update": {
      "IndexName": "BluekaiID-index",
      "ProvisionedThroughput": {
        "ReadCapacityUnits": 1,
        "WriteCapacityUnits": 100
      }
    }
  }
]

然后,执行以下命令:

aws dynamodb update-table --table-name mytablename --global-secondary-index-updates file://gsi-update-MyIndex.json

您可能还想使用以下命令将主表上的值提高一分钟:

aws dynamodb update-table --table-name mytablename --provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=1

完成并加载索引创建后,使用较小的值重新运行上述命令以适应您的正常流量。

于 2019-04-01T22:10:46.103 回答