Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A: NoSQL
O Azure Cosmos DB dá suporte a muitas APIs, como SQL, MongoDB, Cassandra, Gremlin e Table. Cada API tem seu próprio conjunto de operações de banco de dados. Essas operações variam de simples leituras e gravações pontuais a consultas complexas. Cada operação de banco de dados consome recursos do sistema com base na complexidade da operação.
O custo de todas as operações de banco de dados é normalizado pelo Azure Cosmos DB e é expresso por unidades de solicitação (RU). A taxa de solicitação é a unidade de solicitação consumida por todas as operações do banco de dados. Você pode pensar em RUs como uma moeda de desempenho abstraindo os recursos do sistema, como CPU, IOPS e memória, necessários para executar as operações de banco de dados com suporte do Azure Cosmos DB. Não importa qual API você use para interagir com seu contêiner, os custos são sempre medidos em RUs. Independentemente de a operação na base de dados ser uma escrita, uma leitura pontual ou uma consulta, os custos são sempre medidos em RUs. Para saber mais, consulte Unidades de solicitação no Azure Cosmos DB.
Este artigo apresenta as diferentes maneiras de encontrar o consumo de unidade de solicitação para qualquer operação executada em um contêiner no Azure Cosmos DB para NoSQL. Se você estiver usando uma API diferente, consulte API para MongoDB, API para Cassandra, API para Gremlin e API para Tabela.
Atualmente, você pode medir o consumo somente usando o portal do Azure ou inspecionando a resposta enviada do Azure Cosmos DB por meio de um dos SDKs. Se você estiver usando a API para NoSQL, terá várias opções para encontrar a taxa de solicitação para uma operação.
Utilizar o portal do Azure
Inicie sessão no portal do Azure.
Crie uma nova conta do Azure Cosmos DB e alimente-a com dados ou selecione uma conta existente do Azure Cosmos DB que já contenha dados.
Vá para o painel Data Explorer e selecione o contêiner no qual deseja trabalhar.
Selecione Nova Consulta SQL.
Insira uma consulta válida e selecione Executar consulta.
Selecione Estatísticas de consulta para exibir a cobrança de solicitação real para a solicitação executada.
Utilizar o .NET SDK
Os objetos retornados do SDK do .NET v2 expõem uma RequestCharge propriedade:
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;
}
Usar o Java SDK
Os objetos retornados do Java SDK expõem um getRequestCharge() método:
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 Guia de início rápido: criar um aplicativo Java usando uma conta do Azure Cosmos DB para NoSQL.
Usar o SDK do Node.js
Os objetos retornados do SDK do Node.js expõem um headers subobjeto que mapeia todos os cabeçalhos retornados pela API HTTP subjacente. A taxa de solicitação está disponível sob a x-ms-request-charge chave:
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 Guia de início rápido: criar um aplicativo Node.js usando uma conta do Azure Cosmos DB para NoSQL.
Utilizar o SDK Python
O Container objeto do Python SDKpela API HTTP subjacente para a última operação executada. A taxa de solicitação está disponível sob a x-ms-request-charge chave:
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"]
Para obter mais informações, consulte Guia de início rápido: criar um aplicativo Python usando uma conta do Azure Cosmos DB para NoSQL.
Usar o SDK Go
Resposta é o tipo de resposta base para todas as respostas do Azure Cosmos DB. Ele expõe uma RequestCharge propriedade que contém a taxa de pedido para a respetiva operação, como leituras, gravações e consultas.
Operação de leitura
container, _ := c.NewContainer("moviesdb", "movies")
resp, _ := container.ReadItem(context.Background(), azcosmos.NewPartitionKeyString("Quentin Tarantino"), "Pulp Fiction", nil)
log.Println("read request charge", resp.RequestCharge)
Operação de consulta:
container, _ := c.NewContainer("moviesdb", "movies")
pager := container.NewQueryItemsPager("select * from c", azcosmos.NewPartitionKey(), nil)
if pager.More() {
page, _ := pager.NextPage(context.Background())
// use the result
log.Println("query request charge", page.RequestCharge)
}
Próximos passos
Para saber mais sobre como otimizar seu consumo de RU, consulte estes artigos:
- Unidades de Pedido no Azure Cosmos DB
- Otimizar o custo do débito aprovisionado no Azure Cosmos DB
- Otimizar o custo das consultas no Azure Cosmos DB
- Dimensione a capacidade de transferência provisionada à escala global
- Introdução à taxa de transferência provisionada no Azure Cosmos DB
- Taxa de transferência de provisionamento para um contêiner
- Monitorizar e depurar com informações no Azure Cosmos DB