Descripción general de la paginación de Dynamodb, casos de uso y ejemplos

Descripción general de la paginación de Dynamodb, casos de uso y ejemplos

Administrar cantidades voluminosas de datos puede ser una tarea cuesta arriba para los administradores de datos, principalmente si los resultados de su consulta o escaneo se encuentran con varias páginas. La paginación en Dynamodb permite que la base de datos maneje las grandes cantidades de datos dividiendo los resultados en múltiples páginas manejables.Este artículo explica la paginación de DynamodB y proporciona varios casos y ejemplos de uso 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 utilizada por 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, presenta capacidades confiables de paginación.

El componente de paginación de Dynamodb asegura que solo puede 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. Puede establecer un límite para el número de registros en cada consulta de escaneo.

En particular, existen algunas diferencias entre la paginación en DynamodB y la paginación en una base de datos SQL típica. Obviamente, cada registro paginado que se recupera en DynamodB viene con 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 de manera efectiva si hay más resultados al examinar sus resultados. En particular, un resultado de la operación de consulta de bajo nivel contiene un elemento de llave durado que no es nulo para indicar que hay más elementos relacionados con su consulta que debe recuperar.

Un resultado sin un elemento de listas de duras que no es nula, implica que todos los elementos que coinciden con la consulta se ajustan dentro del límite de 1 MB y no hay más elementos para la recuperación. Por supuesto, también puede establecer un límite para el número de elementos por resultado. Consulte el siguiente comando de muestra:

AWS Dynamodb Query \
--nombre de mesa mytableName \
--Key-Condition-Expression "PartitionKey =: PK \
--Expression-attribute-values ​​'": pk": "s": "a1234b",
--límite 10 \

Puede usar el comando anterior para consultar su tabla para los elementos con los mismos valores de expresión de condición clave. Busquemos nuestra tabla de "órdenes" para order_ids de Darry Tech. También establecemos un límite a 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 por debajo de 1 MB de datos. Puede agregar una clave de inicio exclusiva al comando si desea que su consulta comience desde un pedido en particular.

La respuesta se ve así:

Los resultados proporcionados muestran 10 Darry Tech en la primera página. Puede usar los valores de KeyKey de LastEvalued 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 de Key de última hora en el parámetro ExcusiveStKey.

Un ejemplo de la sintaxis se muestra en lo siguiente:

AWS Dynamodb Query \
--Nombre de la tabla Ejemplable \
--Key-Condition-Expression "PartitionKey =: PK \
--Expression-attribute-values ​​'": pk": "S": Darry Tech' \ \
--límite 10 \
--Exclusive-start-key '"PartitionKey": "S": Darry Tech "," Sortkey ": " S ":" 5356-sy "'

El comando anterior produce los siguientes órdenes de despedida en la página siguiente, comenzando con la ID de pedido que tiene la clave primaria especificada, i.mi. "PartitionKey": "S": Darry Tech "," Sortkey ": " S ":" 5356-sy ".

2. Paginación durante las operaciones de escaneo

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

AWS Dynamodb Scan \
--nombre de mesa mytable \
--Filtro-expresión "attributeName =: valor" \
--Expression-attribute-values ​​'": valor": "s": "ABC123"' \
--límite 20 \
--Exclusive-start-key '"PartitionKey": "S": "ABC123", "Sortkey": "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". Filma los resultados para incluir solo los elementos donde el atributo atributename tiene el valor "ABC123".

En la respuesta, el Lindaluatekey el campo contiene la clave principal del último elemento en el conjunto de resultados. Puedes usar este valor como el ExcusiveStartkey en un posterior escanear operación para recuperar la página siguiente 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 larga lista de elementos en una aplicación. Mientras que la ilustración proporcionada se centra en la llamada AWS CLI, también puede usar la paginación con AWS SDK como Python's Boto3 o cualquier SDK que prefiera.