In base alla documentazione su capacity unit calculation, verranno analizzati solo 1 MB di dati per singola richiesta.
In caso di un'operazione di scansione, non è la dimensione degli elementi restituiti dalla scansione, piuttosto è la dimensione degli elementi valutati da Amazon DynamoDB. Cioè, per una richiesta di scansione, Amazon DynamoDB valuta fino a 1 MB di articoli e restituisce solo gli articoli che soddisfano la condizione di scansione.
Per le tabelle con "solo" 1.000 articoli, in teoria ogni volta viene analizzato tutto il tavolo. Si spera che il parametro "limite" (di cui il valore massimo è 100), consentirà di arrestare il processo in precedenza in modo che vengano restituiti al massimo gli articoli limit
.
Se la richiesta non comporta alcuna condizione, il numero di risultati scansionati sarà il numero di risultati. Altrimenti, potrebbe essere molto, molto più grande ma la dimensione accumulata degli elementi scansionati non può superare il limite di 1MB.
Per le operazioni sottoposte a scansione, Amazon considerato che avete consumato
consumed_capacity = math.ceil(sum(parsed_data_size)/1KB)
Ma per favore, non prendere la mia parola su di esso:
import boto
db = boto.connect_dynamodb()
# Notice the "layer1" operation
res = db.layer1.scan('MyTable', attributes_to_get=['id'], limit=10)
print res['ScannedCount']
La documentazione suona come per ogni operazione scan(), l'intera tabella verrà scansionata ma verranno restituiti solo gli elementi inferiori a 1 MB o inferiori al limite. – ensnare
Ogni chiamata '' Scan'' attiverà _analysis_ fino a 1MB di elementi o oggetti '' Limit'' se raggiunti prima. Tuttavia, devi richiamare '' Scan'' sull'intera tabella per essere certo di non perdere una corrispondenza nel caso in cui tu * filtri * i risultati. – yadutaf