De acuerdo con la documentación en capacity unit calculation, solo se analizarán hasta 1 MB de datos por cada solicitud.
En el caso de una operación de escaneo, no tiene el tamaño de los elementos devueltos por el escaneo, sino que es del tamaño de los elementos evaluados por Amazon DynamoDB. Es decir, para una solicitud de exploración, Amazon DynamoDB evalúa hasta 1 MB de elementos y devuelve solo los elementos que satisfacen las condiciones de exploración.
Para tablas con 'solo' 1.000 elementos, en teoría analizaría toda la tabla cada vez. Con suerte, el parámetro 'límite' (cuyo valor máximo es 100) permitirá detener el proceso antes de que se devuelvan como máximo limit
elementos.
Si lo solicita no implica ninguna condición, el recuento de elementos escaneados será el número de resultados. De lo contrario, podría ser mucho, mucho mayor, pero el tamaño acumulado de los elementos escaneados no puede cruzar el límite de 1 MB.
Para las operaciones digitalizadas, Amazon considera que consume
consumed_capacity = math.ceil(sum(parsed_data_size)/1KB)
Pero, por favor, no tome mi palabra:
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 documentación lo hace sonar como para cada operación de escaneo(), toda la tabla se escaneará pero solo se devolverán los elementos de menos de 1 MB o menos. – ensnare
Cada llamada '' Scan'' disparará el _analysis_ de hasta 1MB de elementos o '' Límite'' Items si se alcanzó antes. Sin embargo, debe llamar a '' Scan'' en toda la tabla para asegurarse de no perder una coincidencia en caso de que esté * filtrando * los resultados. – yadutaf