Encontre a taxa unitária de pedido para operações executadas na Azure Cosmos DB SQL APIFind the request unit charge for operations executed in Azure Cosmos DB SQL API

APLICA-SE A: SQL API

Azure Cosmos DB suporta muitas APIs, tais como SQL, MongoDB, Cassandra, Gremlin e Table.Azure Cosmos DB supports many APIs, such as SQL, MongoDB, Cassandra, Gremlin, and Table. Cada API tem o seu próprio conjunto de operações de base de dados.Each API has its own set of database operations. Estas operações vão desde leituras simples de pontos e escritas a consultas complexas.These operations range from simple point reads and writes to complex queries. Cada operação de base de dados consome recursos do sistema com base na complexidade da operação.Each database operation consumes system resources based on the complexity of the operation.

O custo de todas as operações de bases de dados é regulado pelo Azure Cosmos DB e é expresso por Unidades de Pedido (ou RUs, abreviatura em inglês).The cost of all database operations is normalized by Azure Cosmos DB and is expressed by Request Units (or RUs, for short). A taxa de pedido é a unidade de pedido consumida por todas as suas operações de base de dados.Request charge is the request units consumed by all your database operations. Pode pensar em RUs como uma moeda de desempenho que abstrai os recursos do sistema, tais como CPU, IOPS e memória que são necessárias para executar as operações de base de dados suportadas pela Azure Cosmos DB.You can think of RUs as a performance currency abstracting the system resources such as CPU, IOPS, and memory that are required to perform the database operations supported by Azure Cosmos DB. Não interessa que API utiliza para interagir com o contentor do Azure Cosmos: os custos são sempre medidos por RUs.No matter which API you use to interact with your Azure Cosmos container, costs are always measured by RUs. Quer a operação da base de dados seja uma escrita, leitura de ponto ou consulta, os custos são sempre medidos em RUs.Whether the database operation is a write, point read, or query, costs are always measured in RUs. Para saber mais, consulte as unidades de pedido e o artigo de consideração.To learn more, see the request units and its considerations article.

Este artigo apresenta as diferentes formas de encontrar o consumo da unidade de pedido (RU) para qualquer operação executada contra um contentor em Azure Cosmos DB SQL API.This article presents the different ways you can find the request unit (RU) consumption for any operation executed against a container in Azure Cosmos DB SQL API. Se estiver a utilizar uma API diferente, consulte a API para MongoDB, Cassandra API, Gremlin APIe artigos da Table API para encontrar a taxa RU/s.If you are using a different API, see API for MongoDB, Cassandra API, Gremlin API, and Table API articles to find the RU/s charge.

Atualmente, só pode medir este consumo utilizando o portal Azure ou inspecionando a resposta enviada de Azure Cosmos DB através de um dos SDKs.Currently, you can measure this consumption only by using the Azure portal or by inspecting the response sent back from Azure Cosmos DB through one of the SDKs. Se estiver a utilizar a API SQL, tem múltiplas opções para encontrar o consumo de RU para uma operação contra um recipiente Azure Cosmos.If you're using the SQL API, you have multiple options for finding the RU consumption for an operation against an Azure Cosmos container.

Utilizar o portal do AzureUse the Azure portal

  1. Inicie sessão no portal do Azure.Sign in to the Azure portal.

  2. Crie uma nova conta Azure Cosmos e alimente-a com dados, ou selecione uma conta Azure Cosmos existente que já contenha dados.Create a new Azure Cosmos account and feed it with data, or select an existing Azure Cosmos account that already contains data.

  3. Vá ao painel do Data Explorer e, em seguida, selecione o recipiente em que pretende trabalhar.Go to the Data Explorer pane, and then select the container you want to work on.

  4. Selecione Nova Consulta SQL.Select New SQL Query.

  5. Introduza uma consulta válida e, em seguida, selecione Executar Consulta.Enter a valid query, and then select Execute Query.

  6. Selecione Estatísticas de Consulta para mostrar o custo de pedido real para o pedido que executou.Select Query Stats to display the actual request charge for the request you executed.

Screenshot de uma taxa de pedido de consulta SQL no portal Azure

Utilizar o .NET SDKUse the .NET SDK

Os objetos que são devolvidos do .NET SDK v2 expõem uma RequestCharge propriedade:Objects that are returned from the .NET SDK v2 expose a RequestCharge property:

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;
}

Use o Java SDKUse the Java SDK

Os objetos que são devolvidos do SDK Java expõem um getRequestCharge() método:Objects that are returned from the Java SDK expose a getRequestCharge() method:

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();
});

Para obter mais informações, consulte Quickstart: Construa uma aplicação Java utilizando uma conta Azure Cosmos DB SQL API.For more information, see Quickstart: Build a Java application by using an Azure Cosmos DB SQL API account.

Use o Node.js SDKUse the Node.js SDK

Os objetos que são devolvidos do Node.js SDK expõem um headers subobjecto que mapeia todos os cabeçalhos devolvidos pela API HTTP subjacente.Objects that are returned from the Node.js SDK expose a headers subobject that maps all the headers returned by the underlying HTTP API. A taxa de pedido está disponível na x-ms-request-charge chave:The request charge is available under the x-ms-request-charge key:

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'];
}

Para obter mais informações, consulte Quickstart: Construa uma aplicação Node.js utilizando uma conta Azure Cosmos DB SQL API.For more information, see Quickstart: Build a Node.js app by using an Azure Cosmos DB SQL API account.

Utilizar o SDK PythonUse the Python SDK

O CosmosClient objeto do Python SDK expõe um last_response_headers dicionário que mapeia todos os cabeçalhos devolvidos pela API HTTP subjacente para a última operação executada.The CosmosClient object from the Python SDK exposes a last_response_headers dictionary that maps all the headers returned by the underlying HTTP API for the last operation executed. A taxa de pedido está disponível na x-ms-request-charge chave:The request charge is available under the x-ms-request-charge key:

response = client.ReadItem(
    'dbs/database/colls/container/docs/itemId', {'partitionKey': 'partitionKey'})
request_charge = client.last_response_headers['x-ms-request-charge']

response = client.ExecuteStoredProcedure(
    'dbs/database/colls/container/sprocs/storedProcedureId', None, {'partitionKey': 'partitionKey'})
request_charge = client.last_response_headers['x-ms-request-charge']

Para obter mais informações, consulte Quickstart: Construa uma aplicação Python utilizando uma conta AZure Cosmos DB SQL API.For more information, see Quickstart: Build a Python app by using an Azure Cosmos DB SQL API account.

Passos seguintesNext steps

Para aprender a otimizar o seu consumo de RU, consulte estes artigos:To learn about optimizing your RU consumption, see these articles: