繁体   English   中英

使用 boto3 的 dynamodb 表中的项目数

[英]Number of items in a table in dynamodb using boto3

我正在尝试从 dynamo db 获取表中的项目数。

代码

def urlfn():
     if request.method == 'GET':
          print("GET REq processing")
          return render_template('index.html',count = table.item_count)

但我没有得到真正的计数。 我发现获取真实计数有 6 小时的延迟。 有什么方法可以获取表中项目的真实数量。

假设在上面的代码中该表是已经定义的服务资源,您可以使用:

len(table.scan())

这将为您提供表中项目的最新计数。 会读取表格中的每一项——对于非常大的表格,这可能需要很长时间。 并且它使用您桌子上的读取容量来这样做。 所以,对于大多数实际用途来说,这确实不是一个很好的方法,

根据您在这里的用例,还有一些其他选项:

  1. 添加一个元项目,每次将新文档添加到发电机时都会更新该元项目。 这只是您想要的任何 hash 键/排序键组合的文档,每次您将新项目添加到数据库时,您将其添加 1 的属性为“值”。

  2. 你忘了使用 Dynamo。 抱歉,这听起来很刺耳,但 DynamoDB 是一个非 SQL 数据库,试图以与传统关系数据库系统相同的方式使用它是愚蠢的。 # of 'rows' 不是 Dynamo 设计的目的,因为那不是它的用例 scope。Dynamo 中没有行 - 有文档,这些文档是分区的,你一次访问它们的小块 - 意思是后端架构不适合在任何给定时间了解整个系统中的内容(因此延迟 6 小时)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM