我们目前正在设计一个 dynamodb 表来存储某些文件属性。有2个主要列
- 日期:- 这包含 YYMMDD 格式的日期,例如:-20190618
- 文件名:- xxxxxxxxxxxx.json
目前分区键是日期,排序键是文件名。我们预计每天大约有 500000 个具有不同文件名的文件(这可能会随着时间的推移而增加)。文件名每天都会重复相同,即典型模式如下所示
日期 文件名 20190617 abcd.json 20190618 abcd.json
我们有一系列基于Date和 dynamodb 触发器的查询。查询运行良好。目前我们正在观察的是并发 lambda 执行的数量限制为 2,因为我们是按日期分区的。在尝试提高 lambda 的并发性时,我们遇到了 2 个解决方案
1)参考以下链接(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-sharding.html),一个想法是为日期字段添加固定数量的随机后缀,即(20190617.1 到 20190617.500)将数据分成 500 个分区,每个分区 1000 条记录。这将确保一定程度的并发性,并且查询的更改也很小
2)第二个选项是更改表的分区如下分区键:- 文件名和排序键:- 日期。这将导致大约 500000 个分区,(可以增加)。对于按日期查询,我们需要添加一个 GSI,但我们将在 Lambda 中实现更多并发
我们还没有创建一个有 500000 个分区(可以增加)的表。任何机构都有这样的经验......如果是这样,请发表评论
任何帮助表示赞赏