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

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

问题:


当有足够的WCU和RCU时,为什么要花这么长时间
大量(实际上是30k)。
我使用的GSI分区键的值是重复的,这可能就是GSI创建花费更多时间的原因(理想的情况是我们选择了一个分区键,该键不会重复出现在多个分区上)。
有没有办法在过程启动时中止创建GSI?它不允许通过AWS控制台。


谢谢。

最佳答案

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

如果您的全局二级索引创建时间过长(常见
在现有的大表上添加索引时),您可以设置
通过执行以下步骤来增加写入容量:
打开DynamoDB控制台。
在导航窗格中,选择表格,
然后从列表中选择表格。
选择索引选项卡。
增加索引的写入容量,然后选择“保存”。

大约一分钟,请从以下位置检查OnlineIndexPercentageProgress指标
“指标”标签以查看是否创建了全局二级索引
进展令人满意。

编辑:从AWS Knowledge Center上方
“ OnlineIndexPercentageProgress”说明:

将开始创建全局二级索引。您可以监控
“指标”选项卡上的进度:
选择指标标签。
选择查看所有CloudWatch指标。
在CloudWatch控制台中,选择DynamoDB。在“搜索指标”框中,输入OnlineIndexPercentageProgress。注意:如果搜索返回空
列表中,请等待一分钟以填充指标。
选择名称
索引以查看进度。

关于amazon-dynamodb - 建立GSI需要很长时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47920651/

10-11 10:53