Événement
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
S’APPLIQUE À : NoSQL
Azure Cosmos DB prend en charge de nombreuses API, notamment SQL, MongoDB, Cassandra, Gremlin et Table. Chaque API possède son propre ensemble d’opérations de base de données, qui vont de simples opérations ponctuelles de lecture et d'écriture à des requêtes complexes. Chaque opération de base de données consomme des ressources système en fonction de sa complexité.
Le coût de toutes les opérations de base de données, normalisé par Azure Cosmos DB, est exprimé en unités de requête (RU). Les frais de requête correspondent aux unités de requête consommées par toutes vos opérations de base de données. Les RU correspondent en quelque sorte à une devise de performances, faisant abstraction des ressources système (UC, IOPS, mémoire, etc.) requises pour effectuer les opérations de base de données prises en charge par Azure Cosmos DB. Quelle que soit l’API utilisée pour interagir avec votre conteneur, les coûts sont toujours mesurés en unités de requête. Que l’opération de base de données soit une opération d’écriture, de lecture de point ou de requête, les coûts sont toujours mesurés en unités de requête. Pour en savoir plus, consultez Unités de requête dans Azure Cosmos DB.
Cet article présente les différentes façons de rechercher la consommation d’unités de requête pour toute opération exécutée sur un conteneur dans Azure Cosmos DB for NoSQL. Si vous utilisez une autre API, consultez les sections API pour MongoDB, API pour Cassandra, API pour Gremlin ou API pour Table.
Il n’est actuellement possible de mesurer la consommation que sur le portail Azure ou en examinant la réponse envoyée par Azure Cosmos DB via l’un des kits de développement logiciel (SDK). Si vous utilisez l’API pour NoSQL, vous disposez de plusieurs options pour trouver les frais de requête pour une opération.
Connectez-vous au portail Azure.
Créez un compte Azure Cosmos DB et remplissez-le avec des données, ou sélectionnez un compte Azure Cosmos DB existant qui contient déjà des données.
Accédez au volet Explorateur de données, puis sélectionnez le conteneur sur lequel vous voulez travailler.
Sélectionnez Nouvelle requête SQL.
Entrez une requête valide, puis sélectionnez Exécuter la requête.
Sélectionnez Statistiques des requêtes pour afficher les frais réels de la demande que vous avez exécutée.
Les objets retournés à partir du Kit de développement logiciel (SDK) .NET v2 exposent une propriété RequestCharge
:
ResourceResponse<Document> fetchDocumentResponse = await client.ReadDocumentAsync(
UriFactory.CreateDocumentUri("database", "container", "itemId"),
new RequestOptions
{
PartitionKey = new PartitionKey("partitionKey")
});
var requestCharge = fetchDocumentResponse.RequestCharge;
StoredProcedureResponse<string> storedProcedureCallResponse = await client.ExecuteStoredProcedureAsync<string>(
UriFactory.CreateStoredProcedureUri("database", "container", "storedProcedureId"),
new RequestOptions
{
PartitionKey = new PartitionKey("partitionKey")
});
requestCharge = storedProcedureCallResponse.RequestCharge;
IDocumentQuery<dynamic> query = client.CreateDocumentQuery(
UriFactory.CreateDocumentCollectionUri("database", "container"),
"SELECT * FROM c",
new FeedOptions
{
PartitionKey = new PartitionKey("partitionKey")
}).AsDocumentQuery();
while (query.HasMoreResults)
{
FeedResponse<dynamic> queryResponse = await query.ExecuteNextAsync<dynamic>();
requestCharge = queryResponse.RequestCharge;
}
Les objets retournés à partir du Kit de développement logiciel Java exposent une méthode getRequestCharge()
:
RequestOptions requestOptions = new RequestOptions();
requestOptions.setPartitionKey(new PartitionKey("partitionKey"));
Observable<ResourceResponse<Document>> readDocumentResponse = client.readDocument(String.format("/dbs/%s/colls/%s/docs/%s", "database", "container", "itemId"), requestOptions);
readDocumentResponse.subscribe(result -> {
double requestCharge = result.getRequestCharge();
});
Observable<StoredProcedureResponse> storedProcedureResponse = client.executeStoredProcedure(String.format("/dbs/%s/colls/%s/sprocs/%s", "database", "container", "storedProcedureId"), requestOptions, null);
storedProcedureResponse.subscribe(result -> {
double requestCharge = result.getRequestCharge();
});
FeedOptions feedOptions = new FeedOptions();
feedOptions.setPartitionKey(new PartitionKey("partitionKey"));
Observable<FeedResponse<Document>> feedResponse = client
.queryDocuments(String.format("/dbs/%s/colls/%s", "database", "container"), "SELECT * FROM c", feedOptions);
feedResponse.forEach(result -> {
double requestCharge = result.getRequestCharge();
});
Pour plus d’informations, consultez Démarrage rapide : Générer une application Java à l’aide d’un compte Azure Cosmos DB for NoSQL.
Les objets retournés à partir du Kit de développement logiciel (SDK) Node.js exposent un sous-objet headers
qui mappe tous les en-têtes retournés par l’API HTTP sous-jacente. Les frais de demande sont disponibles sous la clé x-ms-request-charge
:
const item = await client
.database('database')
.container('container')
.item('itemId', 'partitionKey')
.read();
var requestCharge = item.headers['x-ms-request-charge'];
const storedProcedureResult = await client
.database('database')
.container('container')
.storedProcedure('storedProcedureId')
.execute({
partitionKey: 'partitionKey'
});
requestCharge = storedProcedureResult.headers['x-ms-request-charge'];
const query = client.database('database')
.container('container')
.items
.query('SELECT * FROM c', {
partitionKey: 'partitionKey'
});
while (query.hasMoreResults()) {
var result = await query.executeNext();
requestCharge = result.headers['x-ms-request-charge'];
}
Pour plus d’informations, consultez Démarrage rapide : Générer une application Node.js à l’aide d’un compte Azure Cosmos DB for NoSQL.
L’objet Container
retourné à partir du Kit de développement logiciel (SDK) Python expose un dictionnaire last_response_headers
qui mappe tous les en-têtes retournés par l’API HTTP sous-jacente pour la dernière opération exécutée. Les frais de demande sont disponibles sous la clé x-ms-request-charge
:
new_item = {
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"partition_key": "61dba35b-4f02-45c5-b648-c6badc0cbd79",
"name": "Yamba Surfboard"
}
container.create_item(new_item)
request_charge = container.client_connection.last_response_headers["x-ms-request-charge"]
existing_item = container.read_item(
item="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
partition_key="61dba35b-4f02-45c5-b648-c6badc0cbd79"
)
request_charge = container.client_connection.last_response_headers["x-ms-request-charge"]
Pour plus d’informations, consultez Démarrage rapide : Générer une application Python à l’aide d’un compte Azure Cosmos DB for NoSQL.
Pour en savoir plus sur l’optimisation de votre consommation d’unités de requête, consultez les articles suivants :
Événement
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantFormation
Module
Configure Azure Cosmos DB for NoSQL - Training
Select between the various throughput offerings in Azure Cosmos DB for NoSQL.
Certification
Microsoft Certified: Azure Cosmos DB Developer Specialty - Certifications
Write efficient queries, create indexing policies, manage, and provision resources in the SQL API and SDK with Microsoft Azure Cosmos DB.
Documentation
Optimizing the cost of your requests in Azure Cosmos DB
This article explains how to optimize costs when issuing requests on Azure Cosmos DB.
Request Units as a throughput and performance currency - Azure Cosmos DB
Learn how request units function as a currency in Azure Cosmos DB and how to specify and estimate Request Unit requirements.
Find request unit charge for Azure Cosmos DB for MongoDB operations
Learn how to find the request unit (RU) charge for MongoDB queries executed against an Azure Cosmos DB container. You can use the Azure portal, MongoDB .NET, Java, Node.js drivers.