DynamoDB est un service de base de données NoSQL rapide et entièrement géré, qui simplifie et rentabilise le stockage et l'extraction de n'importe quel volume de données, tout en vous permettant de répondre aux demandes, quelle que soit l'importance du trafic. Tous les éléments de données sont stockés sur des disques SSD et répliqués sur 3 zones de disponibilité afin de garantir un haut niveau de durabilité et de disponibilité.
DynamoDB vous permet de vous défaire de la lourde charge administrative que représentent l'exploitation et le dimensionnement d'un cluster de base de données distribué hautement disponible, tout en ne payant qu'un faible prix en fonction de votre utilisation.
Exécutez jusqu'à 40 millions d'opérations gratuitement par mois. En savoir plus »
Pour utiliser Amazon DynamoDB, il suffit de :
Évolutivité – Amazon DynamoDB est conçu pour assurer un dimensionnement transparent du débit et du stockage.
Rapidité et prévision – Les temps de latence pour les services courants dans Amazon DynamoDB sont généralement de quelques millisecondes. Le service s'exécute sur des disques SSD et garantit la cohérence et la rapidité des temps de latence à n'importe quelle échelle.
Simplicité d'administration – Amazon DynamoDB est un service entièrement géré prenant en charge toutes les opérations dès lors que vous créez une table de base de données. Vous n'avez alors plus à vous soucier des ressources matérielles et logicielles, de l'installation et de la configuration, des correctifs logiciels, de la gestion de clusters fiables et distribués, ou encore du partitionnement des données sur plusieurs instances lors du dimensionnement.
Tolérance aux pannes intégrée – Amazon DynamoDB intègre un système de tolérance aux pannes, répliquant vos données automatiquement et de manière synchronisée sur trois zones de disponibilité au sein d'une région. Vous bénéficiez ainsi d'une haute disponibilité et d'une protection renforcée de vos données face aux défaillances d'ordinateurs spécifiques ou même de tout un site.
Flexibilité – Amazon DynamoDB ne suit pas de schéma défini. Ainsi, chaque élément de données peut être associé à un nombre variable d'attributs. La multiplicité des types de données (chaînes, nombres, données binaires et ensembles) contribue à enrichir le modèle de données.
Compteurs atomiques à cohérence forte – Contrairement à de nombreuses bases de données non relationnelles, Amazon DynamoDB facilite le développement en vous permettant d'effectuer des lectures à cohérence forte afin que vous traitiez en permanence les valeurs les plus à jour. Amazon DynamoDB prend en charge différents types de données natives (nombres, chaînes, données binaires et attributs à plusieurs valeurs). Le service prend également en charge des compteurs atomiques destinés à permettre l'incrémentation ou la décrémentation atomique d'attributs numériques via un seul appel API.
Rentabilité – Amazon DynamoDB est conçu pour optimiser la rentabilité pour tout type de charge de travail. Vous avez la possibilité de démarrer avec une offre gratuite prenant en charge 40 millions d'opérations de bases de données par mois, et de bénéficier d'un tarif horaire pour les ressources que vous consommez au-delà de cette limite. Caractérisé par sa simplicité d'administration et par des tarifs intéressants en termes d'exécution des requêtes, DynamoDB réduit considérablement le coût total de possession lié à votre charge de travail par rapport à la gestion d'une base de données relationnelle ou non relationnelle par votre entreprise.
Sécurité – Amazon DynamoDB utilise des méthodes cryptographiques pour authentifier les utilisateurs et empêcher la violation des données. Ce service s'intègre également à AWS Identity and Access Management (IAM) pour un service de contrôle d'accès ultra-précis pour les utilisateurs au sein de votre entreprise.
Suivi intégré – Amazon DynamoDB affiche des mesures opérationnelles clés pour les tables créées dans AWS Management Console. Le service est également intégré à Amazon CloudWatch pour vous permettre de consulter le débit et les temps de latence relatifs aux requêtes pour chaque table Amazon DynamoDB et d'effectuer un suivi de votre consommation de ressources.
Intégration à Amazon DynamoDB – Amazon DynamoDB est également intégré à Amazon Elastic MapReduce (Amazon EMR). Amazon EMR permet aux entreprises d'effectuer des analyses complexes sur de gros volumes de données à l'aide d'un framework hébergé sur AWS caractérisé par un paiement à l'utilisation. Grâce à Amazon DynamoDB les clients peuvent utiliser Amazon EMR pour analyser des jeux de données stockés dans DynamoDB et archiver les résultats dans Amazon Simple Storage Service (Amazon S3), tout en conservant le jeu de données d'origine dans DynamoDB. Les entreprises peuvent également utiliser Amazon EMR pour accéder aux données sur divers services (Amazon DynamoDB, Amazon RDS, et Amazon S3), effectuer des analyses complexes sur cet ensemble de données combiné et stocker les résultats de ces opérations sur Amazon S3.
DynamoDB permet un dimensionnement du débit et du stockage en toute transparence, via une API et une console de gestion facile à utiliser, qui vous permettent de réaliser aisément une mise à l'échelle ascendante ou descendante afin de répondre à vos besoins. Pour bon nombre de nos clients, il ne leur aura fallu que quelques minutes pour créer, en un clic, des déploiements DynamoDB capables de gérer des milliards de requêtes de base de données par an.
Les tables DynamoDB n'ont pas de schémas fixes et chaque élément peut comporter un certain nombre d'attributs. Les divers types de données enrichissent le modèle de données. Des index secondaires en local permettent plus de flexibilité quant aux requêtes que vous pouvez exécuter, sans nuire aux performances.
Les capacités en termes de performances, fiabilité et sécurité sont intégrées, avec un stockage SSD et une réplication automatique sur 3 zones distinctes. Amazon DynamoDB utilise des méthodes cryptographiques pour authentifier les utilisateurs de manière sécurisée et empêcher la violation des données.
En savoir plus sur les fonctionnalités et les avantages de DynamoDB »
DynamoDB est accessible sans frais initiaux et vous payez uniquement en fonction de votre utilisation. La tarification est simple : un tarif horaire fixe s'applique en fonction de la capacité réservée. Lorsque vous créez ou mettez à jour une table Amazon DynamoDB, vous spécifiez la capacité que vous souhaitez réserver pour les lectures et écritures. DynamoDB répartit automatiquement les données et le trafic de la table sur un nombre suffisant de serveurs afin de répondre à vos exigences de débit, tout en conservant des performances élevées et homogènes.
Vous pouvez commencer à utiliser DynamoDB gratuitement grâce à notre niveau gratuit mensuel. Les clients DynamoDB bénéficient de 100 Mo de stockage gratuit et d'une capacité de débit permanent de 5 écritures/secondes et de 10 lectures/seconde au maximum. Vous pouvez utiliser ces capacités gratuites de stockage et de débit afin d'exécuter jusqu'à 40 millions d'opérations gratuitement chaque mois, avec des lectures finalement cohérentes, ou 25 millions d'opérations chaque mois pour des lectures rigoureusement cohérentes.
Au sein d'Amazon, nous utilisons DynamoDB comme choix par défaut pour commencer à gérer toute charge de travail ne nécessitant pas la flexibilité d'une base de données relationnelle de type Oracle ou MySQL. Nos clients nous disent adopter la même méthode, en particulier dans les domaines de la publicité numérique, des jeux sociaux et des applications pour périphériques interconnectés où il est essentiel d'offrir haute disponibilité, évolutivité transparente, performances prévisibles et faible latence.
Le développement d'applications sur Amazon DynamoDB vous permet d'accroître progressivement votre capacité de requêtes par table en fonction de l'évolution de vos besoins tout en évitant les temps d'arrêt ou la modification de lignes de code. Amazon DynamoDB offre une expérience entièrement gérée à n'importe quelle échelle.
Pour être opérationnel en quelques minutes sur DynamoDB, consultez notre manuel de mise en route. DynamoDB s'intègre directement avec Amazon S3 et Amazon Redshift. Avec AWS Data Pipeline, vous pouvez extraire des données depuis Amazon Elastic MapReduce, Amazon RDS et vos bases de données Amazon EC2, ce qui vous permet de combiner et d'analyser des données issues de différentes sources, en quelques étapes seulement.
Les applications Web actuelles génèrent et consomment un volume de données élevé. Par exemple, un jeu en ligne peut commencer avec quelques milliers d'utilisateurs et une faible charge de travail de base de données de 10 écritures par seconde et 50 lectures par seconde. Si toutefois ce jeu devient populaire, le nombre d'utilisateurs peut rapidement passer à quelques millions et générer des dizaines (voire des centaines) de milliers d'écritures et de lectures par seconde. Cela peut également générer des téraoctets de données par jour. Le développement d'applications sur Amazon DynamoDB vous permet d'accroître progressivement votre capacité de requêtes par table en fonction de l'évolution de vos besoins tout en évitant les temps d'arrêt ou la modification de lignes de code. Amazon DynamoDB offre une expérience entièrement gérée à n'importe quelle échelle.
Même si Amazon DynamoDB s'attaque aux problèmes majeurs liés à l'évolutivité, à la gestion, aux performances et à la fiabilité des bases de données, ce service n'est pas une base de données relationnelle et ne prend pas en charge les requêtes relationnelles complexes (par ex. : les jonctions) ou les transactions complexes. Si votre charge de travail requiert cette fonctionnalité, ou si vous recherchez une compatibilité avec un moteur relationnel existant, essayez Amazon Relational Database Service (RDS). Vous pouvez également exécuter votre propre base de données relationnelle sur Amazon EC2. Alors que les moteurs de bases de données relationnelles offrent de nombreuses fonctions et fonctionnalités, les charges de travail nécessitant un dimensionnement peuvent impliquer le partitionnement et le repartitionnement de vos données sur plusieurs instances. Cette expérience peut s'avérer complexe. Ainsi, si vous êtes capable d'anticiper les dimensionnements de votre nouvelle application et que vous n'avez pas besoin de fonctionnalités relationnelles, Amazon DynamoDB semble être la solution idéale.
Rendez-vous sur la page Faire fonctionner des bases de données sur AWS pour obtenir des informations supplémentaires sur les diverses alternatives de base de données pour vos applications.
Amazon DynamoDB classe les données dans des tables contenant des éléments, chaque élément étant associé à un ou plusieurs attributs.
Un attribut est la combinaison d'un nom et d'une valeur. Le nom doit être une chaîne mais la valeur peut correspondre à une chaîne, un nombre, une valeur binaire, un ensemble de chaînes, un ensemble de nombres ou un ensemble binaire. Voici quelques exemples d'attributs :
"ImageID" = 1
"Title" = "flower"
"Tags" = "flower", "jasmine", "white"
"Ratings" = 3, 4, 2
Un élément est constitué d'attributs et est identifiable par la clé primaire à laquelle il est associé. Les attributs d'un élément forment un ensemble de paires nom-valeur, dans un ordre aléatoire. Les attributs d'élément peuvent être dispersés, sans lien avec les attributs associés aux éléments d'une même table et sont facultatifs (à l'exception de l'attribut de la clé primaire). Contrairement au système des bases de données classiques, une table est entièrement dépendante de la clé primaire. Les éléments sont stockés dans une table. Pour intégrer des éléments à une table, vous devez désigner au moins l'un des attributs en tant que clé primaire. La clé primaire identifie un seul élément d'une table DynamoDB. Dans le diagramme suivant, ImageID est l'attribut désigné comme clé primaire.
Notez que, contrairement à la table, appelée « myTable », aucun nom n'est associé à l'élément. La clé primaire définit un élément ; l'élément avec clé primaire "ImageID"=1
Les tables comportent des éléments et classent les informations par zones Tous les éléments contenus dans une table sont associés à une clé primaire. Les noms d'attributs à utiliser pour la clé primaire sont spécifiés lorsque vous créez une table. Chaque élément de cette table doit avoir une valeur de clé primaire unique. Pour écrire des données dans DynamoDB, vous devez créer une table et associer un nom de table à une clé primaire. La table suivante est plus volumineuse et utilise également ImageID comme clé primaire pour identifier des éléments.
| Table : Mes images | |||||||
| Clé primaire | Autres attributs | ||||||
| ImageID = 1 | ImageLocation = https://s3.amazonaws.com/bucket/img_1.jpg | Date = 1260653179 | Title = flower | Tags = Flower, Jasmine | Width = 1024 | Depth = 768 | |
| ImageID = 2 | ImageLocation = https://s3.amazonaws.com/bucket/img_2.jpg | Date = 1252617979 | Rated = 3, 4, 2 | Tags = Work, Seattle, Office | Width = 1024 | Depth = 768 | |
| ImageID = 3 | ImageLocation = https://s3.amazonaws.com/bucket/img_3.jpg | Date = 1285277179 | Price = 10.25 | Tags = Seattle, Grocery, Store | Author = you | Camera = phone | |
| ImageID = 4 | ImageLocation = https://s3.amazonaws.com/bucket/img_4.jpg | Date = 1282598779 | Title = Hawaii | Author = Joe | Colors = orange, blue, yellow | Tags = beach, blanket, ball | |
DynamoDB requiert la définition d'une clé primaire par table utilisée pour accéder aux données. La clé primaire identifie chaque élément de manière unique (par ex. : ID =1, ID = 2, ID = 3, etc.). La clé primaire est la seule partie de la table qui est indexée. Elle est également utilisée pour hacher vos données en partition au niveau de plusieurs serveurs. La clé primaire doit être spécifiée lorsque vous créez une table.
En d'autres termes, chaque élément est un ensemble de paires nom/valeur. Lorsque vous créez une table d'éléments, vous désignez une paire nom/valeur en tant que clé primaire. Tous les éléments de la table doivent être associés à une valeur correspondant à la clé primaire. Amazon DynamoDB s'assure que la valeur correspondant à ce nom est unique. Un index est créé en fonction de la clé primaire.
Une clé primaire composite vous permet de spécifier deux attributs d'une table formant ensemble un index primaire unique. Tous les éléments de la table doivent être associés à ces deux attributs. L'un d'entre eux est un « attribut de partition par hachage » et l'autre un « attribut intervalle ». Par exemple, vous pouvez avoir une table « Mise à jour statut » dotée d'une clé primaire composite constituée de « UserID » (attribut de hachage servant à partitionner la charge de travail sur plusieurs serveurs) et de « Time » (attribut intervalle). Vous pouvez ensuite exécuter une requête pour récupérer : 1) un élément spécifique uniquement associé à la combinaison des valeurs UserID et Time, 2) tous les éléments d'un « compartiment » de hachage spécifique (ici UserID) ou 3) tous les éléments associés à un UserID spécifique dans un intervalle de temps donné. Les requêtes d'intervalle exécutées avec « Time » sont uniquement prises en charge lorsque le compartiment de hachage UserID est spécifié.
Amazon DynamoDB s'intègre également à Amazon Elastic MapReduce (Amazon EMR). Amazon EMR permet aux entreprises d'effectuer des analyses complexes sur des gros volumes de données à l'aide d'un framework Hadoop hébergé sur AWS caractérisé par un paiement à l'utilisation. Voici quelques modes d'utilisation d'EMR avec DynamoDB :
Les clients peuvent analyser les données stockées dans DynamoDB à l'aide d'EMR et stocker les résultats de l'analyse dans S3 tout en conservant les données d'origine dans DynamoDB.
Par exemple, si vous utilisez Amazon DynamoDB pour stocker les commandes de vos clients, vous pouvez créer une nouvelle table de commandes chaque mois à l'aide de la fonction d'exécution de requêtes sur plusieurs tables d'EMR. Vous pouvez également relier différentes tables dans DynamoDB pour obtenir des réponses à des questions visant, par exemple, à identifier les commandes passées par un client donné au cours des 3 derniers mois. Vous pouvez ensuite utiliser EMR pour stocker les réponses à ces questions dans S3 pour une récupération ultérieure tout en conservant les données dans les tables réservées aux commandes client mensuelles dans DynamoDB.
EMR permet de sauvegarder les données DynamoDB sur S3.
Pour poursuivre avec l'exemple relatif aux commandes client, une fois que vous n'effectuez plus d'écritures dans une table de commandes mensuelles, vous pouvez la sauvegarder sur S3 et la supprimer de DynamoDB afin de bénéficier des coûts de stockage plus faibles de S3. Comme indiqué ci-dessous, les données stockées dans S3 pourront toujours être analysées.
Les clients peuvent également utiliser Amazon EMR pour accéder à des données stockées sur plusieurs services (Amazon DynamoDB, Amazon RDS et Amazon S3), effectuer des analyses complexes sur ces ensembles de données combinés, et stocker les résultats de ces opérations sur Amazon S3.
Par exemple, si vous utilisez Amazon DynamoDB pour enregistrer les commandes de vos clients, vous pouvez créer une nouvelle table de commandes chaque mois et, en fin de mois, archiver les commandes de plus de 6 mois dans Amazon S3 à l'aide d'Amazon EMR. Cela vous permet d'archiver les commandes rarement consultées dans Amazon S3 tout en réduisant vos coûts et en conservant uniquement les commandes fréquemment consultées dans DynamoDB. Vous pouvez utiliser EMR pour effectuer des analyses couvrant les commandes stockées dans DynamoDB et les tables de commandes archivées dans Amazon S3 pour répondre à des requêtes destinées à déterminer le nombre de commandes de widget X passées par un client Y sur une période de 48 mois.
Votre utilisation de ce service est soumise au Contrat client Amazon Web Services.
"