La mia tabella è di circa 220 MB con 250 k di record al suo interno. Sto cercando di recuperare tutti questi dati in python. Mi rendo conto che questo deve essere un processo batch bannato e ripetuto, ma non sono sicuro di come sia possibile impostare i batch in modo che inizino da dove era rimasto il precedente.Scansione completa di dynamoDb con boto3
C'è qualche modo per filtrare la mia scansione? Da quello che ho letto il filtro si verifica dopo il caricamento e il caricamento si interrompe a 1 MB, quindi non sarei in grado di eseguire la scansione di nuovi oggetti.
Qualsiasi assistenza sarebbe gradita.
import boto3
dynamodb = boto3.resource('dynamodb',
aws_session_token = aws_session_token,
aws_access_key_id = aws_access_key_id,
aws_secret_access_key = aws_secret_access_key,
region_name = region
)
table = dynamodb.Table('widgetsTableName')
data = table.scan()
Nota che i prodotti in 'pagina [' Gli elementi "]" potrebbero non essere ciò che ti aspetti: poiché questo cercapersone è dolorosamente generico, quello che riceverai per ogni articolo di DynamoDB è un dizionario di tipo formato: valore, ad esempio '{'myAttribute': {'M': {}}, 'yourAttribute': {'N': u'132457 '}}' per una riga con una mappa vuota e un tipo numerico (che viene restituito come una stringa che deve essere lanciato, io suggerisco 'decimal.Decimal' per questo poiché prende già una stringa e gestirà i numeri non interi). Altri tipi, ad es. stringhe, mappe e booleani, vengono convertiti nei loro tipi Python da boto. – kungphu
è possibile avere un filtro di scansione o limerexpressione con impaginazione? Gli spettatori – vnpnlz
sarebbero fantastici, se non fosse per il problema sollevato da @kungphu. Non vedo l'uso per qualcosa che fa una cosa utile, ma la nega inquinando i dati di risposta con metadati irrilevanti –