14

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

由于查询要求,我不得不在其中创建一个全局二级索引(GSI)。GSI 创建过程在 36 小时前开始,但仍未完成。Portal 显示项目数量约为 1 亿。这么长的路要走。

问题:

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

谢谢。

4

1 回答 1

11

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

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

打开 DynamoDB 控制台。

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

选择索引选项卡。

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

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

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

'OnlineIndexPercentageProgress' 说明:

将开始创建全局二级索引。您可以在 Metrics 选项卡上监控进度:

选择指标选项卡。

选择查看所有 CloudWatch 指标。

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

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

于 2017-12-21T09:06:52.557 回答