Nesta lição, você seguirá alguns exemplos simples de entrada e recuperação de dados com o DynamoDB. Você criará uma tabela do DynamoDB usando a API CreateTable e, em seguida, fará a entrada de alguns itens usando a chamada de API BatchWriteItem. Por fim, você recuperará itens individuais usando a chamada de API GetItem. Antes de trabalhar nesses exemplos, discutiremos o modelo de dados a ser usado no exemplo de aplicativo de livraria online.
Em módulos subsequentes, você aprenderá a recuperar vários itens ao mesmo tempo usando a chamada de API Query e a habilitar padrões de consulta adicionais usando índices secundários. Você também verá como atualizar itens existentes na sua tabela.
Tempo de conclusão do módulo: 15 minutos
Os seguintes conceitos do DynamoDB são fundamentais neste módulo:
- Tabela: um conjunto de registros de dados do DynamoDB.
- Item: um único registro de dados em uma tabela do DynamoDB. É comparável a uma linha em um banco de dados relacional.
- Atributo: um único elemento de dado em um item. É comparável a uma coluna em um banco de dados relacional. No entanto, ao contrário das colunas em um banco de dados relacional, os atributos não precisam ser especificados na criação da tabela, com exceção da chave primária discutida mais adiante neste módulo. Os atributos podem ser simples, como strings, números inteiros ou booleanos, ou podem ser complexos, como listas ou mapas.
- Chave primária: uma chave primária é um identificador exclusivo para um único item em uma tabela do DynamoDB. O nome e o tipo da chave primária devem ser especificados na criação da tabela, e uma chave primária do tipo especificado deve ser incluída com cada item gravado em uma tabela. Uma chave primária simples consiste em um único atributo, enquanto uma composta consiste em dois atributos: uma chave de partição e uma chave de classificação. Por exemplo, você pode criar uma chave primária simples usando “UserID” como identificador ou pode criar uma chave primária composta combinando “UserID” e “Creation_Date” como um identificador de item.
Ao criar um aplicativo, você deve sempre dedicar algum tempo para projetar os modelos de dados necessários à sua lógica. O design do modelo de dados deve considerar as necessidades de acesso a dados no aplicativo, tanto para leitura quanto para gravação.
O DynamoDB é um banco de dados não relacional. Com bancos de dados não relacionais, você não precisa especificar o esquema completo com antecedência ao criar uma tabela. Basta declarar a chave primária da tabela, que identifica cada registro da tabela. Isso reduz o custo inicial para o projeto do modelo de dados, pois você pode modificar facilmente o esquema à medida que as necessidades do aplicativo mudam.
Como mencionado na seção “Histórico do aplicativo” na “Introdução” deste tutorial, seu aplicativo precisa recuperar um livro individual por título e autor. Como a combinação de título e autor é um identificador exclusivo do livro, você poderá usar esses atributos como a chave primária da tabela. O aplicativo também precisa armazenar informações sobre a categoria do livro, como história ou biografia, bem como os formatos disponíveis — capa dura, brochura ou audiolivro — que são mapeados para os números de item no seu sistema de inventário.
Com essas necessidades em mente, você poderá usar o seguinte esquema para a tabela:
- Title (string): o título do livro
- Author (string): o autor do livro
- Category (string): a categoria do livro, como História, Biografia ou Ficção Científica
- Formats (mapa): os diferentes formatos que você tem disponíveis para venda (como capa dura, brochura e audiolivro) e os respectivos números de item no sistema de inventário
Nas etapas a seguir, você criará a tabela especificando a chave primária composta (Author e Title) da tabela. Em seguida, carregará alguns itens na tabela e lerá itens individuais nela.