将数据从 Amazon S3 导入到 DynamoDB 的最佳实践 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将数据从 Amazon S3 导入到 DynamoDB 的最佳实践

以下是将数据从 Amazon S3 导入到 DynamoDB 的最佳实践。

保持在 50000 个 S3 对象的限制以下

每个导入作业最多支持 50000 个 S3 对象。如果您的数据集包含超过 50000 个对象,请考虑将它们合并为更大的对象。

避免过大的 S3 对象

S3 对象是并行导入的。如果有大量中型 S3 对象,可以执行并行导入,而不会产生过多的开销。对于 1 KB 以下的项目,可以考虑在每个 S3 对象中放入 400 万个项目。如果您的平均项目大小较大,则按比例在每个 S3 对象中放入较少的项目。

随机排列排序的数据

如果 S3 对象按排序顺序保存数据,则它会创建滚动热分区。在这种情况下,一个分区接收所有活动,之后是下一个分区,依此类推。按排序顺序的数据定义为 S3 对象中的顺序项目,这些项目将在导入期间写入同一目标分区。数据按排序顺序的一种常见情况是 CSV 文件,其中项目按分区键排序,这样重复的项目可以共享同一个分区键。

为了避免出现滚动热分区,我们建议您在这些情况下随机排列顺序。这可以通过分散写入操作来提高性能。有关更多信息,请参阅 在数据上传期间高效分配写入操作

压缩数据以使 S3 对象的总大小保持在区域限制以下

从 S3 导入过程中,对要导入的 S3 对象数据的总大小有限制。在 us-east-1、us-west-2 和 eu-west-1 区域中的限制是 15 TB,在所有其他区域中的限制是 1 TB。该限制基于原始 S3 对象的大小。

压缩功能可以实现在限制范围内导入更多原始数据。如果仅靠压缩不足以使导入量保持在限制范围内,您也可以联系 Amazon Premium Support 请求增加配额。

注意项目大小对性能的影响

如果您的平均项目大小非常小(低于 200 字节),则相对于较大的项目大小,导入过程花费的时间可能要长一点。

考虑在没有任何全局二级索引的情况下导入

导入任务的持续时间可能取决于是否存在一个或多个全局二级索引 (GSI)。如果您计划使用基数低的分区键创建索引,则如果将索引创建推迟到导入任务完成之后(而不是将其包含在导入任务中),则导入速度可能会更快。

注意

在导入期间创建 GSI 不会产生写入费用(导入后创建 GSI 会产生写入费用)。