Operación de escaneo DynamodB

Operación de escaneo DynamodB
Las operaciones de escaneo son posiblemente los instrumentos más contundentes en una lista de herramientas de Dynamodb. Una operación de escaneo en AWS DynamoDB lee cada elemento de la tabla o el índice secundario en el que se usa. Puede agarrar cualquier cosa dentro de su camino. Por lo tanto, una operación de escaneo, por defecto, devuelve todos los atributos de datos para cada elemento en su tabla o índice.

Puede cambiar la naturaleza predeterminada de las operaciones de escaneo utilizando el parámetro ProyectionExpression, ya que esto solo devuelve los atributos especificados y no todo en el índice o la tabla. En particular, cada solicitud de escaneo solo puede volver a 1 MB de datos de elementos y nada más. Además, DynamodB puede aplicar una expresión de filtro a cualquier conjunto de datos y reducir los resultados antes de que entregue los resultados al usuario.

Esta guía elabora cómo puede usar la operación de escaneo en DynamoDB. Explica cuándo usar la operación de escaneo DynamodB, cómo funcionan las expresiones de filtro, la consistencia de lectura de los escaneos y los escaneos paralelos.

Pero antes de llegar a él, es vital usar la operación de escaneo solo cuando está seguro de que la necesita. Funciona en toda la tabla y puede usar toda su capacidad de lectura cuando se usa en las tablas de tamaño real. Además, cuando se usa en la ruta crítica de una aplicación, puede ser lento para devolver los resultados.

Situaciones cuando debe usar un escaneo en tablas e índices Dynamodb

El uso de la operación de escaneo en Dynamodb tiene sentido en los siguientes escenarios:

  • Cuando tu mesa es muy pequeña
  • Al usar índices secundarios globales para configurar las colas de trabajo
  • Al exportar todos los datos de una tabla determinada a otro sistema de almacenamiento

Realizar un escaneo básico en una tabla Dynamodb

Las operaciones de escaneo son fáciles de manejar. Todo lo que necesita hacer es especificar su TABLE_NAME junto con el comando AWS Dynamodb Scan. Una simple utilidad de escaneo debería verse así:

$ AWS Dynamodb Scan \
--nombre de tabla Emplyeedata \
$ Local

El resultado se muestra en el siguiente. Tenga en cuenta que se trunca para ser lo suficientemente breve como para la ilustración, ya que mostrar los 35 elementos en este artículo puede ser engorroso.

La operación de escaneo en DynamodB utilizando las expresiones de filtro

La respuesta anterior devuelve los 35 elementos que están contenidos en la tabla. Sin embargo, puede usar el parámetro de expresión -proyección para especificar los atributos que le interesan. También conocido como expresiones de filtro, esta característica le permite refinar sus resultados y determinar los elementos específicos dentro de la tabla que encuentra en la respuesta. Los resultados que no necesita no estarán en la respuesta.

Solo debe aplicar el parámetro de expresión del filtro después de finalizar su escaneo completo y tener los resultados con usted. Sin embargo, tanto las expresiones de proyección como los escaneos de DynamodB completos consumirán las cantidades iguales de su capacidad de lectura. Y si bien los límites de escaneo a menudo tienen un máximo de 1 MB de datos, este cálculo ocurre antes de evaluar los resultados de la expresión del filtro.

Asegúrese de especificar todos los atributos que necesita en la expresión del filtro. Los atributos pueden incluir claves de partición y teclas de clasificación. Las expresiones de filtro comparten la misma sintaxis que las expresiones de condición.

Por ejemplo, la siguiente utilidad de interfaz de línea de comandos de AWS escanea la tabla Employeedata y devuelve los detalles de los elementos que fueron últimos.

AWS Dynamodb Scan \
--Nombre de la mesa Empleado de empleo \
--Filtro-Expresión "LastEmployed =: Name" \
--Expression-attribute-values ​​'": name": "S": "User AB"'

Ejecución de una operación de escaneo que excede el límite de datos de 1 MB

Dijimos una y otra vez que la operación de escaneo Dynamodb tiene un límite de datos de 1 MB. Pero, ¿qué sucede cuando los escaneos alcanzan el límite de datos de 1 MB?? Si alcanza el límite de 1 MB durante un escaneo, la respuesta contendrá una clave "NextToken".

Use el valor proporcionado en la tecla "NextToken" con el - -a partir de Opción para continuar su función de escaneo desde donde se detuvo. Puede probar esta funcionalidad con el - - máximo opción límite. En este ejemplo, en lugar de intentar un escaneo completo, escaneamos nuestra tabla Employeedata, pero clavamos nuestro límite de elemento a un máximo de 1 como se muestra en lo siguiente:

$ AWS Dynamodb Scan \
--nombre de tabla userorderStable \
--Ítemes máximos 1 \
$ Local

La respuesta solo contiene un elemento. Sin embargo, también encontrará una clave "NextToken" en los resultados para permitirle continuar con el escaneo desde donde se detuvo. Consulte la siguiente captura de pantalla:

La respuesta anterior produce solo un elemento de una tabla que contiene 35 elementos. Puede finalizar el escaneo utilizando la tecla NextToken proporcionada.

Usando escaneos paralelos

Las razones principales por las que DynamodB sigue siendo una base de datos popular son su velocidad, flexibilidad y escalabilidad. Curiosamente, el uso de la operación de escaneo también le permite exportar el contenido para el análisis de datos o el almacenamiento en frío.

Características de Dynamodb Segmentos que permite que los escaneos paralelos escaneen grandes cantidades de datos sin depender de un solo proceso de escaneo en cada tabla. Esta característica le permite especificar el número de Segmentos que desea que se divida una tabla y las solicitudes de cada segmento. Esto permite a los administradores de datos escanear los datos de una tabla determinada en paralelo.

Si bien nuestra tabla de empleados que se usa en este tutorial no tiene una gran cantidad de datos, podemos dividirla en cuatro segmentos y usarla para esta ilustración. Puede estructurar su comando de escaneo definiendo el número de segmentos y el número de segmento que pretende escanear. Mientras que los segmentos están indexados por cero, usar 0 en la especificación de su segmento puede ser una tarea cuesta arriba.

$ AWS Dynamodb Scan \
--Nombre de la mesa Empleado de empleo \
--Segmentos totales 4 \
--segmento 1 \
$ Local

Los resultados contienen solo los elementos que caen dentro del primer segmento. La respuesta se ve así. Tenga en cuenta que los resultados están truncados para la brevedad y solo presentan el primer y los últimos elementos en el primer segmento.

Conclusión

Eso se trata de la operación de escaneo Dynamodb. Si bien podría decirse que es una de las operaciones más fáciles de AWS DynamodB, debe usarlo con moderación, ya que puede consumir toda su asignación de capacidad de consumo. Nuevamente, asegúrese de saber cuándo puede usar las diferentes aplicaciones de la operación de escaneo.