Cas d’utilisation courants d’Azure Cosmos DBCommon Azure Cosmos DB use cases

Cet article présente plusieurs cas d’utilisation courants pour Azure Cosmos DB.This article provides an overview of several common use cases for Azure Cosmos DB. Les recommandations de cet article constituent le point de départ du développement de votre application avec Cosmos DB.The recommendations in this article serve as a starting point as you develop your application with Cosmos DB.

Après avoir lu cet article, vous serez en mesure de répondre aux questions suivantes :After reading this article, you'll be able to answer the following questions:

  • Quels sont les cas d’utilisation courants pour Azure Cosmos DB ?What are the common use cases for Azure Cosmos DB?
  • Quels sont les avantages de l’utilisation d’Azure Cosmos DB pour les applications de vente au détail ?What are the benefits of using Azure Cosmos DB for retail applications?
  • Quels sont les avantages de l’utilisation d’Azure Cosmos DB en tant que magasin de données pour les systèmes Internet des objets (IoT) ?What are the benefits of using Azure Cosmos DB as a data store for Internet of Things (IoT) systems?
  • Quels sont les avantages de l’utilisation d’Azure Cosmos DB pour les applications web et mobiles ?What are the benefits of using Azure Cosmos DB for web and mobile applications?

IntroductionIntroduction

Azure Cosmos DB est le service de base de données de Microsoft distribué à l’échelle mondiale.Azure Cosmos DB is Microsoft’s globally distributed database service. Il permet de mettre à l’échelle le débit et le stockage de façon indépendante et en toute flexibilité pour le nombre de régions géographiques de votre choix.The service is designed to allow customers to elastically (and independently) scale throughput and storage across any number of geographical regions. Azure Cosmos DB est le premier service de base de données distribué à l’échelle mondiale à offrir des contrats de niveau de service complets englobant le débit, la latence, la disponibilité et la cohérence.Azure Cosmos DB is the first globally distributed database service in the market today to offer comprehensive service level agreements encompassing throughput, latency, availability, and consistency.

Azure Cosmos DB est une base de données multimodèle distribuée à l’échelle mondiale qui est utilisée dans un large éventail d’applications et de cas d’utilisation.Azure Cosmos DB is a global distributed, multi-model database that is used in a wide range of applications and use cases. Elle constitue un bon choix pour toute application sans serveur qui a besoin de temps de réponse réduits de l’ordre des millisecondes et qui doit pouvoir évoluer rapidement et à l’échelle mondiale.It is a good choice for any serverless application that needs low order-of-millisecond response times, and needs to scale rapidly and globally. Elle prend en charge plusieurs modèles de données (clé-valeur, documents, graphes et en colonnes) et de nombreuses API pour l’accès aux données, entre autres l’API for MongoDB d’Azure Cosmos DB, l’API SQL, l’API Gremlin et l’API Table en mode natif et d’une manière extensible.It supports multiple data models (key-value, documents, graphs and columnar) and many APIs for data access including Azure Cosmos DB's API for MongoDB, SQL API, Gremlin API, and Tables API natively, and in an extensible manner.

Voici certains attributs d’Azure Cosmos DB qui rendent cette base de données parfaitement adaptée aux applications hautes performances destinées à une utilisation mondiale.The following are some attributes of Azure Cosmos DB that make it well-suited for high-performance applications with global ambition.

  • Azure Cosmos DB partitionne vos données en mode natif pour offrir une disponibilité et une évolutivité élevées.Azure Cosmos DB natively partitions your data for high availability and scalability. Azure Cosmos DB garantit une disponibilité, un débit, une faible latence et une cohérence à 99,99 % pour tous les comptes à région unique et à plusieurs régions avec cohérence souple, ainsi qu’une disponibilité de lecture à 99,999 % pour tous les comptes de base de données à plusieurs régions.Azure Cosmos DB offers 99.99% guarantees for availability, throughput, low latency, and consistency on all single-region accounts and all multi-region accounts with relaxed consistency, and 99.999% read availability on all multi-region database accounts.
  • Azure Cosmos DB dispose d’un stockage SSD avec des temps de réponse de l’ordre des millisecondes à faible latence.Azure Cosmos DB has SSD backed storage with low-latency order-of-millisecond response times.
  • La prise en charge par Azure Cosmos DB des niveaux de cohérence finale, de préfixe, de session et liée sans état offre un rapport coût-performances faible et une flexibilité totale.Azure Cosmos DB's support for consistency levels like eventual, consistent prefix, session, and bounded-staleness allows for full flexibility and low cost-to-performance ratio. Aucun service de base de données n’offre autant de flexibilité qu’Azure Cosmos DB en matière de niveaux de cohérence.No database service offers as much flexibility as Azure Cosmos DB in levels consistency.
  • Azure Cosmos DB possède un modèle de tarification flexible et adapté aux données qui mesure indépendamment le stockage et le débit.Azure Cosmos DB has a flexible data-friendly pricing model that meters storage and throughput independently.
  • Le modèle de débit réservé d’Azure Cosmos DB vous permet de raisonner en termes de nombre de lectures/d’écritures au lieu de processeur/mémoire/IOPS du matériel sous-jacent.Azure Cosmos DB's reserved throughput model allows you to think in terms of number of reads/writes instead of CPU/memory/IOPs of the underlying hardware.
  • La conception d’Azure Cosmos DB vous permet de monter en puissance pour des volumes de requêtes énormes, de l’ordre de billions de requêtes par jour.Azure Cosmos DB's design lets you scale to massive request volumes in the order of trillions of requests per day.

