Le SDKAWS mobile pour Xamarin est désormais inclus dans leAWS SDK for .NET. Ce guide fait référence à la version archivée du SDK mobile pour Xamarin.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Amazon DynamoDB
Qu'est-ce qu'Amazon DynamoDB?
Amazon DynamoDB
Concepts clés
Les concepts de modèle de données DynamoDB incluent des tables, des éléments et des attributs.
Tables
Dans Amazon DynamoDB, une base de données est un ensemble de tables. Une table est un ensemble d'éléments et chaque élément est un ensemble d'attributs.
Dans une base de données relationnelle, une table a un schéma prédéfini, tel que le nom de la table, la clé primaire, la liste des noms de colonnes et leurs types de données. Tous les enregistrements stockés dans la table doivent avoir le même ensemble de colonnes. En revanche, DynamoDB exige uniquement qu'une table ait une clé primaire, mais ne requiert pas que vous définissiez tous les noms d'attribut et les types de données à l'avance.
Pour en savoir plus sur l'utilisation des tables, consultez Utilisation de tables dans DynamoDB.
Eléments et attributs
Des éléments individuels dans une table DynamoDB peuvent avoir n'importe quel nombre d'attributs, bien qu'il y ait une limite de 400 Ko sur la taille d'élément. La taille d'un élément est la somme des longueurs de ses noms et valeurs d'attribut (longueurs binaire et UTF-8).
Chaque attribut dans un élément est une paire nom-valeur. Un attribut peut être un ensemble à valeur unique ou à plusieurs valeurs. Par exemple, un élément de livre peut avoir des attributs de titre et d'auteurs. Chaque livre a un titre mais peut avoir plusieurs auteurs. L'attribut à plusieurs valeurs est un ensemble ; les valeurs en double ne sont pas autorisées.
Par exemple, envisagez de stocker un catalogue de produits dans DynamoDB. Vous pouvez créer une table,ProductCatalog, avec l'attribut Id comme clé primaire. La clé primaire identifie de manière unique chaque élément de la table, de sorte que deux produits de la table ne peuvent pas avoir le même ID.
Pour en savoir plus sur l'utilisation des éléments, consultez Utilisation des éléments dans DynamoDB.
Les types de données
Amazon DynamoDB prend en charge les types de données suivants :
-
Types scalar : Number, String, Binary, Boolean et Null.
-
Types à valeurs multiples : String Set, Number Set et Binary Set.
-
Types document : List et Map.
Pour plus d'informations sur les types de données scalar, à valeurs multiples et document, consultez la page Types de données DynamoDB.
Clé primaire
Lorsque vous créez une table, en plus du nom de la table, vous devez spécifier la clé primaire de la table. La clé primaire identifie de manière unique chaque élément de la table, afin qu'aucun deux éléments n'ait la même clé. DynamoDB prend en charge les deux types de clés primaires suivants :
-
Clé de hachage : La clé primaire est constituée d'un seul attribut, un attribut de hachage. DynamoDB crée un index de hachage non ordonné sur cet attribut de clé primaire. Chaque élément de la table est identifié de manière unique par sa valeur clé de hachage.
-
Clé de hachage et de plage : La clé primaire est constituée de deux attributs. Le premier est l'attribut de hachage et le second est l'attribut de plage. DynamoDB crée un index de hachage non ordonné sur l'attribut de clé primaire de hachage et un index de plage trié sur l'attribut de clé primaire de plage. Chaque élément de la table est identifié de manière unique par la combinaison de ses valeurs de clé de hachage et de plage. Il est possible pour deux éléments d'avoir la même valeur de clé de hachage, mais ces deux éléments doivent avoir des valeurs de clés de plage différentes.
Index secondaires
Lorsque vous créez une table avec une clé de hachage et de plage, vous pouvez définir, le cas échéant, un ou plusieurs index secondaires sur cette table. Un index secondaire vous permet d'interroger les données de la table à l'aide d'une clé alternative, en plus des requêtes sur la clé primaire.
DynamoDB prend en charge deux types d'index secondaires : les index secondaires locaux et index secondaires globaux.
-
Index secondaire local : Index possédant la même clé de hachage que la table, mais une clé de plage différente.
-
Index secondaire global : Index avec une clé de hachage et une clé de plage qui peuvent être différentes de celles de la table.
Vous pouvez définir jusqu'à 5 index secondaires globaux et 5 index secondaires locaux par table. Pour plus d'informations sur ces index, consultez Amélioration de l'accès aux données avec les index secondaires dans DynamoDB dans le Manuel du développeur DynamoDB.
Query and Scan
En plus de l'utilisation des clés primaires pour accéder aux éléments, Amazon DynamoDB propose également deux API pour explorer les données : Query and Scan. Nous vous recommandons de lire Bonnes pratiques concernant l'interrogation et l'analyse des données dans le Manuel du développeur DynamoDB pour vous familiariser avec quelques bonnes pratiques.
Query
Une opération Query recherche les éléments d'une table ou d'un index secondaire uniquement à l'aide des valeurs d'attribut de la clé primaire. Vous devez fournir un attribut de clé de hachage et une valeur distincte à rechercher. Vous pouvez, le cas échéant, fournir un attribut de clé de plage et une valeur, et utiliser un opérateur de comparaison pour affiner les résultats de recherche.
Pour des exemples de requêtes, consultez :
Pour plus d'informations sur l'interrogation des données, consultez la partie Interrogation dans le Manuel du développeur DynamoDB.
Analyser
Une opération Scan lit tous les éléments d'une table ou d'un index secondaire. Par défaut, une opération Scan retourne tous les attributs de données pour chaque élément de la table ou de l'index. Vous pouvez utiliser le pluginProjectionExpressionde telle sorte que Scan retourne uniquement certains des attributs, plutôt que leur totalité.
Pour des exemples d'analyses, consultez :
Pour plus d'informations sur l'analyse des données, consultez la partie Analyse dans le Manuel du développeur DynamoDB.
Configuration du projet
Prérequis
Pour utiliser DynamoDB dans votre application, vous devez ajouter le kit SDK à votre projet. Pour ce faire, suivez les instructions de la section Configurer le kit SDK AWS Mobile pour .NET et Xamarin.
Créer une table DynamoDB
Pour créer une table, accédez à la console DynamoDB
-
Cliquez sur Créer une table.
-
Saisissez le nom de la table.
-
Sélectionnez Hachage comme type de clé primaire.
-
Sélectionnez un type et entrez une valeur pour le nom d'attribut de hachage. Cliquez sur Continuer.
-
Sur la page Add Indexes (Ajouter des index), si vous prévoyez d'utiliser des index secondaires globaux, spécifiez Global Secondary Index pour Index Type (Type d'index) et sous Index Hash Key (Clé de hâchage d'index), saisissez une valeur pour l'index secondaire. Cela vous permettra d'effectuer une interrogation et une analyse à l'aide de l'index principal et de l'index secondaire. Cliquez sur Add Index To Table (Ajouter l'index à la table), puis sur Continue (Continuer). Pour ne pas utiliser d'index secondaires globaux, cliquez sur Continue (Continuer).
-
Définissez la capacité de lecture et d'écriture aux niveaux souhaités. Pour plus d'informations sur la configuration de la capacité, consultez Débit alloué dans Amazon DynamoDB. Cliquez sur Continuer.
-
Dans l'écran suivant, entrez un e-mail de notification afin de créer des alarmes relatives au débit, si vous le souhaitez. Cliquez sur Continuer.
-
Sur la page récapitulative, cliquez sur Create (Créer). DynamoDB crée alors votre base de données.
Définir les autorisations pour DynamoDB
Pour utiliser DynamoDB dans une application, vous devez définir les autorisations appropriées. La stratégie IAM suivante permet à l'utilisateur de supprimer, d'obtenir, de placer, d'interroger, d'analyser et de mettre à jour des éléments dans une table DynamoDB qui est identifiée par son ARN :
{ "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/MyTable" } ] }
Vous pouvez modifier les stratégies dans la console IAM
Pour plus d'informations sur les stratégies IAM, consultez Utilisation d'IAM.
Pour en savoir plus sur les stratégies spécifiques à DynamoDB, consultez Utilisation d'IAM pour contrôler l'accès aux ressources DynamoDB dans le Manuel du développeur DynamoDB.
Intégration de DynamoDB avec votre application
Le kit SDK AWS Mobile pour .NET et Xamarin fournit une bibliothèque de haut niveau pour l'utilisation de DynamoDB. Vous pouvez également envoyer des requêtes directement à l'API DynamoDB de bas niveau, mais pour la plupart des cas d'utilisation, il est recommandée d'utiliser la bibliothèque de haut niveau. LeAmazonDynamoDBClient est un composant particulièrement utile de cette bibliothèque de haut niveau. Cette classe vous permet d'effectuer diverses opérations de création, de lecture, de mise à jour et de suppression, et d'exécuter des requêtes.
Le kit SDK AWS Mobile pour .NET et Xamarin vous permet d'effectuer des appels à l'aide d'API à partir du kit AWS SDK for .NET pour utiliser DynamoDB. Toutes les API sont disponibles dans leAWSSDK.dll. Pour plus d'informations sur le téléchargement du kit SDK AWS pour .NET, consultez Kit AWS SDK pour .NET
Il existe trois façons d'interagir avec DynamoDB dans votre application Xamarin :
-
Modèle de document : Cette API fournit des classes wrapper autour de l'API de bas niveau DyanmoDB pour simplifier vos tâches de programmation. Table et Document sont les classes d'enveloppe principales. Vous pouvez utiliser le modèle de document pour les opérations de données telles que créer, extraire, mettre à jour et supprimer des éléments. L'API est disponible dans Amazon.DynamoDB.DocumentModelL'espace de noms.
-
Modèle de persistance des objets : L'API Object Persistence vous permet de mapper vos classes côté client aux tables DynamoDB. Ensuite, chaque instance d'objet est mappée à un élément des tables correspondantes. La classe DynamoDBContext de cette API fournit des méthodes qui vous permettent d'enregistrer les objets côté client dans une table, d'extraire des éléments en tant qu'objets et d'effectuer des opérations d'interrogation et d'analyse. Vous pouvez utiliser le modèle de persistance des objets pour les opérations de données telles que créer, extraire, mettre à jour et supprimer des éléments. Vous devez d'abord créer vos tables à l'aide de l'API Service Client, puis utiliser le modèle de persistance des objets pour mapper vos classes avec les tables. L'API est disponible dans Amazon.DynamoDB.DataModelL'espace de noms.
-
API Service Client : Il s'agit de l'API au niveau du protocole qui assure un mappage étroit avec l'API DynamoDB. Vous pouvez utiliser cette API de bas niveau pour toutes les opérations de table et d'élément, telles que créer, mettre à jour, supprimer la table et les éléments. Vous pouvez également interroger et analyser vos tables. Cette API est disponible dans le namespace Amazon.DynamoDB.
Ces trois modèles sont abordés de manière approfondie dans les rubriques suivantes :