Modifier

Questions fréquentes sur Azure Cosmos DB for NoSQL

S’APPLIQUE À : NoSQL

Comment faire pour se lancer dans le développement avec Azure Cosmos DB for NoSQL ?

Vous devez d’abord souscrire un abonnement Microsoft Azure. Après avoir souscrit un abonnement Azure, vous pouvez ajouter un conteneur API pour NoSQL à votre abonnement Azure.

Des kits de développement logiciel (SDK) sont disponibles pour .NET, Python, Node.js, JavaScript, Go et Java. Les développeurs peuvent également utiliser l’API REST pour interagir avec des ressources Azure Cosmos DB à partir d’autres plateformes et langages.

Existe-t-il des exemples Azure Cosmos DB for NoSQL pour démarrer ?

Consultez ces exemples de code et de modèles de démarrage rapide pour l’API pour NoSQL :

Azure Cosmos DB for NoSQL prend-il en charge les données sans schéma ?

Oui, l’API pour NoSQL permet aux applications de stocker des documents JSON arbitraires sous forme d’éléments sans définitions de schéma ni conseils. Les données peuvent être interrogées immédiatement avec le langage de requête Azure Cosmos DB for NoSQL.

Azure Cosmos DB for NoSQL prend-il en charge les transactions ACID (atomicité, cohérence, isolation, durabilité) ?

Oui, l’API pour NoSQL prend en charge les transactions entre documents exprimées à l’aide de lots dans les SDK ou sous forme de déclencheurs et de procédures stockées JavaScript. Les transactions sont étendues à une seule partition au sein de chaque conteneur, et exécutées en mode « Tout ou rien » avec des sémantiques ACID, isolément d’autres codes et requêtes utilisateur s’exécutant simultanément. En cas d’exception, la totalité de la transaction est annulée.

Comment faire pour créer une base de données Azure Cosmos DB for NoSQL ?

Vous pouvez créer des bases de données avec l’un de ces outils :

Comment faire pour configurer des utilisateurs et des autorisations natifs de base de données Azure Cosmos DB for NoSQL ?

Vous pouvez créer des utilisateurs et des autorisations en utilisant l’un des kits SDK Azure Cosmos DB for NoSQL ou l’API REST. Pour plus d’informations, consultez Configurer des utilisateurs et des jetons de ressource. La création d’autorisations à l’aide de jetons de ressource est autorisée au niveau du conteneur et de ses descendants (tels que les documents ou les pièces jointes). La création d’une autorisation au niveau de la base de données ou du compte n’est pas autorisée actuellement.

Puis-je m’authentifier auprès d’Azure Cosmos DB for NoSQL en utilisant mes comptes Microsoft Entra ID existants ?

Oui ! Azure Cosmos DB prend en charge l’authentification Microsoft Entra pour gérer le service et ses ressources (plan de contrôle) et pour exécuter des données, des opérations et des requêtes (plan de données). L’authentification du plan de contrôle s’effectue à l’aide de la fonctionnalité de contrôle d’accès en fonction du rôle d’Azure. Vous pouvez utiliser un rôle intégré préconfiguré](.. /.. /role-based-access-control/built-in-roles.md) ou créer un rôle personnalisé. Avec le contrôle d’accès en fonction du rôle Azure, vous pouvez gérer des comptes, des bases de données, des conteneurs et des métadonnées. Le plan de contrôle comprend des opérations, notamment les exemples suivants (sans s’y limiter).

  • Création, remplacement ou suppression de bases de données – Création, remplacement ou suppression de conteneurs – Lecture ou remplacement de débit de base de données – Lecture ou remplacement de débit de conteneur. Pour plus d’informations, consultez Contrôle d’accès en fonction du plan de contrôle Azure Cosmos DB. L’authentification de plan de données utilise une implémentation personnalisée du contrôle d’accès en fonction du rôle natif de l’API pour NoSQL. Avec cette implémentation native, vous pouvez également utiliser des rôles préconfigurés ou personnalisés. Avec le contrôle d’accès en fonction du rôle natif, vous pouvez exécuter des requêtes, gérer les éléments ou effectuer d’autres opérations courantes. Le plan de données comprend des opérations, notamment les exemples suivants (sans s’y limiter).
  • Création, remplacement, mise à jour ou suppression d’éléments – Mise à jour corrective d’éléments – Exécution de requêtes. Pour plus d’informations, consultez Contrôle d’accès en fonction du rôle du plan de données Azure Cosmos DB.

Azure Cosmos DB for NoSQL prend-il en charge le langage de requête SQL ?

