DynamoDB - Présentation

DynamoDB permet aux utilisateurs de créer des bases de données capables de stocker et de récupérer n'importe quelle quantité de données et de desservir n'importe quelle quantité de trafic. Il distribue automatiquement les données et le trafic sur les serveurs pour gérer dynamiquement les demandes de chaque client, et maintient également des performances rapides.

DynamoDB contre RDBMS

DynamoDB utilise un modèle NoSQL, ce qui signifie qu'il utilise un système non relationnel. Le tableau suivant met en évidence les différences entre DynamoDB et RDBMS -

Tâches communes SGBDR DynamoDB
Connect to the Source Il utilise une connexion persistante et des commandes SQL. Il utilise des requêtes HTTP et des opérations API
Create a Table Ses structures fondamentales sont des tables et doivent être définies. Il n'utilise que des clés primaires et aucun schéma lors de la création. Il utilise diverses sources de données.
Get Table Info Toutes les informations de la table restent accessibles Seules les clés primaires sont révélées.
Load Table Data Il utilise des lignes constituées de colonnes. Dans les tableaux, il utilise des éléments composés d'attributs
Read Table Data Il utilise des instructions SELECT et des instructions de filtrage. Il utilise GetItem, Query et Scan.
Manage Indexes Il utilise des index standard créés via des instructions SQL. Les modifications de celui-ci se produisent automatiquement lors des changements de table. Il utilise un index secondaire pour réaliser la même fonction. Il nécessite des spécifications (clé de partition et clé de tri).
Modify Table Data Il utilise une instruction UPDATE. Il utilise une opération UpdateItem.
Delete Table Data Il utilise une instruction DELETE. Il utilise une opération DeleteItem.
Delete a Table Il utilise une instruction DROP TABLE. Il utilise une opération DeleteTable.

Avantages

Les deux principaux avantages de DynamoDB sont l'évolutivité et la flexibilité. Il ne force pas l'utilisation d'une source de données et d'une structure particulières, permettant aux utilisateurs de travailler avec pratiquement n'importe quoi, mais de manière uniforme.

Sa conception prend également en charge un large éventail d'utilisations, des tâches et opérations plus légères aux fonctionnalités d'entreprise exigeantes. Il permet également une utilisation simple de plusieurs langages: Ruby, Java, Python, C #, Erlang, PHP et Perl.

Limites

DynamoDB souffre de certaines limitations, cependant, ces limitations ne créent pas nécessairement d'énormes problèmes ou n'entravent pas un développement solide.

Vous pouvez les revoir à partir des points suivants -

  • Capacity Unit Sizes- Une unité de capacité de lecture est une seule lecture cohérente par seconde pour les éléments ne dépassant pas 4 Ko. Une unité de capacité d'écriture est une seule écriture par seconde pour les éléments ne dépassant pas 1 Ko.

  • Provisioned Throughput Min/Max- Toutes les tables et tous les index secondaires globaux ont au minimum une unité de capacité de lecture et une unité de capacité d'écriture. Les maximums dépendent de la région. Aux États-Unis, 40K en lecture et en écriture restent le plafond par table (80K par compte), et d'autres régions ont un plafond de 10K par table avec un plafond de 20K de compte.

  • Provisioned Throughput Increase and Decrease - Vous pouvez l'augmenter aussi souvent que nécessaire, mais les diminutions restent limitées à pas plus de quatre fois par jour par table.

  • Table Size and Quantity Per Account - Les tailles de table n'ont pas de limites, mais les comptes ont une limite de 256 tables, sauf si vous demandez un plafond plus élevé.

  • Secondary Indexes Per Table - Cinq locaux et cinq mondiaux sont autorisés.

  • Projected Secondary Index Attributes Per Table - DynamoDB autorise 20 attributs.

  • Partition Key Length and Values - Leur longueur minimale est de 1 octet et maximale de 2048 octets, cependant, DynamoDB ne place aucune limite sur les valeurs.

  • Sort Key Length and Values - Sa longueur minimale est de 1 octet et maximale de 1024 octets, sans limite de valeurs sauf si sa table utilise un index secondaire local.

  • Table and Secondary Index Names - Les noms doivent comporter au minimum 3 caractères et au maximum 255. Ils utilisent les caractères suivants: AZ, az, 0-9, «_», «-» et «.».

  • Attribute Names - Un caractère reste le minimum et 64 Ko le maximum, avec des exceptions pour les clés et certains attributs.

  • Reserved Words - DynamoDB n'empêche pas l'utilisation de mots réservés comme noms.

  • Expression Length- Les chaînes d'expression ont une limite de 4 Ko. Les expressions d'attributs ont une limite de 255 octets. Les variables de substitution d'une expression ont une limite de 2 Mo.