创建GSI需要很长时间

Dix*_*ale 10 amazon-dynamodb amazon-dynamodb-streams

我有一个已在DynamoDB中创建了近20亿行的表.

由于查询要求,我必须在其中创建全局二级索引(GSI).GSI创建过程在36小时前开始,但仍未完成.门户网站显示项目数量约为1亿.还有很长的路要走.

问题:

  1. 为什么在足够的WCU和RCU被分配(事实上为30k)时需要这么长的时间.
  2. 我使用的GSI分区密钥的值是重复的,这可能是GSI创建花费更多时间的原因(理想情况是我们选择一个不重复跨越多个分区的项目的分区键).
  3. 有没有办法在流程启动时中止GSI的创建?它不允许通过AWS控制台.

谢谢.

F_S*_*O_K 6

GSI拥有自己的WCU和RCU,它们与主索引是不同的。可能是因为您的GSI上没有足够的WCU吗?

如果全局二级索引的创建时间太长(在现有的大表上添加索引时很常见),则可以按照以下步骤设置额外的写容量:

打开DynamoDB控制台。

在导航窗格中,选择“表”,然后从列表中选择表。

选择索引选项卡。

增加索引的写入容量,然后选择“保存”。

大约一分钟后,从“指标”选项卡中检查OnlineIndexPercentageProgress指标,以查看全局二级索引的创建是否令人满意。

编辑:以上来自AWS知识中心

“ OnlineIndexPercentageProgress”说明:

将开始创建全局二级索引。您可以在“指标”选项卡上监视进度:

选择“指标”选项卡。

选择查看所有CloudWatch指标。

在CloudWatch控制台中,选择DynamoDB。在“搜索指标”框中,输入OnlineIndexPercentageProgress。注意:如果搜索返回一个空列表,请等待大约一分钟以填充指标。

选择索引名称以查看进度。