Ces attributs sont particulièrement utiles dans les applications web, mobiles, de jeu et IoT qui ont besoin de temps de réponse rapides et doivent gérer des quantités énormes de lectures et d’écritures.These attributes are beneficial in web, mobile, gaming, and IoT applications that need low response times and need to handle massive amounts of reads and writes.

IoT et télématiqueIoT and telematics

Les cas d'utilisation IoT présentent généralement les mêmes schémas pour la réception, le traitement et le stockage des données.IoT use cases commonly share some patterns in how they ingest, process, and store data. Tout d'abord, ces systèmes autorisent la réception de paquets de données émanant de capteurs d’appareil dans différents paramètres régionaux.First, these systems need to ingest bursts of data from device sensors of various locales. Ensuite, ces systèmes traitent et analysent les données en continu pour générer des informations pertinentes en temps réel.Next, these systems process and analyze streaming data to derive real-time insights. Les données sont alors archivées dans un stockage à froid en vue d’une analyse par batch.The data is then archived to cold storage for batch analytics. Microsoft Azure propose des services enrichis applicables aux cas d’utilisation IoT, dont Azure Cosmos DB, Azure Event Hubs, Azure Stream Analytics, Azure Notification Hub, Azure Machine Learning, Azure HDInsight et Power BI.Microsoft Azure offers rich services that can be applied for IoT use cases including Azure Cosmos DB, Azure Event Hubs, Azure Stream Analytics, Azure Notification Hub, Azure Machine Learning, Azure HDInsight, and Power BI.

Architecture de référence IoT d’Azure Cosmos DB

Des paquets de données peuvent être reçus par Azure Event Hubs qui offre un débit d’ingestion de données élevé à faible latence.Bursts of data can be ingested by Azure Event Hubs as it offers high throughput data ingestion with low latency. Les données reçues qui doivent être traitées pour un aperçu en temps réel peuvent être transférées dans Azure Stream Analytics en vue d’une analyse en temps réel.Data ingested that needs to be processed for real-time insight can be funneled to Azure Stream Analytics for real-time analytics. Les données peuvent être chargées dans Azure Cosmos DB pour une interrogation ad hoc.Data can be loaded into Azure Cosmos DB for adhoc querying. Une fois que les données sont chargées dans Azure Cosmos DB, celles-ci sont prêtes à être interrogées.Once the data is loaded into Azure Cosmos DB, the data is ready to be queried. De plus, les nouvelles données et modifications apportées aux données existantes peuvent être lues sur un flux de modification.In addition, new data and changes to existing data can be read on change feed. Un flux de modification est un journal persistant, constitué exclusivement d’ajouts, qui stocke les modifications apportées aux conteneurs de Cosmos dans un ordre séquentiel.Change feed is a persistent, append only log that stores changes to Cosmos containers in sequential order. La totalité des données ou seulement les modifications qui ont été apportées à ces données peuvent être utilisées dans Azure Cosmos DB comme données de référence pour l’analyse en temps réel.The all data or just changes to data in Azure Cosmos DB can be used as reference data as part of real-time analytics. En outre, les données peuvent être davantage affinées et traitées en connectant des données d’Azure Cosmos DB à HDInsight pour les tâches Pig, Hive ou Map/Reduce.In addition, data can further be refined and processed by connecting Azure Cosmos DB data to HDInsight for Pig, Hive, or Map/Reduce jobs. Les données affinées sont ensuite chargées à nouveau dans Azure Cosmos DB pour la création de rapports.Refined data is then loaded back to Azure Cosmos DB for reporting.

