Paginación de DynamoDB: descripción general, casos de uso y ejemplos

Paginacion De Dynamodb Descripcion General Casos De Uso Y Ejemplos



Administrar cantidades voluminosas de datos puede ser una tarea difícil para los administradores de datos, principalmente si los resultados de su consulta o escaneo se encuentran en varias páginas. La paginación en DynamoDB permite que la base de datos maneje grandes cantidades de datos al dividir los resultados en varias páginas manejables. Este artículo explica la paginación de DynamoDB y proporciona varios casos de uso y ejemplos posibles. También destaca cómo la paginación en DynamoDB difiere de la paginación en otras bases de datos.

¿Qué es la paginación en DynamoDB?

En general, la paginación, derivada de las páginas de palabras, es una técnica que utilizan las bases de datos para dividir los registros de datos en múltiples fragmentos, segmentos o páginas. Y dado que AWS DynamoDB admite el almacenamiento de grandes cantidades de datos, cuenta con capacidades de paginación confiables.







El componente de paginación de DynamoDB garantiza que solo pueda recuperar hasta 1 GB de datos por escaneo o consulta. Si bien esa es una configuración predeterminada, puede agregar un parámetro de límite en una consulta para especificar un límite. Además, puede establecer un límite para el número de registros en cada consulta de exploración.



En particular, existen algunas diferencias entre la paginación en DynamoDB y la paginación en una base de datos SQL típica. Lo más obvio es que cada registro paginado que se recupera en DynamoDB tiene un costo directo, lo que hace que esta sea una regla no escrita cuando se usa la paginación en DynamoDB. Esta característica hace que la paginación sea un factor vital para limitar tanto los registros recuperados como los costos directos.



Cómo usar la paginación en DynamoDB

 





1. Paginación durante una operación de consulta

En DynamoDB, una consulta solo devuelve los resultados de hasta 1 MB. Pero puede confirmar efectivamente si hay más resultados examinando sus resultados. En particular, el resultado de una operación de consulta de bajo nivel contiene un elemento LastEvaluatedKey que no es nulo para indicar que hay más elementos relacionados con su consulta que debe recuperar.

Un resultado sin un elemento LastEvaluatedKey que no sea nulo implica que todos los elementos que coinciden con la consulta se ajustan al límite de 1 MB y no hay más elementos para recuperar. Por supuesto, también puede establecer un límite para la cantidad de elementos por resultado. Consulte el siguiente comando de ejemplo:



consulta aws dynamodb \

--table-name MiNombreDeTabla \

--clave-condición-expresión 'Clave de partición = :pk \

--expression-attribute-values ​​'{'
:paquete ':{' S ':' a1234b '}},

--límite 10 \

Puede usar el comando anterior para consultar en su tabla los elementos con los mismos valores de expresión de condición clave. Busquemos en nuestra tabla de 'Pedidos' order_Ids de Darry Tech. También establecemos un límite de 10 elementos por página. Otra opción para el parámetro –limit es usar el parámetro –page-size para el mismo propósito.

La paginación es una operación automática en AWS CLI para elementos de menos de 1 MB de datos. Puede agregar una tecla de inicio exclusiva al comando si desea que su consulta comience desde un orden en particular.

La respuesta se ve así:

Los resultados proporcionados muestran 10 Darry Tech en la primera página. Puede usar los valores de LastEvaluatedKey para obtener más pedidos que coincidan con los valores clave de expresión de su búsqueda para construir una nueva consulta. La nueva solicitud de consulta contiene los valores LastEvaluatedKey en el parámetro ExclusiveStartKey.

Un ejemplo de la sintaxis se muestra a continuación:

consulta aws dynamodb \

--table-name TablaEjemplo \

--clave-condición-expresión 'Clave de partición = :pk \

--expression-attribute-values ​​'{'
:paquete ':{' S ': Tecnología Darry' \

--límite 10 \

--exclusive-start-key '{'
Clave de partición ':{' S ': Tecnología Darry' }, 'Clave de clasificación' :{ 'S' : '5356' }} '

El comando anterior produce las siguientes órdenes de compensación en la página siguiente, comenzando con el ID de la orden que tiene la clave principal especificada, es decir, {“PartitionKey”:{“S”: Darry Tech”},”SortKey”:{“S”: ”5356-sy”}}.

2. Paginación durante las operaciones de escaneo

También es posible utilizar la paginación para operaciones de escaneo. Todo funciona de la misma manera que con los comandos de consulta. Sin embargo, debe usar el atributo filter-expression. El comando se parece a lo que tenemos aquí:

análisis aws dynamodb \

--table-name MiTabla \

--expresión-filtro 'Nombre del atributo =: valor' \

--expresión-valores-atributos '{':valor':{'S':'ABC123'}}' \

--límite 20 \

--exclusive-start-key '{'Clave de partición':{'S':'ABC123'},'Clave de clasificación':{'S':'XYZ987'}}'

El comando anterior retira hasta 20 elementos por página de la tabla MyTable, comenzando con el elemento cuya clave principal es {“PartitionKey”: “ABC123”, “SortKey”: “XYZ987”}. Filtra los resultados para incluir solo los elementos donde el atributo AttributeName tiene el valor 'ABC123'.

En la respuesta, el Última clave evaluada El campo contiene la clave principal del último elemento del conjunto de resultados. Puede utilizar este valor como el ExclusiveStartKey en una subsiguiente escanear operación para recuperar la siguiente página de resultados.

Conclusión

La paginación en DynamoDB mejora la capacidad de administración de los datos. Sin embargo, es vital saber si sus sistemas se beneficiarán de la paginación. Es necesario usar la paginación si tiene una lista larga de elementos en una aplicación. Si bien la ilustración proporcionada se centra en la llamada de la CLI de AWS, también puede usar la paginación con los SDK de AWS, como Boto3 de Python o cualquier SDK que prefiera.