Blog de Amazon Web Services (AWS)
Consultar datos con DynamoDB Shell: una interfaz de línea de comandos para Amazon DynamoDB
Por Amrith Kumar,
Puede obtener una introducción rápida a ddbsh desde Hello DynamoDB shell y profundizar un poco más en la creación y consulta de índices secundarios globales en Primeros pasos con dynamodb-shell. El archivo ddbsh README.md tiene un uso detallado de comandos y ejemplos.
Esta publicación abarca dos temas. Primero, aprenderá cómo conectarse a DynamoDB y luego a DynamoDB local. Después, se aprenderemos un método para filtrar datos usando la cláusula WHERE de SQL
Para comenzar, descargue el código fuente ddbsh de AWS Labs en Github y siga las instrucciones para construirlo.
Conéctese a una región de AWS
ddbsh utiliza el SDK de AWS C++. Puede configurar los parámetros de conexión según lo documentado para la interfaz de línea de comandos de AWS. Consulte Variables de ambiente para configurar AWS CLI para obtener más información.
Para conectarse a una región
- Revise la región predeterminada, la clave de acceso de AWS y la clave secreta de AWS en el archivo de configuración de AWS. Consulte la documentación para conocer la ubicación exacta del archivo en su sistema operativo. La documentación proporciona orientación específica para DynamoDB local y DynamoDB (servicio web). También puede usar el comando aws configure o establecer variables de ambiente para determinar cómo conectarse a DynamoDB.
- Compruebe si puede conectarse a DynamoDB mediante la CLI de AWS. Por ejemplo, podrá ejecutar:
3. Resuelva cualquier error. Después de ejecutar el comando anterior sin ningún error, podrá conectarse a su Región predeterminada como se muestra en la sesión interactiva que sigue.
4. En el símbolo del sistema, puede ejecutar comandos. Para obtener una lista de comandos, ejecute el comando HELP. Los comandos se terminan con un punto y coma (;)
Conéctese a DynamoDB local.
Antes de comenzar este paso, asegúrese de tener ddbsh versión 0.2 o superior y AWS SDK versión 1.11 o superior.
Para conectarse a DynamoDB local
- Siga las instrucciones para instalar DynamoDB local en su computadora.
- En una sesión de terminal, configure las variables de ambiente para conectarse a la instancia local de DynamoDB.
3. En una segunda sesión de terminal, inicie DynamoDB local.
% java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar
4. Regrese a la primera sesión de terminal. Debería poder conectarse con DynamoDB local mediante un comando de la CLI de AWS similar al siguiente:
5. Si pudo realizar esto correctamente, entonces puede conectarte a la instancia local con ddbsh.
El asterisco entre paréntesis (*) después del nombre de la región indica que se está utilizando un punto de acceso no estándar. Ahora estás conectado a DynamoDB local. Tenga en cuenta que cuando se conecta a DynamoDB local, las pruebas unitarias no tendrán éxito.
Filtrar datos con la cláusula WHERE
Puede usar una cláusula WHERE
con SELECT
, UPDATE
, DELETE
y UPSERT
. En la cláusula WHERE
, se pueden incluir múltiples expresiones lógicas que se pueden unir con el AND
lógico y el OR
lógico. Además, se puede negar una expresión lógica con el operador NOT
.
Se admiten las siguientes expresiones lógicas.
- Comparación lógica en la forma
attribute op value
where attribute is a table attribute, op is one of <, >, <=, >=, =, or !=. attribute_exists(attr)
evalúa como verdadero si attr existe en un elemento.begins_with(attr, prefix)
evalúa como verdadero si attr comienza con prefijo.attr between value and value
evalúa como verdadero si attr está entre los dos valores proporcionados.attribute_type (attr, type)
evalúa como verdadero si attr es del tipo especificado.
Considere estos datos de muestra:
Aquí hay algunas consultas de muestra:
Puede escribir consultas más complejas usando paréntesis para agrupar elementos.
Puede usar el comando EXPLAIN
para ver cómo ddbsh ejecutará la consulta.
También puede usar una cláusula WHERE
en una operación de tipo UPDATE
.
Puede eliminar un atributo. En el siguiente ejemplo se elimina el atributo c
.
Limpieza
Una vez que haya completado sus pruebas, recuerde eliminar las tablas que haya creado para evitar incurrir en costos. Puede usar DROP TABLE en ddbsh para hacer eso. Puede detener DynamoDB local en la terminal donde lo inició (la segunda sesión), y apagarlo con Ctrl-C.
Conclusión
Entonces, ahí lo tiene, con ddbsh
puede leer, modificar o eliminar datos de una tabla y puede filtrar sobre qué elementos se actúa usando la cláusula WHERE, tal como lo haría en SQL estándar.Hemos escuchado de clientes y prospectos que quieren recursos que les ayuden a aprender la API de DynamoDB. Estamos experimentando con algunas soluciones a esto, como el comando EXPLAIN en ddbsh. Agradeceríamos sus comentarios sobre esta herramienta. ¿Qué podemos agregar a ddbsh que le facilitaría el uso de DynamoDB?
Si hay funciones o funcionalidades específicas que le gustaría ver implementadas en ddbsh, háganoslo saber ingresando un ticket de soporte o enviándome un correo electrónico directamente a amrithie (at) amazon (dot) com. También estamos buscando colaboradores que estén interesados en ayudar a extender y mantener ddbsh. Específicamente, si desea enviar solicitudes de extracción (pull requests) que faciliten a los usuarios la instalación y el uso de ddbsh (como por ejemplo, proporcionando scripts de empaquetamiento) eso sería muy apreciado. Ya se ha enviado una solicitud de extracción (pull request) para una contribución a homebrew. Para cualquier otra solicitud de aportación no dude en ponerse en contacto directamente con amrithie (at) amazon (punto) com.
Un último llamado a la acción para todos ustedes. Si requiere una solución homebrew para instalar ddbsh en macOS, ayúdanos bifurcando, protagonizando y viendo el repositorio ddbsh GitHub. La solicitud de extracción al repositorio homebrew ha sido enviada pero el repositorio ddbsh GitHub no es lo suficientemente conocido. Por lo tanto, la solicitud está actualmente bloqueada. Por favor ayudar a avanzar esta solicitud.
Este artículo fue traducido del Blog de AWS en Inglés.
Acerca del autor
Amrith Kumar es ingeniero Principal Senior en Amazon Web Services y trabaja en Amazon DynamoDB.
Traductor
Sergio Nuñez es especialista en bases de datos con el equipo de aceleración de la nube de Amazon Web Services. Sergio se enfoca en liderar los esfuerzos de migración de bases de datos a AWS, así como proporcionar orientación técnica que incluye optimización de costos, monitoreo y experiencia en modernización a los clientes de Amazon.