Vyhledání poplatku za jednotku požadavku pro operace prováděné v rozhraní API služby Azure Cosmos DB pro MongoDB

PLATÍ PRO: Rozhraní API služby Azure Cosmos DB pro MongoDB

Azure Cosmos DB podporuje mnoho rozhraní API, jako jsou SQL, MongoDB, Cassandra, Gremlin a Table. Každé rozhraní API má vlastní sadu databázových operací. Tyto operace se od jednoduchých bodů čtou a zapisují do složitých dotazů. Každá databázová operace využívá systémové prostředky na základě složitosti operace.

Azure Cosmos DB normalizuje náklady na všechny databázové operace a vyjadřuje je v jednotkách žádostí (zkráceně RU). Poplatky za žádost jsou jednotky žádostí spotřebované všemi databázovými operacemi. Ru si můžete představit jako měnu výkonu, která abstrahuje systémové prostředky, jako jsou procesor, IOPS a paměť potřebné k provádění databázových operací podporovaných službou Azure Cosmos DB. Bez ohledu na to, jaké rozhraní API používáte k interakci s kontejnerem Azure Cosmos, se náklady vždy měří v jednotkách RU. Bez ohledu na to, jestli je databázová operace zápisem, čtením bodu nebo dotazem, se náklady vždy měří v RU. Další informace najdete v jednotkách žádostí a v článku o aspektech.

Tento článek představuje různé způsoby, jak najít spotřebu jednotek žádostí (RU) pro jakoukoli operaci prováděnou v kontejneru v rozhraní API služby Azure Cosmos DB pro MongoDB. Pokud používáte jiné rozhraní API, přečtěte si články SQL API, rozhraní API Cassandra, Rozhraní Gremlin API a rozhraní API pro tabulky a vyhledejte poplatky za RU/s.

Poplatek za RU je vystavený příkazem vlastní databáze s názvem getLastRequestStatistics. Příkaz vrátí dokument, který obsahuje název poslední provedené operace, poplatek za požadavek a dobu trvání. Pokud používáte rozhraní API služby Azure Cosmos DB pro MongoDB, máte několik možností pro načtení poplatku za RU.

Použití webu Azure Portal

  1. Přihlaste se k webu Azure Portal.

  2. Vytvořte nový účet Azure Cosmos a nasílte ho daty nebo vyberte existující účet, který už obsahuje data.

  3. Přejděte do podokna Data Explorer a vyberte kontejner, na který chcete pracovat.

  4. Vyberte ... vedle názvu kontejneru a vyberte Nový dotaz.

  5. Zadejte platný dotaz a pak vyberte Spustit dotaz.

  6. Vyberte Statistiky dotazů a zobrazte skutečné poplatky za požadavek, který jste provedli. Tento editor dotazů umožňuje spouštět a zobrazovat poplatky za jednotky žádostí pouze pro predikáty dotazů. Tento editor nemůžete použít pro příkazy pro manipulaci s daty, jako jsou příkazy insert.

    Screenshot of a MongoDB query request charge in the Azure portal

  7. Pokud chcete získat poplatky za příkazy pro manipulaci s daty, spusťte getLastRequestStatistics příkaz z uživatelského rozhraní založeného na prostředí, jako je Mongo Shell, Robo 3T, MongoDB Compass nebo rozšíření VS Code se skriptováním prostředí.

    db.runCommand({getLastRequestStatistics: 1})

Použití ovladače MongoDB .NET

Když použijete oficiální ovladač MongoDB .NET, můžete spustit příkazy voláním RunCommand metody na objektu IMongoDatabase . Tato metoda vyžaduje implementaci Command<> abstraktní třídy:

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"];

Další informace najdete v tématu Rychlý start: Vytvoření webové aplikace .NET pomocí rozhraní API služby Azure Cosmos DB pro MongoDB.

Použití ovladače MongoDB Java

Když použijete oficiální ovladač MongoDB Java, můžete spustit příkazy voláním runCommand metody na MongoDatabase objektu:

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

Další informace najdete v tématu Rychlý start: Vytvoření webové aplikace pomocí rozhraní API služby Azure Cosmos DB pro MongoDB a sady Java SDK.

Použití ovladače Node.js MongoDB

Když použijete oficiální ovladač MongoDB Node.js, můžete spustit příkazy voláním commanddb metody na objektu:

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

Další informace najdete v tématu Rychlý start: Migrace existující webové aplikace MongoDB Node.js do Azure Cosmos DB.

Další kroky

Informace o optimalizaci spotřeby RU najdete v těchto článcích: