

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
<a name="BulkPutItems.BestPractices"></a>

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
<a name="BulkPutItems.BestPractices.SplitInput"></a>

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
<a name="BulkPutItems.BestPractices.SizeLimit"></a>

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](ServiceQuotas.md#limits-bulk-put-items).

## Distribuisci le scritture in modo uniforme nello spazio chiave
<a name="BulkPutItems.BestPractices.DistributeKeys"></a>

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](bp-partition-key-data-upload.md).

## Convalida i dati inseriti prima di iniziare
<a name="BulkPutItems.BestPractices.ValidateInput"></a>

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](BulkPutItems.Format.md#BulkPutItems.Format.ValidationErrors).

## Usa espressioni condizionali per proteggere i dati esistenti
<a name="BulkPutItems.BestPractices.Conditions"></a>

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](BulkPutItems.Format.md#BulkPutItems.Format.Conditions) e [Scrizioni simultanee sulle stesse chiavi](BulkPutItems.Considerations.md#BulkPutItems.Considerations.ConcurrentWrites).

## Non modificate gli oggetti S3 durante un'operazione attiva
<a name="BulkPutItems.BestPractices.NoModification"></a>

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
<a name="BulkPutItems.BestPractices.ClientToken"></a>

Passa un [ClientToken](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_StartBulkPutItems.html#DDB-StartBulkPutItems-request-ClientToken) con [StartBulkPutItems](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_StartBulkPutItems.html) 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](BulkPutItems.Requesting.md#BulkPutItems.Requesting.Start).

## Proteggi i consumatori a valle
<a name="BulkPutItems.BestPractices.Streams"></a>

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](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_StartBulkPutItems.html#DDB-StartBulkPutItems-request-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](BulkPutItems.Requesting.md#BulkPutItems.Requesting.Describe.Status).