Meilleures pratiques pour le kit SDK Python dans Azure Cosmos DB for NoSQL
S’APPLIQUE À : NoSQL
Ce guide inclut les meilleures pratiques pour les solutions générées à l’aide de la dernière version du kit SDK Python pour Azure Cosmos DB for NoSQL. Les meilleures pratiques incluses ici permettent d’améliorer la latence, la disponibilité et 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 plus de 2 régions de 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 ne peut pas réussir en raison d’un manque de connectivité de la région. Pour plus d’informations sur l’ajout de plusieurs régions à l’aide du kit SDK Python, consultez le tutoriel sur la distribution globale.
Utilisation du Kit de développement logiciel (SDK)
- Utilisez toujours la dernière version du kit SDK Azure Cosmos DB disponible pour des performances optimales.
- Utilisez une seule instance de
CosmosClient
pendant toute la durée de vie de votre application pour de meilleures performances. - Définissez la configuration
preferred_locations
sur le client Cosmos. Durant 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 de localisations préférées. Pour plus d’informations sur le mécanisme de basculement régional, 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éessayer les écritures en cas d’échec temporaire, car les écritures ne sont pas idempotent. Le kit de développement logiciel (SDK) permet aux utilisateurs de configurer une logique de nouvelle tentative pour les limitations. Pour plus d’informations sur les erreurs où les nouvelles tentatives sont possibles, rendez-vous ici.
- Utilisez la journalisation du kit 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 restreints et ne peuvent pas être utilisés dans certains identifiants : '/', '\', '?', '#'. La suggestion générale est de ne pas utiliser de caractères spéciaux dans les identifiants tels que le nom de la base de données, le nom de la collection, l’ID de l’élément ou la clé de partition pour éviter tout comportement inattendu.
- La stratégie d’indexation d’Azure Cosmos DB vous permet également de spécifier les chemins d’accès des documents à inclure ou à exclure de l’indexation à l’aide des chemins d’accès 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 des index à l’aide de l’échantillon du kit de développement logiciel (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 de fin supérieure où l’utilisation maximale de l’UC 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 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 liés aux performances du kit SDK Python, consultez Conseils sur les performances pour le SDK Python Azure Cosmos DB.
Pour en savoir plus sur la conception de votre application pour une mise à l’échelle et de hautes performances, consultez Partitionnement, clés de partition et mise à l’échelle dans 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