我在发电机上有一张活动表,里面有大约2800万条记录 该表有一些GSI,我想将其更改为LSI,但LSI只能在创建表时创建。
我需要创建一个新表并以最少的停机时间迁移数据。我在想我会做以下事情: 使用正确的索引创建新表。 更新代码以将记录写入旧表和新表。启动时,请记下第一条记录的时间戳。 编写一个简单的流程来同步现有数据,以便在我的第一个日期之前创建日期 我必须在新表中添加一个锁定字段,以防止更新现有记录时的竞争条件。 当它全部同步时,我们将交换使用新表。
我认为这样可行,但它相当复杂并且容易出错。有没有人找到更好的方法来做到这一点?
答案 0 :(得分:0)
这是一种方法:
(让我们将带有GSI的表称为oldTable,将带有LSI的新表称为newTable)。