Mesurer les performances d’Azure Cosmos DB for NoSQL avec un framework d’évaluation
Le choix de type de base de données à utiliser avec votre charge de travail de données n’a jamais été aussi grand. L’un des facteurs clés du choix d’une base de données est les performances de la base de données ou du service, mais les performances d’évaluation peuvent être fastidieuses et sujettes aux erreurs. L’infrastructure d’évaluation des bases de données Azure simplifie le processus de mesure des performances à l’aide d’outils d’évaluation en open source populaires avec des recettes à faible friction qui implémentent les meilleures pratiques courantes. Dans Azure Cosmos DB for NoSQL, l’infrastructure implémente les meilleures pratiques pour le kit de développement logiciel (SDK) Java et utilise l’outil YCSB en open source. Dans ce guide, vous utilisez cette infrastructure d’évaluation pour implémenter une charge de travail de lecture afin de vous familiariser avec l’infrastructure.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Compte Azure Cosmos DB for NoSQL. Créer une API pour un compte NoSQL.
- Veillez à noter l’URI du point de terminaison et la clé primaire du compte.
- Compte Stockage Azure. Créer un compte de stockage Azure
- Assurez-vous de noter la chaîne de connexion du compte de stockage. Vies Chaîne de connexion Stockage Azure.
- Second groupe de ressources vide. Créez un groupe de ressources.
- Interface de ligne de commande Azure (CLI)
Créer des ressources de compte Azure Cosmos DB
Tout d’abord, vous créez une base de données et un conteneur dans le compte d’API pour NoSQL existant.
Accédez à votre compte API for NoSQL sur le Portail Azure.
Dans le menu de la ressource, sélectionnez Explorateur de données.
Sur la page Data Explorer, sélectionnez l’option Nouveau conteneur dans la barre de commandes.
Dans la boîte de dialogue Nouveau conteneur, créez un conteneur en indiquant les paramètres suivants :
Paramètre Valeur ID de base de données ycsb
Type de débit de la base de données Manuel Valeur du débit de la base de données 400
ID de conteneur usertable
Clé de partition /id
Déployer l’infrastructure d’analyse comparative sur Azure
À présent, vous utilisez un modèle Azure Resource Manager pour déployer l’infrastructure d’évaluation sur Azure avec la recette de lecture par défaut.
Déployez l’infrastructure d’évaluation à l’aide d’un modèle Azure Resource Manager disponible via ce lien.
Dans la page Déploiement personnalisé, les paramètres suivants
Sélectionnez Vérifier + créer, puis Créer pour déployer le modèle.
Attendez la fin du déploiement.
Conseil
Le déploiement peut prendre de 5 à 10 minutes.
Afficher les résultats de l’évaluation
À présent, vous pouvez utiliser le compte stockage Azure existant pour vérifier l’état du travail d’évaluation et afficher les résultats agrégés. L’état est stocké à l’aide d’une table de stockage et les résultats sont agrégés dans un objet blob de stockage au format CSV.
Accédez à votre compte Stockage Azure existant sur le Portail Azure.
Accédez à une table de stockage nommée ycsbbenchmarkingmetadata et recherchez l’entité avec une clé de partition de
ycsb_sql
.Observez le champ
JobStatus
de l’entité de table. Initialement, l’état du travail estStarted
et inclut un horodatage dans la propriétéJobStartTime
, mais pas dans la propriétéJobFinishTime
.Attendez que le travail soit en l’état
Finished
et qu’il inclut un horodatage dans la propriétéJobFinishTime
.Conseil
La fin du travail peut prendre 20 à 30 minutes.
Accédez au conteneur de stockage dans le même compte avec le préfixe ycsbbenchmarking-*. Observez les objets blob de sortie et de diagnostic pour l’outil.
Ouvrez l’objet blob aggregation.csv et observez le contenu. Vous devez maintenant disposer d’un jeu de données CSV avec des résultats agrégés de tous les clients d’évaluation.
Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond) READ,180000,299,706,448255,1079,1159,2867
Recettes
L’infrastructure d’évaluation des bases de données Azure comprend des recettes permettant d’encapsuler les définitions de charge de travail qui sont passées à l’outil d’évaluation sous-jacent pour une expérience « 1 clic ». Les définitions de charge de travail ont été conçues en fonction des meilleures pratiques publiées par l’équipe Azure Cosmos DB et l’équipe de l’outil d’évaluation. Les recettes ont été testées et validées pour obtenir des résultats cohérents.
Attendez-vous à rencontrer les latences suivantes pour toutes les recettes de lecture et d’écriture dans le dépôt GitHub.
Problèmes courants
Cette section inclut les erreurs courantes qui peuvent se produire lors de l’exécution de l’outil d’évaluation. Les journaux d’erreur de l’outil sont généralement disponibles dans un conteneur au sein du compte de stockage Azure.
Si les journaux ne sont pas disponibles dans le compte de stockage, ce problème est généralement dû à une chaîne de connexion de stockage incorrecte ou manquante. Dans ce cas, cette erreur est répertoriée dans le fichier agent.out dans le dossier /home/benchmarking de la machine virtuelle cliente.
Error while accessing storage account, exiting from this machine in agent.out on the VM
Cette erreur est répertoriée dans le fichier agent.out, à la fois dans la machine virtuelle cliente et dans le compte de stockage si l’URI du point de terminaison Azure Cosmos DB est incorrect ou inaccessible.
Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known
Cette erreur est répertoriée dans le fichier agent.out, à la fois dans la machine virtuelle cliente et dans le compte de stockage si l’URI de la clé Azure Cosmos DB est incorrecte.
The input authorization token can't serve the request. The wrong key is being used….
Étapes suivantes
- Pour en savoir plus sur l’outil d’évaluation, consultez le guide Prise en main.