尋找在 Azure 中執行之作業的要求單位費用Cosmos MONgoDB DB API

適用于 :Azure Cosmos適用于 MongoDB 的 DB API

Azure Cosmos DB 支援許多 API,例如 SQL、MongoDB、Cassandra、Gremlin 和 Table。 每個 API 都有一組自己的資料庫作業。 這些作業範圍從簡單的點讀取和寫入到複雜的查詢。 每個資料庫作業會根據作業的複雜性來耗用系統資源。

所有資料庫作業的成本會由 Azure Cosmos DB 正規化, (要求單位或 RUs 表示,) 。 要求費用是您所有資料庫作業所耗用的要求單位。 您可以將 RUs 視為一種將系統資源 ,例如 CPU、IOPS 和記憶體等系統資源抽象化,以執行 Azure Cosmos DB 支援的資料庫作業。 無論您使用哪個 API 與 Azure Cosmos互動,成本一定都是以 RUs 來測量。 無論資料庫作業是寫入、點讀取或查詢,成本一直以 RUs 為單位。 若要深入瞭解,請參閱要求 單位及其考慮 一文。

本文介紹針對 Cosmos Azure ( DB API for MongoDB) 容器執行的任何作業,尋找要求單位 (RU) 耗用的不同方式。 如果您使用的是其他 API,請參閱 SQL API、CassandraAPI、Gremlin APITable API文章,以尋找 RU/s 費用。

RU 費用會由名為 的自訂 資料庫命令 公開 。 該命令會返回檔,其中包含上次執行作業的名稱、其要求費用及其持續時間。 如果您使用 Azure 或 DB API Cosmos MongoDB,您有多個選項可以取回 RU 費用。

使用 Azure 入口網站

  1. 請登錄 Azure 入口網站

  2. 建立新的 Azure Cosmos帳戶,然後以資料進行饋送,或選取已包含資料的現有帳戶。

  3. 請前往資料 管理器 窗格,然後選取您想要處理的容器。

  4. 選取容器名稱旁的 ..., 然後選取新 查詢

  5. 輸入有效的查詢,然後選取執行 查詢

  6. 選取 查詢統計資料 以顯示您執行之要求的實際要求費用。 此查詢編輯器可讓您僅針對查詢謂詞執行及查看要求單位費用。 您無法使用此編輯器執行資料操作命令,例如插入語句。

    Azure 入口網站中 MongoDB 查詢要求費用的螢幕擷取畫面

  7. 若要取得資料操作命令的要求費用,請從 Shell 型 UI 執行命令,例如 getLastRequestStatistics Mongo getLastRequestStatisticsCompass,或具有 shell 腳本的 VS Code 副檔名。

    db.runCommand({getLastRequestStatistics: 1})

使用 MongoDB .NET 驅動程式

當您使用官方 的 MongoDB .NET 驅動程式時,您可以撥打物件上的方法來執行 IMongoDatabase 命令。 此方法需要抽象類別 Command<> 的實現:

class GetLastRequestStatisticsCommand : Command<Dictionary<string, object>>
{
    public override RenderedCommand<Dictionary<string, object>> Render(IBsonSerializerRegistry serializerRegistry)
    {
        return new RenderedCommand<Dictionary<string, object>>(new BsonDocument("getLastRequestStatistics", 1), serializerRegistry.GetSerializer<Dictionary<string, object>>());
    }
}

Dictionary<string, object> stats = database.RunCommand(new GetLastRequestStatisticsCommand());
double requestCharge = (double)stats["RequestCharge"];

詳細資訊,請參閱快速入門:使用 Azure 和 DB API for MongoDB Cosmos建立 .NET Web App。

使用 MongoDB JAVA 驅動程式

當您使用官方 的 MongoDB JAVA 驅動程式時,您可以撥打物件上的方法來執行 MongoDatabase 命令:

Document stats = database.runCommand(new Document("getLastRequestStatistics", 1));
Double requestCharge = stats.getDouble("RequestCharge");

詳細資訊,請參閱快速入門:使用 Azure 和 DB API Cosmos MongoDB和 JAVA SDK 來建立 Web App。

使用 MongoDB Node.js驅動程式

當您使用官方 MongoDB Node.js驅動程式時,您可以撥打物件上的方法來執行 db 命令:

db.command({ getLastRequestStatistics: 1 }, function(err, result) {
    assert.equal(err, null);
    const requestCharge = result['RequestCharge'];
});

詳細資訊,請參閱快速入門:將現有的 MongoDBNode.js Web 應用程式遷移到 Azure Cosmos DB 。

下一個步驟

若要瞭解如何優化 RU 消費,請參閱以下文章: