スループット要件を評価する
要求ユニットはレートベースの通貨です。 Azure Cosmos DB で要求を実行するときに、メモリ、CPU、IO などの物理リソースについて簡単に話すために使われます。 たとえば、抽象化された物理的なリソースを気にすることなく、相対的な意味で 10 要求ユニットは 5 要求ユニットの約 2 倍と考える方が簡単です。 要求ユニットは、フォアグラウンドとバックグラウンドの両方のアクティビティを測定するために使われます。
すべての要求には、次の例のように、固定数の要求ユニットが消費されます。
- 読み取り
- 書き込み (インデックス作成操作を含む)
- クエリ
スループットの構成
Azure Cosmos DB でデータベースまたはコンテナーを作成するときに、要求ユニットを 1 秒あたりの要求ユニット数 (略して RU/s) ずつプロビジョニングすることができます。 "標準のプロビジョニング スループット" の場合、プロビジョニングできる最小量は 400 RU/秒です。 "自動スケーリングのプロビジョニング スループット" の場合、最小は 1000 RU/秒で、100 RU/秒にスケールダウンされます。
アドホックな RU/秒の消費量の推定
RU/s の一部はさまざまなアクセス方法で正規化されるので、多くの一般的な操作を予測できます。 この知識を利用すると、単純なワークロードに対していくつかの基本的な見積もりを出すことができます。 たとえば、一般的なデータベース操作に必要な RU/秒を見積もることができます。1 KB ドキュメントの読み取り操作では 1 RU、インデックス作成が無効になっている 1 KB ドキュメントの書き込み操作では 6 RU などとなります。

この戦略を使うと、ソリューションのクエリとアクセス パターンを特定し、Azure Cosmos DB で必要になる要求ユニット数を適切に推測できるはずです。 そのためには、次のような情報が必要です。
- 上位 5 つのクエリ
- 1 秒あたりの読み取り操作の数
- 1 秒あたりの書き込み操作の数
ヒント
クエリの RU/s の測定は、大規模に行う必要があります。 1 つの物理パーティションで実行されているクエリを測定しても、現実のシナリオで使われる実際のスループットに関する重要なデータは得られません。
スプレッドシート アプリケーションを使い、必要な要求ユニット容量の概算を把握する簡単な表を作成できます。 簡単な例を次に示します。
| 操作の種類 | 1 秒あたりの要求回数 | 要求あたりの RU 数 | 必要な RU/秒 |
|---|---|---|---|
| 1 つのドキュメントを書き込む | 1万 | 10 | 100,000 |
| 上位のクエリ #1 | 700 | 100 | 70,000 |
| 上位のクエリ #2 | 200 | 100 | 20,000 |
| 上位のクエリ #3 | 100 | 100 | 1万 |
| 合計 RU/s | 200,000 RU/秒 |
ヒント
また、概念実証アプリケーションを実行し、SDK の request charge プロパティを使い、Azure Cosmos DB に対して行う予定の操作を実行した場合の実際の RU 料金を測定することもできます。