Diferenças entre um banco de dados relacional (SQL) e o DynamoDB ao criar uma tabela
As tabelas são as estruturas de dados fundamentais em bancos de dados relacionais e no Amazon DynamoDB. Um Relational Database Management System (RDBMS – Sistema de gerenciamento de banco de dados relacional) exige que você defina o esquema da tabela ao criá-la. Por outro lado, as tabelas do DynamoDB não têm esquemas: além da chave primária, não é necessário definir nenhum atributo ou tipo de dados extras ao criar uma tabela.
A seção a seguir compara como você criaria uma tabela com o SQL e como a criaria com o DynamoDB.
Criar uma tabela com o SQL
Com o SQL, você usa a instrução CREATE TABLE
para criar uma tabela, conforme mostrado no exemplo a seguir.
CREATE TABLE Music ( Artist VARCHAR(20) NOT NULL, SongTitle VARCHAR(30) NOT NULL, AlbumTitle VARCHAR(25), Year INT, Price FLOAT, Genre VARCHAR(10), Tags TEXT, PRIMARY KEY(Artist, SongTitle) );
A chave primária dessa tabela consiste em Artist e SongTitle.
Você deve definir todas as colunas e os tipos de dados da tabela, e a chave primária da tabela. (Você pode usar a instrução ALTER TABLE
para alterar essas definições mais tarde, se necessário.)
Muitas implementações de SQL permitem que você defina especificações de armazenamento para a sua tabela, como parte da instrução CREATE TABLE
. A não ser que você indique de outra forma, a tabela é criada com configurações de armazenamento padrão. Em um ambiente de produção, um administrador de banco de dados pode ajudar a determinar os parâmetros de armazenamento ideais.
Criar uma tabela com o DynamoDB
Use a operação CreateTable
para criar uma tabela de modo provisionado, especificando parâmetros conforme mostrado abaixo:
{ TableName : "Music", KeySchema: [ { AttributeName: "Artist", KeyType: "HASH" //Partition key }, { AttributeName: "SongTitle", KeyType: "RANGE" //Sort key } ], AttributeDefinitions: [ { AttributeName: "Artist", AttributeType: "S" }, { AttributeName: "SongTitle", AttributeType: "S" } ], ProvisionedThroughput: { // Only specified if using provisioned mode ReadCapacityUnits: 1, WriteCapacityUnits: 1 } }
A chave primária dessa tabela consiste em Artist (chave de partição) e SongTitle (chave de classificação).
Você deve fornecer os parâmetros a seguir para CreateTable
:
-
TableName
: nome da tabela. -
KeySchema
: os atributos que são usados para a chave primária. Para ter mais informações, consulte Tabelas, itens e atributos e Chave primária. -
AttributeDefinitions
: os tipos de dados dos atributos de esquema de chaves. -
ProvisionedThroughput (for provisioned tables)
: o número de leituras e gravações por segundo que você precisa para esta tabela. O DynamoDB reserva recursos do sistema e de armazenamento suficientes para que seus requisitos de throughput sejam sempre atendidos. Você pode usar a operaçãoUpdateTable
para alterar essas configurações mais tarde, se necessário. Você não precisa especificar os requisitos de armazenamento de uma tabela porque a alocação de armazenamento é gerenciada inteiramente pelo DynamoDB.