【发布时间】:2014-03-16 00:46:42
【问题描述】:
我正在尝试使用 boto 和 python 删除 DynamoDB 表中的大量项目。我的表设置了主键作为设备 ID(想想 MAC 地址。)每个设备 ID 在表中有多个条目,因为辅助键是 UNIX 时间戳。
根据我的阅读,这段代码应该可以工作:
from boto.dynamodb2.table import Table
def delete_batch(self, guid):
table = Table('Integers')
with table.batch_write() as batch:
batch.delete_item(Id=guid)
来源:http://docs.pythonboto.org/en/latest/dynamodb2_tut.html#batch-writing
但是它返回“提供的关键元素与架构不匹配”作为错误消息。
我怀疑问题是因为 guid 在我的表中不是唯一的。
鉴于此,有没有办法在不指定辅助键的情况下删除具有相同主键的多个项目?
【问题讨论】:
-
你的
Integers架构是什么? -
{"Id" : string, "Date" : number, "Temp" : number, "Probenum" : number} Primary Hash Key: Id (String) Primary Range Key: Date (Number)
-
您的批处理请求确实与架构不匹配。请查看此问题以获取可能的解决方案:what-is-the-recomended-way-to-delete-a-large-number-of-items-from-dynamodb.
标签: python boto amazon-dynamodb