Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

在数据上传期间有效分发写入活动

通常,从其他数据源加载数据时,Amazon DynamoDB 将在多台服务器上为表数据分区。这将在同时向分配的所有服务器上传数据时获得更好的性能。

例如,假设要将用户消息上传至使用复合主键(其中 UserID 作为主键,MessageID 作为排序键)的 DynamoDB 表。

上传数据时,可以采用的一种方法是,为每位用户 (一位用户接着另一位用户) 上传所有消息项目:

UserID MessageID

U1

1

U1 2
U1 ...
U1 ...直到 100

U2

1

U2 2
U2 ...
U2 ...直到 200

这种情况下存在的问题是,您未在 DynamoDB 的分区键值之间分散您的写入请求。一次采用一个分区键值并上传其所有项目,然后再转至下一个分区键值并执行相同操作。

在后台,DynamoDB 将跨多台服务器为表数据分区。要充分利用为表配置的所有吞吐容量,必须跨分区键值分发工作负载。通过将上传工作量不均匀地定向至所有具有相同分区键值的项目,可能会导致对 DynamoDB 为表配置的所有资源的使用不充分。

可分发上传工作,方式为使用排序键通过每个分区键值加载一个项目,然后通过每个分区键值加载另一个项目,以此类推:

UserID MessageID

U1

1

U2 1
U3 1
... ...

U1

2

U2 2
U3 2
... ...

此序列中的每次上传都使用不同的分区键值,以便能够同时使用更多 DynamoDB 服务器,从而提高吞吐量性能。