Diferenças na leitura de um item usando a respectiva chave primária
Um padrão de acesso comuns para bancos de dados é ler um único item de uma tabela. Você deve especificar a chave primária do item que deseja.
Ler um item usando a respectiva chave primária com o SQL
No SQL, você usa a instrução SELECT
para recuperar dados de uma tabela. Você pode solicitar uma ou mais colunas no resultado (ou todas elas, se você usar o operador *
). A cláusula WHERE
determina quais linhas devem ser retornadas.
A seguinte é uma instrução SELECT
para recuperar uma única linha da tabela Music. A cláusula WHERE
especifica os valores de chave primária.
SELECT *
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
É possível modificar a consulta para recuperar somente um subconjunto de colunas.
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
Observe que a chave primária dessa tabela consiste em Artist e SongTitle.
Ler um item usando a respectiva chave primária no DynamoDB
No Amazon DynamoDB, você pode usar a API do DynamoDB ou do PartiQL (uma linguagem de consultas compatível com SQL) para ler um item de uma tabela.
- DynamoDB API
-
Com a API do DynamoDB, você usa a operação PutItem
para adicionar um item a uma tabela.
O DynamoDB fornece a operação GetItem
para recuperar um item por meio da respectiva chave primária. GetItem
é altamente eficiente, pois dá acesso direto à localização física do item. (Para ter mais informações, consulte Partições e distribuição de dados no DynamoDB.)
Por padrão, GetItem
retorna todo o item com todos os seus atributos.
{
TableName: "Music",
Key: {
"Artist": "No One You Know",
"SongTitle": "Call Me Today"
}
}
É possível adicionar um parâmetro ProjectionExpression
para retornar apenas alguns dos atributos.
{
TableName: "Music",
Key: {
"Artist": "No One You Know",
"SongTitle": "Call Me Today"
},
"ProjectionExpression": "AlbumTitle, Year, Price"
}
Observe que a chave primária dessa tabela consiste em Artist e SongTitle.
A operação GetItem
do DynamoDB é muito eficiente. Ela usa os valores da chave primária para determinar o local de armazenamento exato do item em questão e recupera-o diretamente dali. A instrução SQL SELECT
é similarmente eficiente, no caso da recuperação de itens por valores de chave primária.
A instrução SQL SELECT
é compatível com muitos tipos de consultas e verificações de tabela. O DynamoDB oferece funcionalidade semelhante com suas operações Query
e Scan
, que são descritas em Diferenças na consulta de uma tabela e Diferenças na varredura de uma tabela.
A instrução SQL SELECT
pode realizar junções de tabela, permitindo que você recupere dados de várias tabelas ao mesmo tempo. As junções são mais eficazes onde as tabelas de banco de dados são normalizadas e os relacionamentos entre as tabelas são claros. No entanto, se você juntar muitas tabelas em uma instrução SELECT
, a performance do aplicativo pode ser afetada. Você pode resolver esses problemas usando replicação de banco de dados, visualizações materializadas ou regravações de consulta.
O DynamoDB é um banco de dados não relacional e não oferece suporte a junções de tabela. Se você estiver migrando uma aplicação existente de um banco de dados relacional para o DynamoDB, será necessário desnormalizar o seu modelo de dados para eliminar a necessidade de junções.
- PartiQL for DynamoDB
-
Com PartiQL, você usa a operação ExecuteStatement
para ler um item de uma tabela, usando a instrução Select
PartiQL.
SELECT AlbumTitle, Year, Price
FROM Music
WHERE Artist='No One You Know' AND SongTitle = 'Call Me Today'
Observe que a chave primária dessa tabela consiste em Artist e SongTitle.
A instrução Select PartiQL também pode ser usada para consultar ou digitalizar uma tabela do DynamoDB
Para obter exemplos de código que usam Select
e ExecuteStatement
, consulte Instruções Select em PartiQL para DynamoDB.