Pour un exemple de solution IoT utilisant Azure Cosmos DB, EventHubs et Storm, consultez le référentiel d’exemples de Storm et HDInsight sur GitHub.For a sample IoT solution using Azure Cosmos DB, EventHubs and Storm, see the hdinsight-storm-examples repository on GitHub.

Pour plus d’informations sur les offres Azure pour IoT, consultez Création de votre Internet des objets.For more information on Azure offerings for IoT, see Create the Internet of Your Things.

Ventes et marketingRetail and marketing

Azure Cosmos DB est largement utilisé dans les plateformes d’e-commerce Microsoft qui exécutent le Windows Store et XBox Live.Azure Cosmos DB is used extensively in Microsoft's own e-commerce platforms, that run the Windows Store and XBox Live. Ce service est également utilisé dans le secteur de la vente au détail, pour le stockage des données de catalogue et l’approvisionnement en événements dans les pipelines de traitement des commandes.It is also used in the retail industry for storing catalog data and for event sourcing in order processing pipelines.

Les scénarios d’utilisation des données de catalogue impliquent le stockage et l’interrogation d’un ensemble d’attributs pour des entités telles que des personnes, des lieux et des produits.Catalog data usage scenarios involve storing and querying a set of attributes for entities such as people, places, and products. Les comptes d’utilisateurs, les catalogues de produits, les registres d’appareil IoT et les systèmes de facturation de matériaux sont des exemples de données de catalogue.Some examples of catalog data are user accounts, product catalogs, IoT device registries, and bill of materials systems. Les attributs de ces données peuvent varier et peuvent changer au fil du temps pour répondre aux besoins de l'application.Attributes for this data may vary and can change over time to fit application requirements.

Prenons l’exemple d'un catalogue de produits pour un fournisseur de pièces détachées de voiture.Consider an example of a product catalog for an automotive parts supplier. Chaque pièce peut avoir ses propres attributs en plus des attributs communs qui partagent toutes les pièces.Every part may have its own attributes in addition to the common attributes that all parts share. En outre, les attributs pour une pièce spécifique peuvent changer l'année suivante lorsqu'un nouveau modèle est commercialisé.Furthermore, attributes for a specific part can change the following year when a new model is released. Azure Cosmos DB prend en charge les schémas flexibles et les données hiérarchiques, ce qui en fait une solution idéale pour stocker les données d’un catalogue de produits.Azure Cosmos DB supports flexible schemas and hierarchical data, and thus it is well suited for storing product catalog data.

Architecture de référence d’un catalogue de vente Azure Cosmos DB

Azure Cosmos DB est souvent utilisé pour l’approvisionnement en événements, afin d’alimenter les architectures pilotées par événements au moyen de sa fonctionnalité de flux de modification.Azure Cosmos DB is often used for event sourcing to power event driven architectures using its change feed functionality. Le flux de modification fournit aux microservices en aval la capacité à lire de façon incrémentielle et fiable insertions et mises à jour (par exemple, les événements de commande) qui sont apportées à un service Azure Cosmos DB.The change feed provides downstream microservices the ability to reliably and incrementally read inserts and updates (for example, order events) made to an Azure Cosmos DB. Cette fonctionnalité peut être exploitée pour fournir un magasin d’événements persistant en guise de courtier de messages des événements qui changent d’état, et pour gérer le workflow du traitement des commandes entre de nombreux microservices (pouvant être implémentés comme solution Azure Functions sans serveur).This functionality can be leveraged to provide a persistent event store as a message broker for state-changing events and drive order processing workflow between many microservices (which can be implemented as serverless Azure Functions).

Architecture de référence d’un pipeline de commande en cours Azure Cosmos DB

De plus, les données stockées dans Azure Cosmos DB peuvent être intégrées à HDInsight en vue d’une analyse de données volumineuses par le biais de tâches Apache Spark.In addition, data stored in Azure Cosmos DB can be integrated with HDInsight for big data analytics via Apache Spark jobs. Pour plus d’informations sur le connecteur Spark pour Azure Cosmos DB, consultez Exécuter une tâche Spark avec Azure Cosmos DB et HDInsight.For details on the Spark Connector for Azure Cosmos DB, see Run a Spark job with Cosmos DB and HDInsight.

JeuxGaming

