DynamoDB - Visão geral

O DynamoDB permite aos usuários criar bancos de dados capazes de armazenar e recuperar qualquer quantidade de dados e atender a qualquer quantidade de tráfego. Ele distribui dados e tráfego automaticamente pelos servidores para gerenciar dinamicamente as solicitações de cada cliente e também mantém um desempenho rápido.

DynamoDB vs. RDBMS

O DynamoDB usa um modelo NoSQL, o que significa que usa um sistema não relacional. A tabela a seguir destaca as diferenças entre DynamoDB e RDBMS -

Tarefas comuns RDBMS DynamoDB
Connect to the Source Ele usa uma conexão persistente e comandos SQL. Ele usa solicitações HTTP e operações de API
Create a Table Suas estruturas fundamentais são tabelas e devem ser definidas. Ele usa apenas chaves primárias e nenhum esquema na criação. Ele usa várias fontes de dados.
Get Table Info Todas as informações da mesa permanecem acessíveis Apenas as chaves primárias são reveladas.
Load Table Data Ele usa linhas feitas de colunas. Nas tabelas, ele usa itens feitos de atributos
Read Table Data Ele usa instruções SELECT e instruções de filtragem. Ele usa GetItem, Query e Scan.
Manage Indexes Ele usa índices padrão criados por meio de instruções SQL. As modificações ocorrem automaticamente nas mudanças da tabela. Ele usa um índice secundário para atingir a mesma função. Requer especificações (chave de partição e chave de classificação).
Modify Table Data Ele usa uma instrução UPDATE. Ele usa uma operação UpdateItem.
Delete Table Data Ele usa uma instrução DELETE. Ele usa uma operação DeleteItem.
Delete a Table Ele usa uma instrução DROP TABLE. Ele usa uma operação DeleteTable.

Vantagens

As duas principais vantagens do DynamoDB são escalabilidade e flexibilidade. Ele não força o uso de uma determinada fonte de dados e estrutura, permitindo que os usuários trabalhem com praticamente qualquer coisa, mas de maneira uniforme.

Seu design também oferece suporte a uma ampla gama de uso, desde tarefas e operações mais leves até funções empresariais exigentes. Também permite o uso simples de várias linguagens: Ruby, Java, Python, C #, Erlang, PHP e Perl.

Limitações

O DynamoDB sofre de certas limitações, no entanto, essas limitações não necessariamente criam grandes problemas ou impedem o desenvolvimento sólido.

Você pode revisá-los a partir dos seguintes pontos -

  • Capacity Unit Sizes- Uma unidade de capacidade de leitura é uma única leitura consistente por segundo para itens não maiores que 4 KB. Uma unidade de capacidade de gravação é uma única gravação por segundo para itens não maiores que 1 KB.

  • Provisioned Throughput Min/Max- Todas as tabelas e índices secundários globais têm no mínimo uma unidade de capacidade de leitura e uma de gravação. Os máximos dependem da região. Nos EUA, 40K de leitura e gravação continuam sendo o limite por tabela (80K por conta), e outras regiões têm um limite de 10K por tabela com um limite de conta de 20K.

  • Provisioned Throughput Increase and Decrease - Você pode aumentar quantas vezes for necessário, mas as reduções permanecem limitadas a não mais do que quatro vezes ao dia por mesa.

  • Table Size and Quantity Per Account - Os tamanhos das tabelas não têm limites, mas as contas têm um limite de 256 mesas, a menos que você solicite um limite maior.

  • Secondary Indexes Per Table - Cinco locais e cinco globais são permitidos.

  • Projected Secondary Index Attributes Per Table - O DynamoDB permite 20 atributos.

  • Partition Key Length and Values - O comprimento mínimo é de 1 byte e máximo de 2.048 bytes; no entanto, o DynamoDB não impõe limites aos valores.

  • Sort Key Length and Values - Seu comprimento mínimo é de 1 byte e máximo de 1024 bytes, sem limite de valores, a menos que sua tabela use um índice secundário local.

  • Table and Secondary Index Names - Os nomes devem ter um comprimento mínimo de 3 caracteres e um máximo de 255. Eles usam os seguintes caracteres: AZ, az, 0-9, “_”, “-” e “.”.

  • Attribute Names - Um caractere permanece o mínimo e 64 KB o máximo, com exceções para chaves e certos atributos.

  • Reserved Words - O DynamoDB não impede o uso de palavras reservadas como nomes.

  • Expression Length- As strings de expressão têm um limite de 4 KB. As expressões de atributo têm um limite de 255 bytes. As variáveis ​​de substituição de uma expressão têm um limite de 2 MB.