使用Query (python boto3)从Dynamo DB表中获取所有记录



我在Dynamo Db中有一个表,有200万条记录。表将日期(yyyy-mm-dd)作为分区键,将帐户I'd作为排序键。目前,我们使用boto3.client.dynamodb.query来获取基于KeyConditionExpression的数据,其中X是日期。我想查询仅基于年份的记录?KeyConditionExpressionExpression Attribute Values应该是什么?

Dynamo Db中的示例行:

{"date": {"s" : "2022-04-29"},"account_id": {"s" :"6208378688923445"}}

这里date是分区键,account_id是排序键。我要查询所有年份为2022的记录。

一个查询只能操作一个分区键。如果要运行此查询,需要添加一个GSI,并将年份作为分区键。这有额外的写入和存储成本。如果您不需要经常运行这个查询,那么在应用程序层中扫描表并进行过滤可能会更便宜。如果您有200万条记录,每条记录为500字节,则扫描的成本小于0.02美元

最新更新