Le niveau de base de données est un composant essentiel des applications de jeu.The database tier is a crucial component of gaming applications. Les jeux modernes traitent des graphiques sur les clients mobiles/console, mais s’appuient sur le cloud pour fournir un contenu personnalisé, comme les statistiques du jeu, l’intégration aux médias sociaux et les tableaux des meilleurs scores.Modern games perform graphical processing on mobile/console clients, but rely on the cloud to deliver customized and personalized content like in-game stats, social media integration, and high-score leaderboards. Souvent, les jeux nécessitent des latences de l’ordre de la milliseconde pour les lectures et écritures afin de fournir une bonne qualité de jeu.Games often require single-millisecond latencies for reads and writes to provide an engaging in-game experience. Une base de données de jeu doit être rapide et pouvoir gérer les hausses importantes du nombre de demandes lors du lancement de nouveaux jeux ou de nouvelles fonctionnalités.A game database needs to be fast and be able to handle massive spikes in request rates during new game launches and feature updates.

Azure Cosmos DB est utilisé par des jeux tels que The Walking Dead : No Man’s Land de Next Games, et Halo 5 : Guardians.Azure Cosmos DB is used by games like The Walking Dead: No Man's Land by Next Games, and Halo 5: Guardians. Azure Cosmos DB offre les avantages suivants aux développeurs de jeux :Azure Cosmos DB provides the following benefits to game developers:

  • Azure Cosmos DB permet d’augmenter ou de réduire les performances de manière flexible.Azure Cosmos DB allows performance to be scaled up or down elastically. Cela permet aux jeux de gérer la mise à jour du profil et des statistiques de dizaines jusqu’à des millions de joueurs simultanés à l’aide d’un seul appel de l’API.This allows games to handle updating profile and stats from dozens to millions of simultaneous gamers by making a single API call.
  • Azure Cosmos DB prend en charge les lectures et écritures en millisecondes afin d’éviter les retards dans le jeu.Azure Cosmos DB supports millisecond reads and writes to help avoid any lags during game play.
  • L’indexation automatique d’Azure Cosmos DB permet le filtrage sur plusieurs propriétés différentes en temps réel, par exemple pour localiser les joueurs avec leur ID de joueur en interne, ou leur ID GameCenter, Facebook, Google, ou exécuter une requête basée sur l’appartenance du joueur à un groupe.Azure Cosmos DB's automatic indexing allows for filtering against multiple different properties in real-time, for example, locate players by their internal player IDs, or their GameCenter, Facebook, Google IDs, or query based on player membership in a guild. Cela est possible sans générer d’indexation complexe, ni infrastructure de partitionnement.This is possible without building complex indexing or sharding infrastructure.
  • Les fonctionnalités sociales, y compris les messages dans le jeu, l’appartenance des joueurs à des groupes, les défis terminés, les tableaux des meilleurs scores, et les graphiques sociaux sont plus faciles à implémenter avec un schéma flexible.Social features including in-game chat messages, player guild memberships, challenges completed, high-score leaderboards, and social graphs are easier to implement with a flexible schema.
  • Azure Cosmos DB comme plateforme en tant que service (PaaS) gérée requiert une gestion et une configuration minimales pour offrir une itération rapide et réduire le délai de mise sur le marché.Azure Cosmos DB as a managed platform-as-a-service (PaaS) required minimal setup and management work to allow for rapid iteration, and reduce time to market.

Architecture de référence de gaming Azure Cosmos DB

Applications web et mobilesWeb and mobile applications

Azure Cosmos DB est couramment utilisé dans les applications web et mobiles, et ce service est bien adapté à la modélisation des interactions sociales, à l’intégration avec les services tiers et à la création d’expériences personnalisées riches.Azure Cosmos DB is commonly used within web and mobile applications, and is well suited for modeling social interactions, integrating with third-party services, and for building rich personalized experiences. Les Kits de développement logiciel (SDK) Cosmos DB permettent de générer des applications iOS et Android enrichies utilisant l’infrastructure Xamarin qui est connue.The Cosmos DB SDKs can be used build rich iOS and Android applications using the popular Xamarin framework.

Applications des réseaux sociauxSocial Applications

