创建GSI需要很长时间

问题描述 投票:9回答:1

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

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

问题:

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

谢谢。

amazon-dynamodb amazon-dynamodb-streams
1个回答
6
投票

GSI拥有自己的WCU和RCU,与主要索引不同且独立。这可能是因为你的GSI上没有足够的WCU吗?

如果您的全局二级索引创建时间过长(在现有大型表上添加索引时很常见),则可以按照以下步骤配置其他写入容量:

打开DynamoDB控制台。

从导航窗格中,选择Tables,然后从列表中选择您的表。

选择“索引”选项卡。

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

大约一分钟后,从“度量标准”选项卡中检查OnlineIndexPercentageProgress度量标准,以查看全局二级索引的创建是否正在顺利进行。

编辑:以上来自AWS Knowledge Center

'OnlineIndexPercentageProgress'说明:

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

选择“度量标准”选项卡。

选择查看所有CloudWatch指标。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.