MongoDB 用 Azure Cosmos DB API で実行された操作の要求ユニット使用量を確認する
適用対象: MongoDB 用 Azure Cosmos DB API
Azure Cosmos DB では、多くの API (SQL、MongoDB、Cassandra、Gremlin、Table など) がサポートされています。 各 API には、固有のデータベース操作のセットがあります。 これらの操作の範囲は、単純なポイント読み取り/書き込みから、複雑なクエリにまで及びます。 各データベース操作は、それらの操作の複雑さに基づいて、システム リソースを消費します。
すべてのデータベース操作のコストは Azure Cosmos DB によって正規化され、要求ユニット (RU) によって表されます。 要求の料金は、すべてのデータベース操作で使用される要求ユニットです。 RU は、Azure Cosmos DB によってサポートされるデータベース操作を実行するために必要な CPU、IOPS、メモリなどのシステム リソースを抽象化する、パフォーマンスの通貨と考えることができます。 Azure Cosmos コンテナーの操作にどの API 使用するかに関係なく、コストは RU によって測定されます。 データベース操作が書き込み、ポイント読み取り、またはクエリのいずれの場合でも、コストは常に RU で測定されます。 詳細については、要求ユニットとその考慮事項に関する記事を参照してください。
この記事では、MongoDB 用 Azure Cosmos DB API でコンテナーに対して実行された任意の操作の要求ユニット (RU) 消費量を確認できる、さまざまな方法を紹介します。 異なる API を使用している場合は、SQL API、Cassandra API、Gremlin API、Table API に関する記事を参照して RU/秒の使用量を確認してください。
RU 使用量は、getLastRequestStatistics
という名前のカスタム データベース コマンドによって公開されます。 最後に実行された操作の名前を含んだドキュメント、その要求の使用量、その実行時間が、このコマンドから返されます。 Azure Cosmos DB API for MongoDB を使用している場合、RU 使用量をいくつかの方法で取得できます。
Azure ポータルの使用
Azure portal にサインインします。
新しい Azure Cosmos アカウントを作成してデータを取り込むか、既にデータが存在する既存のアカウントを選択します。
[データ エクスプローラー] ウィンドウに進み、操作の対象となるコンテナーを選択します。
コンテナー名の横にある [...] を選択し、 [新しいクエリ] を選択します。
有効なクエリを入力し、 [クエリの実行] を選択します。
[Query Stats](クエリの統計) を選択すると、実行した要求の実際の使用量が表示されます。 このクエリ エディターでは、クエリ述語に対してのみ要求ユニットの課金を実行し、表示できます。 このエディターは、挿入ステートメントなどのデータ操作コマンドには使用できません。
データ操作コマンドの要求料金を取得するには、
getLastRequestStatistics
コマンドを Mongo シェル、Robo 3T、MongoDB コンパス、シェル スクリプトを使用した Visual Studio Code 拡張機能などのシェル ベース UI から実行します。db.runCommand({getLastRequestStatistics: 1})
MongoDB ドライバーを使用する
公式の MongoDB .NET ドライバーを使用するとき、RunCommand
メソッドを 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 Cosmos DB の MongoDB 用 API を使用して .NET Web アプリを構築する」を参照してください。
次のステップ
RU 使用量を最適化する方法については、次の記事をご覧ください。
- Azure Cosmos DB における要求ユニットとスループット
- Azure Cosmos DB でのプロビジョニングされたスループット コストを最適化する
- Azure Cosmos DB でのクエリ コストを最適化する
- Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。
- 既存のデータベース クラスター内の仮想コアとサーバーの数のみがわかっている場合は、仮想コアまたは vCPU を使用した要求ユニットの見積もりに関するページを参照してください
- 現在のデータベース ワークロードに対する通常の要求レートがわかっている場合は、Azure Cosmos DB Capacity Planner を使用した要求ユニットの見積もりに関するページを参照してください