Un patrón de acceso habitual de acceso a las bases de datos consiste en leer un único elemento de una tabla. Es preciso especificar la clave principal del elemento que se desea.
Temas
Lectura de un elemento usando su clave principal con SQL
En SQL, se utilizaría la instrucción SELECT
para recuperar datos de una tabla. Puede solicitar una o varias columnas en el resultado (o todas ellas, si se utiliza el operador *
). La cláusula WHERE
determina qué filas se devolverán.
A continuación se muestra una instrucción SELECT
que recupera una sola fila de la tabla Music. La cláusula WHERE
especifica los valores de la clave principal.
SELECT *
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
Puede modificar esta consulta para recuperar tan solo un subconjunto de las columnas:
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
Observe que la clave principal de esta tabla consta de Artist y SongTitle.
Lectura de un elemento usando su clave principal en DynamoDB
En Amazon DynamoDB, puede utilizar la API de DynamoDB o PartiQL (un lenguaje de consulta compatible con SQL) para leer un elemento de una tabla.
Con la API de DynamoDB, se utiliza la operación PutItem
para agregar un elemento a una tabla.
DynamoDB proporciona la operación GetItem
para recuperar un elemento por su clave principal. GetItem
es muy eficiente ya que proporciona acceso directo a la ubicación física del elemento. (Para obtener más información, consulte Particiones y distribución de datos en DynamoDB).
De forma predeterminada, GetItem
devuelve el elemento completo con todos sus atributos.
{ TableName: "Music", Key: { "Artist": "No One You Know", "SongTitle": "Call Me Today" } }
Puede agregar un parámetro ProjectionExpression
para que solo se devuelvan algunos de los atributos.
{ TableName: "Music", Key: { "Artist": "No One You Know", "SongTitle": "Call Me Today" }, "ProjectionExpression": "AlbumTitle, Year, Price" }
Observe que la clave principal de esta tabla consta de Artist y SongTitle.
La operación GetItem
de DynamoDB es muy eficiente. Utiliza los valores de clave principal para determinar la ubicación de almacenamiento exacta del elemento en cuestión y lo recupera directamente desde ella. La eficiencia de la instrucción SELECT
de SQL es parecida para recuperar elementos por sus valores de clave principal.
La instrucción SELECT
de SQL admite muchos tipos de consultas y exámenes de tablas. DynamoDB proporciona una funcionalidad semejante con las operaciones Query
y Scan
, que se describen en Diferencias al consultar una tabla y Diferencias al analizar una tabla.
La instrucción SELECT
de SQL puede llevar a cabo uniones de tablas para permitirle recuperar datos de varias tablas al mismo tiempo. Las uniones son más eficaces cuando las tablas de base de datos están normalizadas y las relaciones entre las tablas están claras. Sin embargo, si se unen demasiadas tablas en una misma instrucción SELECT
, el rendimiento de la aplicación podría verse afectado. Puede solucionar este problema utilizando la replicación de bases de datos, las vistas materializadas o las reescrituras de consultas.
DynamoDB es una base de datos no relacional y no admite uniones de tablas. Si va a migrar una aplicación existente a partir de una base de datos relacional a DynamoDB, debe desnormalizar el modelo de datos para eliminar la necesidad de uniones.