我正在使用amazon dynamodb并通过python boto查询界面访问它。我有一个非常简单的要求
我想获得1000个条目。但我事先并不知道主键。我只想获得1000个条目。我怎样才能做到这一点? ...我知道如何使用query_2,但这需要事先知道主键。
也许之后我想得到另一个不同的1000并继续这样。您可以将其视为未经替换的采样。我该如何做?
非常感谢任何帮助。
答案 0 :(得分:2)
使用Table.scan(max_page_size=1000)
答案 1 :(得分:1)
获取所有主键。
def get_all_primary_keys():
ddb_client = boto3.client('dynamodb')
primary_keys= []
count = 0
r = ddb_client.scan(
TableName='your_TABLE',
Select='SPECIFIC_ATTRIBUTES',
AttributesToGet=[
'your_primary_key',
],
)
count += r['Count']
for i in r['Items']:
primary_keys .append(i['your_primary_key']['S'])
'''discards data after 1MB, hence the following code'''
while True:
try:
r = ddb_client.scan(
TableName='your_TABLE',
Select='SPECIFIC_ATTRIBUTES',
AttributesToGet=[
'your_primary_key',
],
ExclusiveStartKey={
'your_primary_key': {
'S': r['LastEvaluatedKey']['your_primary_key']['S']
}
}
)
count += r['Count']
for i in r['Items']:
primary_keys .append(i['your_primary_key']['S'])
except KeyError as e:
print e
break
return primary_keys