从哈希键检索不同的值-DynamoDB

从哈希键检索不同的值-DynamoDB,第1张

从哈希键检索不同的值-DynamoDB

使用DynamoDB扫描,您需要在客户端上过滤掉重复项(在您的情况下,使用boto)。即使使用反向架构创建GSI,您仍然会得到重复的副本。给定一个名为stamped_emails的email_id
+ timestamp的H + R表,所有唯一的email_ids的列表是H + R
stamped_emails表的实例化视图。您可以在stamped_emails表上启用DynamoDB流,将Lambda函数订阅到stamped_emails的Stream,该函数将PutItem(email_id)放置到名为emails_only的仅散列表中。然后,您可以扫描emails_only,并且不会重复。

最后,关于您的成本问题,即使您仅从这些项目中请求某些计划的属性,Scan也会读取整个项目。其次,Scan必须通读每一项,即使它已由Filterexpression(条件表达式)过滤掉了。第三,扫描顺序读取项目。这意味着出于计量目的,每个扫描调用都被视为一个大读取。这样做的成本含义是,如果“扫描”呼叫读取200个不同的项目,则不一定要花费100个RCU。如果每个项目的大小为100字节,则该扫描调用将花费ROUND_UP((20000字节/
1024 kb /字节)/ 8 kb / EC RCU)= 3
RCU。即使此调用仅返回123个项目,如果“扫描”必须读取200个项目,在这种情况下也会产生3个RCU。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5673836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存