Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide inclut les meilleures pratiques pour les solutions créées à l’aide de la dernière version du Kit de développement logiciel (SDK) Python pour Azure Cosmos DB pour NoSQL. Les meilleures pratiques incluses ici permettent d’améliorer la latence, d’améliorer la disponibilité et d’améliorer les performances globales de vos solutions.
Configuration du compte
- Exécutez autant que possible votre application dans la même région Azure que celle dans laquelle se trouve votre compte Azure Cosmos DB. Activez la réplication dans 2 régions et plus dans vos comptes pour une meilleure disponibilité. Pour les charges de travail de production, activez le basculement managé par le service. En l’absence de cette configuration, le compte subit une perte de disponibilité en écriture pendant toute la durée de la panne de la région d’écriture, car le basculement manuel échoue en raison d'une absence de connectivité entre les régions. Pour plus d’informations sur l’ajout de plusieurs régions à l’aide du Kit de développement logiciel (SDK) Python, consultez le didacticiel de distribution globale.
Utilisation du Kit de développement logiciel (SDK)
- Utilisez toujours la dernière version du Kit de développement logiciel (SDK) Azure Cosmos DB disponible pour des performances optimales.
- Utilisez une seule instance de
CosmosClientpendant toute la durée de vie de votre application pour de meilleures performances. - Définissez la
preferred_locationsconfiguration sur le client Cosmos. Pendant les basculements, les opérations d’écriture sont envoyées à la région d’écriture actuelle et toutes les lectures sont envoyées à la première région de votre liste d’emplacements préférés. Pour plus d’informations sur les mécanismes de basculement régionaux, consultez la résolution des problèmes de disponibilité. - Une erreur temporaire est une erreur qui a une cause sous-jacente qui se résout rapidement seule. Les applications qui se connectent à votre base de données doivent être conçues de sorte à s’attendre à de telles erreurs temporaires. Pour les gérer, implémentez une logique de nouvelle tentative dans leur code au lieu de les exposer aux utilisateurs comme des erreurs d’application. Le kit de développement logiciel (SDK) intègre une logique permettant de gérer ces échecs temporaires sur des demandes renouvelables telles que des opérations de lecture ou d’interrogation. Le Kit de développement logiciel (SDK) ne peut pas répéter les tentatives d'écriture en cas d'échecs temporaires, car les écritures ne sont pas idempotentes. Le SDK permet aux utilisateurs de configurer une logique de nouvelle tentative pour des limitations. Pour plus d’informations sur les erreurs sur lesquelles vous pouvez réessayer, visitez ici.
- Utilisez la journalisation du Kit de développement logiciel (SDK) pour capturer les informations de diagnostic et résoudre les problèmes de latence.
Conception des données
- Les frais de requête d’une opération donnée sont directement liés à la taille du document. Nous vous recommandons de réduire la taille de vos documents, car les opérations sur les documents volumineux coûtent plus que les opérations sur des documents plus petits.
- Certains caractères sont limités et ne peuvent pas être utilisés dans certains identificateurs : '/', '\', ' ?', '#'. La recommandation générale est de ne pas utiliser de caractères spéciaux dans des identificateurs tels que le nom de la base de données, le nom de collection, l’ID d’élément ou la clé de partition pour éviter tout comportement inattendu.
- La stratégie d’indexation Azure Cosmos DB vous permet également de spécifier les chemins d’accès de document à inclure ou exclure de l’indexation à l’aide de chemins d’indexation. Veillez à exclure les chemins inutilisés de l’indexation pour accélérer les écritures. Pour plus d’informations, consultez la création d’index à l’aide de l’exemple sdk.
Caractéristiques de l’hôte
- Vous pouvez rencontrer des problèmes de connectivité/disponibilité en raison d’un manque de ressources sur votre ordinateur client. Surveillez l’utilisation du processeur sur les nœuds qui exécutent le client Azure Cosmos DB et effectuez un scale-up/out si l’utilisation est élevée.
- Si vous utilisez une machine virtuelle pour exécuter votre application, activez la Mise en réseau accélérée sur votre machine virtuelle pour faciliter les goulots d’étranglement dus à un trafic élevé et réduire la latence ou l’instabilité du processeur. Vous pouvez également envisager d’utiliser une machine virtuelle plus sophistiquée où l’utilisation maximale du processeur est inférieure à 70 %.
- Par défaut, les résultats de requête sont retournés dans des segments de 100 éléments ou de 4 Mo, selon la limite atteinte en premier. Si une requête retourne plus de 100 éléments, augmentez la taille de la page pour réduire le nombre d’allers-retours requis. La consommation de mémoire augmente à mesure que la taille de page augmente.
Étapes suivantes
Pour en savoir plus sur les conseils en matière de performances pour le Kit de développement logiciel (SDK) Python Python, consultez les conseils de performances pour le Kit de développement logiciel (SDK) Python Azure Cosmos DB.
Pour en savoir plus sur la conception de votre application pour une mise à l’échelle et des hautes performances, consultez Partitionnement et mise à l’échelle dans Azure Cosmos DB.
Vous tentez d’effectuer une planification de la capacité pour une migration vers Azure Cosmos DB ? Vous pouvez utiliser les informations sur votre cluster de bases de données existant pour la planification de la capacité.
- Si vous ne connaissez que le nombre de vCore et de serveurs présents dans votre cluster de bases de données existant, lisez Estimation des unités de requête à l’aide de vCore ou de processeurs virtuels.
- Si vous connaissez les taux de requêtes typiques de votre charge de travail de base de données actuelle, lisez la section concernant l’estimation des unités de requête à l’aide du planificateur de capacité Azure Cosmos DB