DynamoDB Overview
- Banco de dados NoSQL;
- Formato dos dados: Chave valor ou documento;
- Composto de tabelas, itens e atributos;
- Chaves primárias:
- Partition key ou Partition + Sort Key:
- A partition key ou ela associada com a sort key passa por uma função hash, a saída da função determina o local de armazenamento interno no DynamoDB;
- Em uma tabela onde tem apenas uma partition key, dois itens não podem ter o mesmo valor de partition key. Já no outro caso, dois itens podem ter o mesmo valor de partition key contanto que a sort key seja diferente;
- Partition key ou Partition + Sort Key:
- Índices secundários:
- Usando índices secundários, é possível consultar os dados na tabela usando uma chave alternativa e também em relação à chave primária;
- Índices secundários globais: Um índice com uma partition key e uma sort key que pode ser diferente daqueles na tabela;
- Índices secundários locais: Um índice que possui a mesma partition key da tabela mas uma sort key diferente;
- DynamoDB Streams:
- Quando habilitado, comporta-se como um log das operações no banco de dados;
- Modos de capacidade de leitura/escrita:
- Controla como você gerencia a capacidade da sua tabela:
- Modo provisionado (Padrâo): É necessário especificar o número de escrita/leitura por segundo;
- Modo on-demand: Escrita/leitura escala automaticamente; Mais caro;
- Controla como você gerencia a capacidade da sua tabela:
- WCUs (Write capacity units):
- Um WCU representa uma escrita por segundo para um item de até 1KB;
- Exemplo 1: Cada item possui 2KB, quantos WCUs são gastos em uma escrita de 10 itens por segundo? 10 * (2kb/1kb) = 20 WCUs;
- Exemplo 2: Cada item possui 4.5KB, quantos WCUs são gastos em uma escrita de 6 itens por segudo? 6 * (5KB/1KB) = 30 WCUs;
- Perceba que o tamanho do item foi arrendodado para cima;
- Um WCU representa uma escrita por segundo para um item de até 1KB;
- RCUs (Read capacity units):
- Um RCU representa uma leitura fortemente consistente por segundo e duas leituras eventualmente consistentes por segundo, para um item com tamanho de até 4KB;
- Exemplo 1: Cada item possui 4KB, quantos RCUs são gastos em 10 leituras consistentes por segundo? 10 * (4kb/4kb) = 10 RCUs;
- Exemplo 2: Cada item possui 12KB, quantos RCUs são gastos em 16 leituras eventualmente consistentes por segundo? 16/2 * (12kb/4kb) = 24 RCUs;
- Um RCU representa uma leitura fortemente consistente por segundo e duas leituras eventualmente consistentes por segundo, para um item com tamanho de até 4KB;