dynamodb全局表上的GSI是否自动复制?

问题描述

我在全局表中定义了一个gsi(在usw2区域),该全局表配置为自动复制到use2。我在usw2中为我的表定义了一个gsi-索引会自动复制吗?还是我也需要在其他区域手动创建?

解决方法

有两种将区域添加到全局表的方法。以旧的方式-这是直到2019年11月的通常方式-您需要自己创建相同的表,实际上,您还需要在其他区域中自己创建相同的索引。然后,您将使用UpdateGlobalTable。引用此操作的documentation

如果指定了全局二级索引,则还必须满足以下条件:

  • 全局二级索引必须具有相同的名称。
  • 全局二级索引必须具有相同的哈希键和排序键(如果存在)。
  • 全局二级索引必须具有相同的预配置和最大写入容量单位。

复制到另一个区域的新方法(2019年11月)是使用带有UpdateTable参数的ReplicaUpdates。这种方式不需要您出于其他原因手动创建表表。 Amazon似乎没有记录该表的创建方式以及是否在其上也创建了相同的索引,但是鉴于上述信息,我看不出它为什么不会创建相同的索引的任何原因,就像以前一样要求。

当然,您最好做的就是尝试一下,然后报告您的发现:-)