AWS DynamoDB表分区键设计与On Demand模式使用问题咨询
问题1解答
你当前的表键设计完全匹配你的查询场景,效率非常高。你的查询属于DynamoDB原生支持的分区键精确匹配+排序键前缀范围查询,不需要全表扫描、不需要额外创建全局二级索引,查询延迟可以稳定在毫秒级,是最优的设计方案。
问题2解答
这个分区设计完全合理。DynamoDB单个分区的存储上限是10GB,你单文件最多2万条记录,就算每条记录大小到1KB,总大小也才20MB,远低于单分区存储阈值,不会出现分区拆分或者分布不均的问题。
问题3解答
你当前的场景完全不需要使用key-sharing方案。key-sharing仅适用于单分区键对应数据量超过10GB、或者单分区键持续吞吐量超过3000RCU/1000WCU的场景。你导入CSV的流量是一次性突发流量,单文件最多2万条数据,完全达不到需要分片的阈值。额外给分区键加后缀反而会增加查询逻辑复杂度,查询同一个文件的同状态记录需要跨多个分区键聚合,反而降低查询效率。
问题4解答
3000RCU/1000WCU是单分区的瞬时吞吐量上限,不是整个表的配额。按需模式下整表的吞吐量会根据实际访问量自动弹性扩容,只要流量不是持续集中在同一个分区上,不会触发限流。就算短时间内单分区流量超过阈值,DynamoDB内置的突发流量缓冲池也会承接峰值,只要不是持续30分钟以上打满单分区吞吐量,基本不会抛出ProvisionedThroughputExceededException异常。如果偶发该异常,添加指数退避重试逻辑即可解决,你的CSV导入场景基本不会遇到这个问题。
内容的提问来源于stack exchange,提问作者JohnyMotorhead
相关产品推荐
相关产品推荐