Un cas d’utilisation courant pour Azure Cosmos DB consiste à stocker et à interroger du contenu généré par l’utilisateur pour des applications web, mobiles et de réseaux sociaux.A common use case for Azure Cosmos DB is to store and query user generated content (UGC) for web, mobile, and social media applications. Les sessions de conversation, les tweets, les billets de blog, les évaluations et les commentaires sont des exemples de contenus générés par l’utilisateur.Some examples of UGC are chat sessions, tweets, blog posts, ratings, and comments. Souvent, les contenus générés par les utilisateurs dans les applications des réseaux sociaux combinent du texte au format libre, des propriétés, des balises et des relations qui ne sont pas contraintes par une structure rigide.Often, the UGC in social media applications is a blend of free form text, properties, tags, and relationships that are not bounded by rigid structure. Les contenus tels que les discussions, les commentaires et les publications peuvent être stockés dans Cosmos DB sans nécessiter des transformations ou un objet complexe de couches de mappage relationnelles.Content such as chats, comments, and posts can be stored in Cosmos DB without requiring transformations or complex object to relational mapping layers. Des propriétés de données peuvent être ajoutées ou modifiées facilement pour répondre aux besoins lorsque les développeurs effectuent une itération dans le code d'application, favorisant ainsi un développement rapide.Data properties can be added or modified easily to match requirements as developers iterate over the application code, thus promoting rapid development.

Les applications qui s’intègrent dans des réseaux sociaux tiers doivent répondre à l’évolution des schémas de ces réseaux.Applications that integrate with third-party social networks must respond to changing schemas from these networks. Puisque les données sont automatiquement indexées par défaut dans Cosmos DB, les données sont prêtes à être interrogées à tout moment.As data is automatically indexed by default in Cosmos DB, data is ready to be queried at any time. Par conséquent, ces applications ont la possibilité de récupérer les projections selon leurs besoins respectifs.Hence, these applications have the flexibility to retrieve projections as per their respective needs.

La plupart des applications des réseaux sociaux s'exécutent à l'échelle mondiale et peuvent présenter des modèles d'utilisation imprévisibles.Many of the social applications run at global scale and can exhibit unpredictable usage patterns. La flexibilité dans la mise à l'échelle des données est essentielle car la couche Application se met à l’échelle pour correspondre à la demande.Flexibility in scaling the data store is essential as the application layer scales to match usage demand. Vous pouvez monter en charge en ajoutant des partitions de données supplémentaires sous un compte Cosmos DB.You can scale out by adding additional data partitions under a Cosmos DB account. De plus, vous pouvez également créer des comptes Cosmos DB supplémentaires dans plusieurs régions.In addition, you can also create additional Cosmos DB accounts across multiple regions. Pour la disponibilité régionale du service Cosmos DB, consultez Régions Azure.For Cosmos DB service region availability, see Azure Regions.

Architecture de référence des applications web Azure Cosmos DB

PersonnalisationPersonalization

Aujourd’hui, la plupart des applications offrent des affichages et des expériences complexes.Nowadays, modern applications come with complex views and experiences. Elles sont généralement dynamiques et répondent aux préférences et aux humeurs de l’utilisateur ainsi qu’aux besoins de personnalisation.These are typically dynamic, catering to user preferences or moods and branding needs. Par conséquent, les applications doivent pouvoir extraire efficacement des paramètres personnalisés pour restituer rapidement les éléments de l’interface utilisateur et les expériences.Hence, applications need to be able to retrieve personalized settings effectively to render UI elements and experiences quickly.

Le format JSON, pris en charge par Cosmos DB, est un format efficace pour représenter des données de disposition de l’interface utilisateur afin de la rendre légère, mais aussi pour qu’elle soit facilement interprétée par JavaScript.JSON, a format supported by Cosmos DB, is an effective format to represent UI layout data as it is not only lightweight, but also can be easily interpreted by JavaScript. Cosmos DB offre des niveaux de cohérence paramétrables qui permettent des lectures rapides avec des écritures à faible latence.Cosmos DB offers tunable consistency levels that allow fast reads with low latency writes. Ainsi, le stockage des données de disposition de l’interface utilisateur, y compris les paramètres personnalisés en tant que documents JSON dans Cosmos DB, est un moyen efficace pour obtenir ces données sur tout le réseau.Hence, storing UI layout data including personalized settings as JSON documents in Cosmos DB is an effective means to get this data across the wire.

Architecture de référence des applications web Azure Cosmos DB

Étapes suivantesNext steps

  • Pour découvrir Azure Cosmos DB, suivez nos démarrages rapides qui vous guident dans la création d’un compte et la prise en main de Cosmos DB.To get started with Azure Cosmos DB, follow our quick starts, which walk you through creating an account and getting started with Cosmos DB.

  • Si vous souhaitez en savoir plus sur les clients utilisant Azure Cosmos DB, consultez la page des études de cas de clients.If you'd like to read more about customers using Azure Cosmos DB, see the customer case studies page.