我想将我的数据从 DynamoDb 迁移到 Redshift。我不想一次扫描整个表,因为这可能会导致限制。我的表如下:
acountId(哈希键),lastUpdatedTime。
我想我可以在 lastUpdatedTime 上创建 GSI,然后我可以查询,比如给我 day1 到 day5 之间的数据。第二天,我可以在第 6 天到第 7 天之间给我数据。但即使使用 GSI,我的理解是它会扫描整个表,因为我不会提供任何哈希键。我只是有一些时间戳要查询。
我想将我的数据从 DynamoDb 迁移到 Redshift。我不想一次扫描整个表,因为这可能会导致限制。我的表如下:
acountId(哈希键),lastUpdatedTime。
我想我可以在 lastUpdatedTime 上创建 GSI,然后我可以查询,比如给我 day1 到 day5 之间的数据。第二天,我可以在第 6 天到第 7 天之间给我数据。但即使使用 GSI,我的理解是它会扫描整个表,因为我不会提供任何哈希键。我只是有一些时间戳要查询。
创建 GSI 确实是正确的解决方案。但是,如果将 GSI 设置为投影所有属性,则 GSI 创建操作可能会有点慢/昂贵。我建议在 lastUpdatedTime 上创建 GSI,并使用KEYS_ONLY
. 然后,当您扫描时,您将只检索项目键并在那里查询项目,然后在迁移时。
我建议在这里阅读 GSI: https ://docs.aws.amazon.com/fr_fr/amazondynamodb/latest/developerguide/GSI.html