2024-10-02 10:30:30 发布
网友
我有一个数据库有段号,节拍号,病人号
在dynamoDB版本2中,当我使用以下命令进行扫描时,我只能获得1个特定患者的值。当我输入其他片段时,患者值我得到一个throughputExceedexception。在
table.scan(segment_id__eq='xCrKYvnfZlm6VCQ',beat_id__gt=1,patient_id__eq='3854520.edf')
您正在执行的扫描将读取DynamoDB表中的每个项目,并在满足指定条件(segment_uid_ueq='xcrkyvfzlm6vcq',beat_id_ugt=1,patient_id_ueq='3854520.edf')返回。即使不满足读取条件,也会消耗每个项目的已设置容量。如果您希望检索单个记录,那么使用对DynamoDB的GetItem或BatchGetItem调用将是最有效的,因为您只会消耗指定项的读取容量。如果要检索特定范围的记录,则使用Range Key或Global或Local Secondary Index以便可以Query这些项,因为只会消耗满足查询条件的所有项的读取容量。你能提供更多关于表模式的信息吗?在
请参阅这个developer guide,它详细描述了扫描和查询之间的区别。在
使用查询的一个例子是,如果segment_id是散列键,beat_id是范围键。您可以查询具有指定段_id和指定beat_id范围的所有记录。这将只消耗检索这些特定记录所需的读取容量,而不是读取整个表。另外,您可以将查询filter应用于其他属性,如patient_id,这样只返回您想要的结果。在
有关扫描/查询消耗容量的详细信息:
查询和扫描最终都是一致的读取,因此一个读取容量单元将允许您以每秒8KB的速度进行读取。在
如果您仍然遇到限制,以下是一些减轻异常的方法:
有关扫描定价的更多详细信息:
要计算使用Scan或Query读取表中的项所需的读取容量:
要计算使用GetItem或BatchGetItem读取表中的项所需的读取容量:
例如,假设我的表中有10个项,它们都是1KB,我计划使用最终一致的操作检索它们。如果我用GetItem检索它们,每个单独的条目将消耗1/2的读容量单元,因此总成本将是1/2*10=5个读容量单元。如果我用scan检索它们,所有项目的总大小是10KB,这将消耗2个读容量单位。在
您正在执行的扫描将读取DynamoDB表中的每个项目,并在满足指定条件(segment_uid_ueq='xcrkyvfzlm6vcq',beat_id_ugt=1,patient_id_ueq='3854520.edf')返回。即使不满足读取条件,也会消耗每个项目的已设置容量。如果您希望检索单个记录,那么使用对DynamoDB的GetItem或BatchGetItem调用将是最有效的,因为您只会消耗指定项的读取容量。如果要检索特定范围的记录,则使用Range Key或Global或Local Secondary Index以便可以Query这些项,因为只会消耗满足查询条件的所有项的读取容量。你能提供更多关于表模式的信息吗?在
请参阅这个developer guide,它详细描述了扫描和查询之间的区别。在
使用查询的一个例子是,如果segment_id是散列键,beat_id是范围键。您可以查询具有指定段_id和指定beat_id范围的所有记录。这将只消耗检索这些特定记录所需的读取容量,而不是读取整个表。另外,您可以将查询filter应用于其他属性,如patient_id,这样只返回您想要的结果。在
有关扫描/查询消耗容量的详细信息:
查询和扫描最终都是一致的读取,因此一个读取容量单元将允许您以每秒8KB的速度进行读取。在
如果您仍然遇到限制,以下是一些减轻异常的方法:
有关扫描定价的更多详细信息:
要计算使用Scan或Query读取表中的项所需的读取容量:
要计算使用GetItem或BatchGetItem读取表中的项所需的读取容量:
例如,假设我的表中有10个项,它们都是1KB,我计划使用最终一致的操作检索它们。如果我用GetItem检索它们,每个单独的条目将消耗1/2的读容量单元,因此总成本将是1/2*10=5个读容量单元。如果我用scan检索它们,所有项目的总大小是10KB,这将消耗2个读容量单位。在
相关问题 更多 >
编程相关推荐