Impaginazione DynamoDB: panoramica, casi d'uso ed esempi

Impaginazione Dynamodb Panoramica Casi D Uso Ed Esempi



La gestione di voluminose quantità di dati può essere un'attività in salita per i gestori di dati, soprattutto se i risultati della query o della scansione vengono eseguiti su più pagine. L'impaginazione in DynamoDB consente al database di gestire grandi quantità di dati suddividendo i risultati in più pagine gestibili. Questo articolo spiega l'impaginazione di DynamoDB e fornisce vari possibili casi d'uso ed esempi. Evidenzia anche come l'impaginazione in DynamoDB differisca dall'impaginazione in altri database.

Cos'è l'impaginazione in DynamoDB?

In generale, l'impaginazione, derivata dalla parola pagine, è una tecnica utilizzata dai database per suddividere i record di dati in più blocchi, segmenti o pagine. E poiché AWS DynamoDB supporta l'archiviazione di grandi quantità di dati, offre funzionalità di impaginazione affidabili.







Il componente di impaginazione di DynamoDB assicura che tu possa recuperare solo fino a 1 GB di dati per scansione o query. Sebbene si tratti di un'impostazione predefinita, puoi aggiungere un parametro limite in una query per specificare un limite. È inoltre possibile impostare un limite per il numero di record in ciascuna query di scansione.



In particolare, esistono alcune differenze tra l'impaginazione in DynamoDB e l'impaginazione in un tipico database SQL. Ovviamente, ogni record impaginato recuperato in DynamoDB ha un costo diretto, rendendo questa regola non scritta quando si utilizza l'impaginazione in DynamoDB. Questa caratteristica rende l'impaginazione un fattore vitale per limitare sia i record recuperati che i costi diretti.



Come utilizzare l'impaginazione in DynamoDB





1. Impaginazione durante un'operazione di query

In DynamoDB, una query restituisce solo i risultati fino a 1 MB. Ma puoi effettivamente confermare se ci sono più risultati esaminando i tuoi risultati. In particolare, il risultato di un'operazione di query di basso livello contiene un elemento LastEvaluatedKey che non è nullo per indicare che sono presenti più elementi correlati alla query che è necessario recuperare.

Un risultato senza un elemento LastEvaluatedKey che non è nullo, implica che tutti gli elementi che corrispondono alla query rientrano nel limite di 1 MB e non ci sono più elementi per il recupero. Naturalmente, puoi anche impostare un limite per il numero di elementi per risultato. Vedere il seguente comando di esempio:



query aws dynamodb \

--table-name MyTableName \

--espressione-condizione-chiave 'PartitionKey = :pk \

--espressione-valori-attributo '{'
:pag ':{' S ':' a1234b '}},

--limite 10 \

È possibile utilizzare il comando precedente per interrogare la tabella per gli elementi con gli stessi valori di espressione di condizione chiave. Cerchiamo nella tabella 'Ordini' gli ID_ordine di Darry Tech. Abbiamo anche fissato un limite a 10 articoli per pagina. Un'altra opzione per il parametro –limit consiste nell'utilizzare il parametro –page-size per lo stesso scopo.

L'impaginazione è un'operazione automatica in AWS CLI per elementi inferiori a 1 MB di dati. È possibile aggiungere una chiave di avvio esclusiva al comando se si desidera che la query inizi da un ordine particolare.

La risposta è simile a questa:

I risultati forniti mostrano 10 Darry Tech sulla prima pagina. Puoi utilizzare i valori LastEvaluatedKey per ottenere più ordini che corrispondono ai valori della chiave di espressione della tua ricerca per costruire una nuova query. La nuova richiesta di query contiene i valori LastEvaluatedKey nel parametro ExclusiveStartKey.

Un esempio della sintassi è riportato di seguito:

query aws dynamodb \

--table-name Esempio di tabella \

--espressione-condizione-chiave 'PartitionKey = :pk \

--espressione-valori-attributo '{'
:pag ':{' S ': Darry Tech' \

--limite 10 \

--esclusiva-chiave-di-inizio '{'
PartitionKey ':{' S ': Tecnologia Darry' }, 'Chiave di ordinamento' :{ 'S' : '5356' }} '

Il comando precedente produce i successivi ordini di compensazione nella pagina successiva, a partire dall'ID ordine che ha la chiave primaria specificata, ad esempio {“PartitionKey”:{“S”: Darry Tech”},”SortKey”:{“S”: ”5356-sy”}}.

2. Impaginazione durante le operazioni di scansione

È anche possibile utilizzare l'impaginazione per le operazioni di scansione. Tutto funziona allo stesso modo dei comandi di query. Tuttavia, è necessario utilizzare l'attributo filter-expression. Il comando assomiglia a quello che abbiamo qui:

scansione aws dynamodb \

--table-name MiaTabella \

--espressione-filtro 'NomeAttributo = :valore' \

--espressione-attributo-valori '{':valore':{'S':'ABC123'}}' \

--limite venti \

--esclusiva-start-chiave '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

Il comando precedente ritira dalla tabella MyTable fino a 20 elementi per pagina, a partire dall'elemento la cui chiave primaria è {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}. Filtra i risultati per includere solo gli elementi in cui l'attributo AttributeName ha il valore 'ABC123'.

Nella risposta, il LastEvaluatedKey Il campo contiene la chiave primaria dell'ultimo elemento nel set di risultati. È possibile utilizzare questo valore come ExclusiveStartKey in un successivo scansione operazione per recuperare la pagina successiva dei risultati.

Conclusione

L'impaginazione in DynamoDB migliora la gestibilità dei dati. Tuttavia, è fondamentale sapere se i tuoi sistemi trarranno vantaggio dall'impaginazione. È necessario utilizzare l'impaginazione se si dispone di un lungo elenco di elementi in un'applicazione. Mentre l'illustrazione fornita si concentra sulla chiamata AWS CLI, puoi anche utilizzare l'impaginazione con SDK AWS come Boto3 di Python o qualsiasi SDK che preferisci.