Best practice per l'archivio di elementi e attributi di grandi dimensioni - 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à.

Best practice per l'archivio di elementi e attributi di grandi dimensioni

Amazon DynamoDB limita la dimensione di ogni elemento archiviato in una tabella a 400 KB (vedi). Quote di servizio, account e tabelle in Amazon DynamoDB Se l'applicazione ha bisogno di archiviare più dati in un elemento rispetto al limite di dimensione consentito da DynamoDB, è possibile provare a comprimere uno o più attributi large o suddividere l'elemento in più elementi (indicizzati in modo efficiente mediante chiavi di ordinamento). È possibile archiviare l'elemento anche come un oggetto in Amazon Simple Storage Service (Amazon S3) e archiviare l'identificatore dell'oggetto Amazon S3 nell'elemento DynamoDB.

Come best practice, è consigliabile utilizzare il ReturnConsumedCapacityparametro durante la scrittura degli elementi per monitorare e inviare avvisi in caso di articoli di dimensioni che si avvicinano alla dimensione massima di 400 KB. Il superamento della dimensione massima dell'elemento comporterà tentativi di scrittura non riusciti. Il monitoraggio e l'invio di avvisi sulle dimensioni degli articoli consentiranno di mitigare i problemi relativi alle dimensioni degli articoli prima che influiscano sull'applicazione.

Compressione di valori di attributi di grandi dimensioni

La compressione di valori di attributi large permette la loro archiviazione nei limiti degli elementi in DynamoDB e ridurre così i costi di archiviazione. Gli algoritmi di compressione come GZIP o LZO producono un output binario che è quindi possibile archiviare in un tipo di Binary attributo all'interno dell'elemento.

Ad esempio, si consideri una tabella che memorizza i messaggi scritti dagli utenti del forum. Tali messaggi contengono spesso lunghe stringhe di testo, che possono essere compresse. Sebbene la compressione possa ridurre le dimensioni degli articoli, lo svantaggio è che i valori degli attributi compressi non sono utili per il filtraggio.

Per il codice di esempio che illustra come comprimere tali messaggi in DynamoDB, consulta i seguenti argomenti:

Partizionamento verticale

Una soluzione alternativa alla gestione di elementi di grandi dimensioni consiste nel suddividerli in blocchi di dati più piccoli e nell'associare tutti gli elementi pertinenti in base al valore della chiave di partizione. È quindi possibile utilizzare una stringa di chiavi di ordinamento per identificare le informazioni associate memorizzate insieme ad essa. In questo modo e raggruppando più elementi in base allo stesso valore della chiave di partizione, si crea una raccolta di elementi.

Per ulteriori informazioni su questo approccio, consulta:

Archiviazione dei valori di attributi di grandi dimensioni in Amazon S3

Come indicato in precedenza, è possibile utilizzare Amazon S3 anche per archiviare valori di attributi large che non rientrano in un elemento DynamoDB. Puoi archiviarli come oggetto in Amazon S3, quindi archiviare l'identificatore di oggetto nell'elemento DynamoDB.

È possibile anche utilizzare il supporto per i metadati dell'oggetto in Amazon S3 per fornire un link all'elemento padre in DynamoDB. Archiviare il valore della chiave primaria dell'elemento come metadati Amazon S3 dell'oggetto in Amazon S3. Ciò spesso aiuta con la manutenzione degli oggetti di Amazon S3.

Considera, ad esempio, la tabella ProductCatalog nella sezione Creazione di tabelle e caricamento di dati per esempi di codice in DynamoDB. gli elementi in questa tabella archiviano informazioni su prezzo dell'item, descrizione, autori dei libri e dimensioni degli altri prodotti. Se si desidera archiviare un'immagine per ogni prodotto che è troppo grande per un elemento, è possibile puoi archiviarla in Amazon S3 anziché in DynamoDB.

Quando implementi questa strategia, tieni a mente quanto segue:

  • DynamoDB non supporta le transazioni che passano in Amazon S3 e DynamoDB. Pertanto, l'applicazione deve gestire eventuali fallimenti, che potrebbero includere la pulizia di oggetti Amazon S3 orfani.

  • Amazon S3 limita la lunghezza degli identificatori dell'oggetto. Quindi è necessario organizzare i dati in una maniera che non generi identificatori d'oggetto troppo lunghi o che violi altri vincoli di Amazon S3.

Per maggiori informazioni su come utilizzare Amazon S3, consulta la Amazon Simple Storage Service User Guide.