Amazon web services 如何将一个DynamoDB表复制到另一个DynamoDB表,同时在过程中更改主键?

Amazon web services 如何将一个DynamoDB表复制到另一个DynamoDB表,同时在过程中更改主键?,amazon-web-services,amazon-dynamodb,amazon-data-pipeline,Amazon Web Services,Amazon Dynamodb,Amazon Data Pipeline,我在这里找到了一些引用,这些引用涉及到将一个dynamoDB表复制到另一个dynamoDB表,但是我很难找到任何涉及在复制时更改主键的内容 基本上,我有一个这样的模式(字段/数据截然不同,但想法是一样的): 大约有2.8亿多行,大小为62 GB 我需要将其复制到一个新表中,如下所示: PK Author Text -------------------------- 1R Bob [lots of text] 2H Jim [lots of text]

我在这里找到了一些引用,这些引用涉及到将一个dynamoDB表复制到另一个dynamoDB表,但是我很难找到任何涉及在复制时更改主键的内容

基本上,我有一个这样的模式(字段/数据截然不同,但想法是一样的):

大约有2.8亿多行,大小为62 GB

我需要将其复制到一个新表中,如下所示:

PK  Author Text           
--------------------------
1R   Bob    [lots of text]
2H   Jim    [lots of text]
3J   Sarah  [lots of text]
...
你看,在传输数据的同时,我也在构建一个新的主键(
PK
+
LastInitial

我确信我可以用AWS的数据管道工具轻松地完成这项工作,但我似乎不知道如何进行转换。同样令人遗憾的是,我不能将它直接从一个dynamo表转移到另一个dynamo表,它必须先转移到S3


有没有一种巧妙的方法来解决这个问题,或者我只需要使用SDK编写一个脚本并在EC2实例上运行它?

可能还有其他方法来解决这个问题,但是,您可以尝试使用Glue ETL job将数据从一个表复制到另一个表。这是一个有点黑客,但它可以很容易地完成工作。您可以使用Glue crawler创建第一个表的数据目录。然后,您可以使用建议的Glue ETL作业代码将数据复制到第二个表中。您还应该能够在ETL作业中以任何方式操作数据

感谢您的回复:)您认为这会比仅仅创建一个SDK脚本在EC2实例上运行更快和/或更便宜吗?这取决于您尝试移动的数据量和移动速度。如果您有数百万行,EC2脚本可能不是一个好的选择,它会很慢,并且根据您使用的实例类型,价格可能会有所不同。如果你有几千行或几十万行,胶水可能是一种过度的杀伤力
PK  Author Text           
--------------------------
1R   Bob    [lots of text]
2H   Jim    [lots of text]
3J   Sarah  [lots of text]
...