python dynamodb获得1000个条目

时间:2014-12-20 21:05:26

标签: python amazon-dynamodb boto sample

我正在使用amazon dynamodb并通过python boto查询界面访问它。我有一个非常简单的要求

  1. 我想获得1000个条目。但我事先并不知道主键。我只想获得1000个条目。我怎样才能做到这一点? ...我知道如何使用query_2,但这需要事先知道主键。

  2. 也许之后我想得到另一个不同的1000并继续这样。您可以将其视为未经替换的采样。我该如何做?

  3. 非常感谢任何帮助。

2 个答案:

答案 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