查找 Azure Cosmos DB for MongoDB 中执行的操作的请求单位费用

适用对象: Mongodb

重要

你是否正在寻找一种数据库解决方案,以应对需要高扩展性、99.999% 可用性服务级别协议(SLA)、即时自动扩展和跨多个区域的自动故障转移的场景? 请考虑使用 Azure Cosmos DB for NoSQL。

Azure Cosmos DB 支持许多 API,例如 SQL、MongoDB、Cassandra、Gremlin 和 Table。 每个 API 具有自身的数据库操作集。 这些操作包括简单的点读取和写入,以及复杂的查询等等。 每个数据库操作根据其复杂性消耗系统资源。

所有数据库操作的成本将由 Azure Cosmos DB 规范化,并以“请求单位”(简称 RU)表示。 请求费用是所有数据库操作使用的请求单位。 你可以将 RU 视为性能货币,它抽象化了执行 Azure Cosmos DB 支持的数据库操作所需的系统资源,例如 CPU、IOPS 和内存。 不管使用哪个 API 与 Azure Cosmos DB 容器交互,成本始终以请求单位 (RU) 来计量。 无论数据库操作是写入、点读取还是查询,都始终以 RU 来计量成本。 若要了解详细信息,请参阅请求单位和注意事项一文。

本文介绍如何通过不同的方式,来查找针对 Azure Cosmos DB for MongoDB 中的容器执行的任何操作所消耗的请求单位 (RU)。 如果使用的是不同的 API,请参阅 API for NoSQL、API for Cassandra、API for Gremlin 和 API for Table 这几篇文章,查看 RU/秒费用。

RU 费用通过一个名为getLastRequestStatistics的自定义数据库命令公开。 该命令返回一个文档,其中包含上次执行的操作的名称、其请求费用和持续时间。 如果使用 Azure Cosmos DB for MongoDB,则可以通过多个选项来检索 RU 费用。

使用 Azure 门户

  1. 登录到 Azure 门户。

  2. 创建新的 Azure Cosmos DB 帐户并在其中植入数据,或选择一个已包含数据的现有帐户。

  3. 转到 “数据资源管理器” 窗格,然后选择要使用的容器。

  4. 选择容器名称旁边的“...”,然后选择“新建查询” 。

  5. 输入有效的查询,然后选择“ 执行查询”。

  6. 选择 “查询统计信息 ”以显示所执行请求的实际请求费用。 此查询编辑器允许您仅针对查询谓词运行查询并查看请求单位费用。 不能将此编辑器用于数据操作命令(例如 insert 语句)。

    Azure 门户中的 MongoDB 查询请求费用屏幕截图

  7. 若要获取数据操作命令的请求费用,请在基于 shell 的 UI(如 Mongo shell、getLastRequestStatistics、MongoDB Compass 或支持 shell 脚本的 VS Code 扩展)中运行 命令。

    db.runCommand({getLastRequestStatistics: 1})

通过编程

使用 Mongo shell 时,可以使用 runCommand() 执行命令。

db.runCommand('getLastRequestStatistics')

后续步骤

若要了解如何优化 RU 消耗量,请参阅以下文章: