Qu’est-ce qu’Azure Cosmos DB pour NoSQL
Commençons par quelques définitions et une rapide visite guidée d’Azure Cosmos DB for NoSQL. Cette vue d’ensemble devrait vous aider à déterminer si Azure Cosmos DB est un bon choix pour votre travail.
Qu’est-ce qu’une base de données NoSQL ?
Les développeurs ont besoin de nouveaux types de bases de données capables de répondre aux défis uniques des applications modernes. Les bases de données NoSQL ont été conçues pour répondre à des besoins de type :
- Grands volumes de données.
- Données provenant de nombreuses sources sous diverses formes.
- Schémas de données dynamiques qui stockent différents types de données.
- Utilisation de données haute vélocité et/ou en temps réel.
Vous définissez les bases de données NoSQL en fonction des caractéristiques communes qu’elles partagent, plutôt que par une définition formelle spécifique. Ces caractéristiques sont notamment les suivantes :
- Magasin de données non relationnelles.
- Conçues pour le scale-out.
- N’appliquent pas de schéma spécifique.
En général, les bases de données NoSQL n’appliquent pas de contraintes relationnelles et ne placent pas de verrous sur les données, ce qui accélère les écritures. Par ailleurs, elles sont souvent conçues pour la mise à l’échelle horizontale avec un partitionnement, ce qui leur permet de conserver des performances optimales quelle que soit leur taille.
S’il existe de nombreux modèles de données NoSQL, quatre grandes familles de modèles de données sont fréquemment utilisées lors de la modélisation des données dans une base de données NoSQL :
Nous nous concentrons maintenant sur le modèle de données pris en charge par Azure Cosmos DB for NoSQL : le modèle de données de document.
Pourquoi utiliser une base de données NoSQL avec le modèle de données de documents ?
Le modèle de données de documents décompose les données en entités de document individuelles. Un document peut être n’importe quel type de données structurées, mais JSON est couramment utilisé comme format de données. Azure Cosmos DB for NoSQL prend en charge JSON en mode natif.
Un document est une entité atomique et peut avoir sa propre forme de données, indépendamment de ce qui est stocké dans d’autres documents de la même base de données. En raison de cette flexibilité, vous n’avez pas besoin de schéma prédéfini, ce qui vous permet de créer rapidement des applications. En outre, cette flexibilité permet des scénarios où différents types de données peuvent être stockés ensemble et où les modèles peuvent évoluer au cours de la durée de vie d’une application.
Qu’est-ce qu’un document JSON ?
JavaScript Object Notation, ou JSON, est un format de données léger. JSON a été conçu pour être fortement compatible avec la notation littérale d’un objet dans le langage JavaScript. Beaucoup de frameworks, de navigateurs et même de bases de données prennent en charge JavaScript nativement, ce qui fait de JSON un format répandu pour la transmission et le stockage des données.
Voici un exemple de document JSON :
{
"device": {
"type": "mobile"
},
"sentTime": "2019-11-12T13:08:42",
"spoolRefs": [
"6a86682c-be5a-4a4a-bacd-96c4d1c7ece6",
"79e78fe2-93aa-4688-89db-a7278b034aa6"
]
}
Comme vous pouvez le voir, JSON est un format de données relativement lisible qui expose clairement son contenu. JSON est également relativement facile à analyser et à utiliser dans les applications JavaScript.
Qu’est-ce qu’Azure Cosmos DB pour NoSQL ?
Azure Cosmos DB for NoSQL est un mécanisme NoSQL rapide et un service de base de données vectorielle qui offre une interrogation enrichie sur des données diverses et prend en charge une nouvelle génération d’applications d’IA générative. Il fournit des performances configurables et fiables, est distribué à l’échelle mondiale et favorise un développement rapide.
L’API NoSQL est l’API principale ou native utilisée pour travailler avec des documents. L’API NoSQL prend en charge le développement rapide et flexible utilisant des documents JSON, un langage de requête avec une syntaxe bien connue et des bibliothèques clientes pour les langages de programmation répandus. Azure Cosmos DB fournit également des fonctionnalités uniques, comme la recherche et l’indexation vectorielles, qui permettent aux utilisateurs de créer une nouvelle génération d’applications d’IA générative sur les données des utilisateurs qu’ils peuvent rapidement et efficacement mettre à l’échelle.
Azure Cosmos DB for NoSQL offre quelques avantages :
- Base de données vectorielle de pointe avec une recherche et une indexation vectorielles conçues pour gérer des vecteurs dimensionnels élevés, ce qui permet une recherche vectorielle exacte et efficace à n’importe quelle échelle.
- Rapidité garantie à n’importe quelle échelle, même en mode rafale, avec une élasticité instantanée et sans limite, des lectures rapides et des écritures multimaîtres, partout dans le monde.
- Développement d’application flexible et rapide avec des Kits de développement logiciel (SDK) pour les infrastructures et langages connus comme .NET, Java, Python, JavaScript et GO, ainsi que les analyses sans ETL (extraction, transformation et chargement).
- Prête pour les applications critiques avec continuité de l’activité garantie, une disponibilité de 99,999 % et une sécurité de niveau entreprise.
- Complètement managée et économique avec une offre serverless complète, ainsi qu’une mise à l’échelle automatique et dynamique pour répondre aux besoins de l’application.
Ces fonctionnalités rendent Azure Cosmos DB parfaitement adapté au développement d’applications modernes. Azure Cosmos DB for NoSQL est particulièrement adaptée aux applications qui :
- Subissent des pics et des creux imprévisibles du trafic
- Génèrent de grandes quantités de données
- Doivent fournir des expériences utilisateur en temps réel
- Sont essentielles pour la continuité des activités
L’API Azure Cosmos DB for NoSQL peut stocker des documents JSON natifs avec un schéma flexible. Les données sont indexées automatiquement et peuvent être interrogées en utilisant une version du langage de requête SQL conçue pour les données JSON. L’API NoSQL est accessible en utilisant des Kits de développement logiciel (SDK) pour les infrastructures connues, comme .NET, Python, Java, Node.js et GO