Panoramica della paginazione DynamoDB, casi d'uso ed esempi

Panoramica della paginazione DynamoDB, casi d'uso ed esempi

La gestione di quantità voluminose di dati può essere un'attività in salita per i gestori dei dati, principalmente se i risultati della query o della scansione sono in più pagine. La paginazione in DynamoDB consente al database di gestire le grandi quantità di dati rompendo i risultati in più pagine gestibili.Questo articolo spiega la paginazione DynamoDB e fornisce vari casi ed esempi d'uso possibili. Evidenzia anche come la paginazione in DynamoDB differisca dalla paginazione in altri database.

Cos'è la paginazione in DynamoDB?

Generalmente, la paginazione, derivata dalle pagine delle parole, è una tecnica che viene utilizzata dai database per dividere i record di dati in più blocchi, segmenti o pagine. E poiché AWS DynamoDB supporta la memorizzazione di grandi quantità di dati, presenta capacità di impagamento affidabili.

Il componente di impagamento DynamoDB assicura di poter recuperare solo fino a 1 GB di dati per scansione o query. Sebbene questa sia un'impostazione predefinita, è possibile aggiungere un parametro limite in una query per specificare un limite. È possibile impostare ulteriormente un limite per il numero di record in ciascuna query di scansione.

In particolare, esistono alcune differenze tra paginazione in DynamoDB e paginazione in un tipico database SQL. Più ovviamente, ogni record paginato che viene recuperato in DynamoDB ha un costo diretto, rendendolo una regola non scritta quando si utilizza la paginazione in DynamoDB. Questa funzione rende la paginazione un fattore vitale nel limitare sia i record recuperati che i costi diretti.

Come usare la paginazione in DynamoDB

1. Paginazione durante un'operazione di query

In DynamoDB, una query restituisce solo i risultati fino a 1 MB. Ma puoi confermare efficacemente se ci sono più risultati esaminando i risultati. In particolare, un risultato di operazione di query di basso livello contiene un elemento LastvaluatedKey che non è nullo per indicare che ci sono più elementi relativi alla tua query che dovresti recuperare.

Un risultato senza un elemento LastvaluatedKey che non è nullo, implica che tutti gli articoli che corrispondono alla query si adattano al limite di 1 MB e non ci sono più oggetti per il recupero. Naturalmente, puoi anche impostare un limite per il numero di articoli per risultato. Vedere il seguente comando di esempio:

AWS DynamoDB query \
--table-name mytablename \
--espressione chiave-condizione "PartitionKey =: pk \
--espressione-attribute-value '": pk": "s": "a1234b",
--Limite 10 \

È possibile utilizzare il comando precedente per interrogare la tabella per gli elementi con i valori di espressione della stessa condizione chiave. Cerchiamo la nostra tabella "ordini" per order_ids da Darry Tech. Abbiamo anche impostato un limite a 10 elementi per pagina. Un'altra opzione per il parametro -LIMIT è utilizzare il parametro -Pagina per lo stesso scopo.

La paginazione è un'operazione automatica nella CLI AWS per articoli inferiori a 1 MB di dati. È possibile aggiungere una chiave di partenza esclusiva al comando se si desidera che la tua query inizi da un ordine particolare.

La risposta sembra così:

I risultati forniti mostrano 10 Darry Tech nella prima pagina. È possibile utilizzare i valori di LastAvaluuadKey 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 di LastAvalutateKey nel parametro ExclusiveStartKey.

Un esempio della sintassi è mostrato di seguito:

AWS DynamoDB query \
--tabella-nome esempio \
--espressione chiave-condizione "PartitionKey =: pk \
--espressione-attribute-value '": pk": "s": darry tech' \
--Limite 10 \
--esclusivo-start-key '"partitionkey": "s": darry tech "," sortkey ": " s ":" 5356-sy "'

Il comando precedente produce gli ordini di setoff successivi nella pagina successiva, a partire dall'ID ordine che ha la chiave primaria specificata, i.e. "PartitionKey": "S": Darry Tech "," Sortkey ": " S ":" 5356-SY ".

2. Paginazione durante le operazioni di scansione

È anche possibile utilizzare la paginazione per le operazioni di scansione. Tutto funziona allo stesso modo dei comandi di query. Tuttavia, è necessario utilizzare l'attributo di espressione filtro. Il comando sembra quello che abbiamo qui:

AWS DynamoDB Scan \
--table-name mytable \
--espressione filtro "attributetename =: valore" \
--espressione-attribute-value '": valore": "s": "abc123"' \
--Limite 20 \
--esclusivo-start-key '"partitionkey": "s": "ABC123", "Sortkey": "s": "xyz987"'

Il comando precedente in pensione fino a 20 elementi per pagina dalla tabella mytable, a partire dall'elemento la cui chiave principale è "PartitionKey": "ABC123", "Sortkey": "XYZ987. Filtra i risultati per includere solo gli elementi in cui l'attributo attributename ha il valore "ABC123".

Nella risposta, il LastvaluadEkey Il campo contiene la chiave primaria dell'ultimo elemento nel set di risultati. Puoi usare questo valore come Esclusivestartkey in un successivo scansione operazione per recuperare la pagina successiva dei risultati.

Conclusione

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