Diferencias al consultar una tabla - Amazon DynamoDB

Diferencias al consultar una tabla

Otro patrón de acceso habitual consiste en leer varios elementos de una tabla, según los criterios de consulta.

Consulta de una tabla con SQL

Al utilizar SQL, la instrucción SELECT permite realizar consultas por columnas de clave, columnas que no son de clave o cualquier combinación de ellas. La cláusula WHERE determina qué filas se devuelven, como se muestra en los ejemplos siguientes.

/* Return a single song, by primary key */ SELECT * FROM Music WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today';
/* Return all of the songs by an artist */ SELECT * FROM Music WHERE Artist='No One You Know';
/* Return all of the songs by an artist, matching first part of title */ SELECT * FROM Music WHERE Artist='No One You Know' AND SongTitle LIKE 'Call%';
/* Return all of the songs by an artist, with a particular word in the title... ...but only if the price is less than 1.00 */ SELECT * FROM Music WHERE Artist='No One You Know' AND SongTitle LIKE '%Today%' AND Price < 1.00;

Observe que la clave principal de esta tabla consta de Artist y SongTitle.

Consulta de una tabla en DynamoDB

En Amazon DynamoDB, puede utilizar la API de DynamoDB o PartiQL (un lenguaje de consulta compatible con SQL) para consultar un elemento de una tabla.

DynamoDB API

Con Amazon DynamoDB, puede utilizar la operación Query para recuperar datos de manera parecida. La operación Query proporciona un acceso rápido y eficiente a las ubicaciones físicas en las que se almacenan los datos. Para obtener más información, consulte Particiones y distribución de datos en DynamoDB.

Se puede utilizar Query con cualquier tabla o índice secundario. Debe especificar una condición de igualdad para el valor de la clave de partición y, si lo desea, puede proporcionar otra condición para el atributo de clave de clasificación si está definido.

El parámetro KeyConditionExpression especifica los valores de clave que se desea consultar. Puede utilizar una expresión FilterExpression opcional para eliminar algunos elementos de los resultados antes de que se devuelvan.

En DynamoDB, debe usar ExpressionAttributeValues como marcador de posición en los parámetros de las expresiones (tales como KeyConditionExpression y FilterExpression). Esto es análogo al uso de las variables de vínculo de las bases de datos relacionales, que se sustituyen en la instrucción SELECT por los valores reales en tiempo de ejecución.

Observe que la clave principal de esta tabla consta de Artist y SongTitle.

A continuación, se muestran algunos ejemplos de Query de DynamoDB.

// Return a single song, by primary key { TableName: "Music", KeyConditionExpression: "Artist = :a and SongTitle = :t", ExpressionAttributeValues: { ":a": "No One You Know", ":t": "Call Me Today" } }
// Return all of the songs by an artist { TableName: "Music", KeyConditionExpression: "Artist = :a", ExpressionAttributeValues: { ":a": "No One You Know" } }
// Return all of the songs by an artist, matching first part of title { TableName: "Music", KeyConditionExpression: "Artist = :a and begins_with(SongTitle, :t)", ExpressionAttributeValues: { ":a": "No One You Know", ":t": "Call" } }
PartiQL for DynamoDB

Con PartiQL, puede hacer una consulta mediante la operación ExecuteStatement y la instrucción Select sobre la clave de partición.

SELECT AlbumTitle, Year, Price FROM Music WHERE Artist='No One You Know'

El uso de la instrucción SELECT de esta manera devuelve todas las canciones asociadas a este Artist en particular.

Para obtener ejemplos de código mediante Select y ExecuteStatement, consulte Instrucciones de selección de PartiQL para DynamoDB.