View a markdown version of this page

Le migliori pratiche per la messa in blocco di articoli in DynamoDB - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le migliori pratiche per la messa in blocco di articoli in DynamoDB

Di seguito sono riportate le migliori pratiche per l'utilizzo di articoli put in blocco.

Suddividi il tuo input su più oggetti S3 di dimensioni simili

DynamoDB legge ed elabora oggetti S3 in parallelo, quindi un set di oggetti di dimensioni simili viene completato più velocemente di un oggetto grande o di un mix di oggetti molto grandi e molto piccoli. Ogni operazione supporta fino a 50.000 oggetti S3 e ogni oggetto può avere una dimensione massima di 5 GB. Se il set di dati contiene più di 50.000 oggetti, consolidali in un numero inferiore di oggetti più grandi.

Rimani entro i limiti di dimensione per il tuo livello di prestazioni

Ogni livello di prestazioni ha il proprio limite alla dimensione totale di input di un'operazione. Per caricare un set di dati superiore al limite, suddividilo in più operazioni o utilizza il livello di prestazioni accelerato se la tabella lo supporta. Per i limiti, consulta Quote per gli articoli venduti all'ingrosso.

Distribuisci le scritture in modo uniforme nello spazio chiave

Bulk put items offre prestazioni migliori quando i dati hanno chiavi di partizione ad alta cardinalità distribuite uniformemente nello spazio delle chiavi. Se un oggetto S3 contiene elementi ordinati per chiave di partizione, le scritture consecutive hanno come obiettivo la stessa partizione, creando una partizione a caldo continuo e rallentando l'operazione. Randomizza l'ordine dei dati ordinati prima di iniziare l'operazione. Per ulteriori informazioni, consulta Distribuzione efficiente dell’attività di scrittura durante il caricamento dei dati in DynamoDB.

Convalida i dati inseriti prima di iniziare

Esegui un passaggio di convalida su un campione dei tuoi file prima di inviare un'operazione di grandi dimensioni, perché un singolo record che DynamoDB non è in grado di analizzare impedisce la lettura del resto dell'oggetto e può terminare l'intera operazione FAILED. Per le condizioni che bloccano un oggetto, vedi Errori di convalida che bloccano un oggetto.

Usa espressioni condizionali per proteggere i dati esistenti

Se non devi sovrascrivere dati esistenti o più recenti, aggiungi una condizione di solo inserimento o una protezione della versione a ogni record, comprese le chiavi che l'applicazione scrive durante l'esecuzione dell'operazione. Per la sintassi e gli esempi, vedi Per-item espressioni di condizione e Scrizioni simultanee sulle stesse chiavi.

Non modificate gli oggetti S3 durante un'operazione attiva

Mantieni invariati gli oggetti S3 di origine mentre è in corso un'operazione. La modifica di un oggetto di input può causare il fallimento dell'operazione con codice di errore ObjectModifiedInS3DuringImport. Attendi il completamento dell'operazione prima di modificare i file di origine e riavviala con una versione stabile degli oggetti se visualizzi questo errore.

Usa un token client quando ritenti una richiesta di avvio

Passa un ClientToken con StartBulkPutItems ogni volta che potresti riprovare la richiesta, in modo che un nuovo tentativo restituisca l'operazione esistente invece di avviarne una seconda. Per sapere come funziona il token, vedi Avvio di un'operazione di inserimento in blocco degli elementi.

Proteggi i consumatori a valle

Su una tabella con DynamoDB Streams o un flusso di dati Kinesis abilitato, ogni scrittura di massa produce un record di flusso alla velocità di scrittura dell'operazione. I consumatori con dimensioni adeguate al traffico normale possono rimanere indietro. DynamoDB Streams conserva i record per 24 ore. Impostare MaxWriteRequestUnits per limitare la velocità di scrittura degli articoli messi in massa a un livello che i tuoi consumatori possano sostenere.

Non impostare MaxWriteRequestUnits più basso del necessario. Un limite basso rallenta l'operazione, pertanto un'operazione di grandi dimensioni potrebbe non essere completata entro il tempo massimo di elaborazione e terminare FAILED con codice di errore Timeout, lasciando gli articoli rimanenti non scritti. Scegli la tariffa più alta che i tuoi consumatori possono sostenere. Per ulteriori informazioni, consulta Valori di stato.