Le langage SQL (Structured Query Language) est généralement utilisé pour interroger des données relationnelles. L’API pour NoSQL propose un langage de requête NoSQL personnalisé dérivé de SQL. Le langage de requête NoSQL comprend un sous-ensemble du langage de requête SQL généralement associé à SQL Server ainsi que diverses améliorations propres à NoSQL. Le langage de requête NoSQL propose des opérateurs relationnels et hiérarchiques élaborés et une extensibilité via des fonctions JavaScript définies par l’utilisateur. La grammaire JSON permet de modéliser des documents JSON en tant qu’arborescences comprenant des nœuds étiquetés qui sont utilisés par les techniques d’indexation automatique et le langage de requête SQL d’Azure Cosmos DB. Pour savoir comment utiliser ce langage de requête, consultez Requête NoSQL.

Azure Cosmos DB for NoSQL prend-il en charge les fonctions d’agrégation SQL ?

L’API pour NoSQL prend en charge l’agrégation via des fonctions d’agrégation telles que COUNT, MAX, AVG et SUM via le langage de requête NoSQL.

Comment Azure Cosmos DB for NoSQL assure-t-il l’accès concurrentiel ?

L’API pour NoSQL prend en charge le contrôle d’accès concurrentiel optimiste par l’intermédiaire de balises d’entité HTTP, ou ETags. Chaque ressource de l’API NoSQL est dotée d’une ETag qui est définie sur le serveur à chaque mise à jour d’un document. L’en-tête et la valeur actuelle ETag sont inclus dans tous les messages de réponse. Les ETags peuvent être utilisées avec l’en-tête If-Match pour permettre au serveur de déterminer si une ressource doit être mise à jour. La valeur If-Match est la valeur ETag utilisée pour la vérification. Si la valeur ETag correspond à la valeur ETag du serveur, la ressource est mise à jour. Si l’ETag n’est plus actuelle, le serveur rejette l’opération en retournant un code de réponse « HTTP 412 Échec de la condition préalable ». Dans ce cas, le client extrait à nouveau la ressource afin d’obtenir la valeur ETag actuelle pour la ressource. De plus, les ETags peuvent être utilisées avec l’en-tête If-None-Match pour déterminer si une ressource doit de nouveau être récupérée.

La plupart des kits SDK de l’API pour NoSQL comportent des classes destinées à gérer le contrôle d’accès concurrentiel optimiste.

Comment insérer des documents en bloc dans Azure Cosmos DB for NoSQL ?

Utilisez la fonctionnalité d’importation en bloc qui se trouve dans le SDK .NET ou le SDK Java pour l’API pour NoSQL pour importer des jeux de données volumineux. Cette fonctionnalité optimise le débit approvisionné pour importer les jeux de données volumineux.

Vous pouvez également utiliser Apache Spark pour importer des données à grande échelle à l’aide de Python ou Scala.

Azure Cosmos DB for NoSQL prend-il en charge la mise en cache des liens de ressources ?

Oui. Azure Cosmos DB for NoSQL étant un service RESTful, les liens de ressources sont immuables et peuvent être mis en cache. Les clients de l’API pour NoSQL peuvent spécifier un en-tête « If-None-Match » pour des lectures effectuées en comparaison avec des documents ou conteneurs de type ressource, puis mettre à jour leurs copies locales après modification de la version du serveur.

Existe-t-il une instance locale d’Azure Cosmos DB for NoSQL ?

Oui. L’émulateur Azure Cosmos DB fournit une émulation haute fidélité du service Azure Cosmos DB. Il prend en charge des fonctionnalités identiques à Azure Cosmos DB dans différentes API. Parmi ces fonctionnalités figurent la prise en charge de la création et de l’interrogation d’éléments et celle de l’approvisionnement et de la mise à l’échelle de conteneurs. Vous pouvez développer et tester des applications en utilisant les points de terminaison de l’émulateur. Vous pouvez ensuite déployer les applications sur Azure à une échelle mondiale en modifiant la chaîne de connexion de l’émulateur pour choisir le service en direct.

Pourquoi les valeurs à virgule flottante longues contenues dans un élément Azure Cosmos DB for NoSQL sont-elles arrondies lors de l’utilisation de l’Explorateur de données dans le portail ?

Cette limitation de l’Explorateur de données est une limitation de JavaScript. JavaScript utilise des nombres à virgule flottante double précision comme spécifié dans la norme 754 de l’IEEE (Electrical and Electronics Engineers). Ce type de données peut contenir sans risque des nombres compris entre -(253 - 1) et 253-1 (autrement dit, 9007199254740991) uniquement.