View a markdown version of this page

Operazioni in blocco efficienti - 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à.

Operazioni in blocco efficienti

Quando usare questo modello

Questi modelli sono utili per eseguire in modo efficiente aggiornamenti in blocco sugli elementi di DynamoDB.

  • DynamoDB-shell non è un caso d'uso supportato per la produzione.

  • TransactWriteItems: fino a 100 aggiornamenti singoli con o senza condizioni, eseguiti come un pacchetto ACID “tutto o niente”

    Trade-off — Viene consumata una velocità effettiva aggiuntiva, 2 WCU per 1 KB di scrittura.

  • PartiQLBatchExecuteStatement: fino a 25 aggiornamenti con o senza condizioni

    Trade-off — È necessaria una logica aggiuntiva per distribuire le richieste in batch di 25.

  • AWS Step Functions — operazioni in blocco a velocità limitata per gli sviluppatori che hanno familiarità con. AWS Lambda

    Trade-off — Il tempo di esecuzione è inversamente proporzionale al limite di velocità. Limitazione data dal timeout massimo della funzione Lambda. La funzionalità prevede che le modifiche ai dati che si verificano tra la lettura e la scrittura possano essere sovrascritte. Per ulteriori informazioni, consulta Backfilling an Amazon DynamoDB Time to Live attribute using Amazon EMR: Part 2.

  • AWS Glue e Amazon EMR: operazioni di massa a velocità limitata con parallelismo gestito. Per le applicazioni o gli aggiornamenti non sensibili al fattore temporale, queste opzioni possono essere eseguite in background consumando solo una piccola percentuale del throughput. Entrambi i servizi utilizzano il connettore emr-dynamodb per eseguire operazioni DynamoDB. Questi servizi eseguono una lettura approfondita seguita da una scrittura approfondita degli elementi aggiornati con un’opzione per limitare la velocità.

    Trade-off — Il tempo di esecuzione è inversamente proporzionale al limite di velocità. La funzionalità prevede che le modifiche ai dati che si verificano tra la lettura e la scrittura possano essere sovrascritte. Non è possibile la lettura dagli indici secondari globali (GSI). Consulta Backfilling an Amazon DynamoDB Time to Live attribute using Amazon EMR: Part 2.

  • DynamoDB Shell: operazioni in blocco con velocità limitata che utilizzano query. SQL-like È possibile la lettura dai GSI per una maggiore efficienza.

    Trade-off — Il tempo di esecuzione è inversamente proporzionale al limite di velocità. Consulta Rate limited bulk operations in DynamoDB Shell.

  • Bulk Executor for DynamoDB: uno strumento a riga di comando open source che viene utilizzato AWS Glue nel back-end per l'esecuzione parallela di attività in blocco come count, find, delete, update, copy, fill, load e diff. Non è richiesta alcuna codifica per i comandi integrati e puoi estenderlo con comandi personalizzati utilizzando. Python Supporta la limitazione della velocità e fornisce stime dei costi prima dell'esecuzione. Bulk Executor è open source e non include alcun supporto ufficiale.

    Trade-off — Richiede un AWS Glue ambiente (creato durante il bootstrap). Il tempo di esecuzione è inversamente proporzionale al limite di velocità. I comandi personalizzati richiedono. Python Vedi Introduzione all'open source Bulk Executor per Amazon DynamoDB.

Utilizzo del modello

Gli aggiornamenti in blocco possono avere implicazioni significative in termini di costi, soprattutto se si utilizza la modalità di throughput on demand. Esiste un compromesso tra velocità e costi se si utilizza la modalità di throughput allocato. L’impostazione molto rigorosa del parametro del limite di velocità può portare a tempi di elaborazione molto lunghi. È possibile determinare approssimativamente la velocità di aggiornamento utilizzando la dimensione media dell’elemento e il limite di velocità.

In alternativa, è possibile determinare la quantità di throughput necessaria per il processo in base alla durata prevista del processo di aggiornamento e alla dimensione media degli elementi. I riferimenti del blog condivisi con ogni modello forniscono dettagli sulla strategia, l’implementazione e i limiti dell’utilizzo del modello. Per ulteriori informazioni, consulta Elaborazione in Cost-effective blocco con Amazon DynamoDB.

Esistono diversi approcci per eseguire aggiornamenti in blocco su una tabella DynamoDB attiva. L'approccio adatto dipende da fattori quali i requisiti di and/or idempotenza ACID, il numero di elementi da aggiornare e la familiarità con le API. È importante considerare il rapporto tra costi e tempi: la maggior parte degli approcci sopra descritti prevede un’opzione per limitare il throughput utilizzato dal processo di aggiornamento in blocco.