Diferenças na leitura de um item usando a respectiva chave primária - Amazon DynamoDB

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.

nota

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.