Diferenças entre um banco de dados relacional (SQL) e o DynamoDB ao criar uma tabela - Amazon DynamoDB

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ção UpdateTable 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.