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.