Azure Cosmos DB の制限Limits in Azure Cosmos DB

この記事では、Azure Cosmos DB サービスの制限の概要について説明します。This article provides an overview of the limits in the Azure Cosmos DB service.

ストレージとスループットStorage and throughput

サブスクリプションで Azure Cosmos アカウントを作成したら、データベース、コンテナー、および項目を作成することによってアカウント内のデータを管理できます。After you create an Azure Cosmos account under your subscription, you can manage data in your account by creating databases, containers, and items. スループットは、要求ユニット (RU/秒 または RU) の単位で、コンテナー レベルまたはデータベース レベルでプロビジョニングできます。You can provision throughput at a container-level or a database-level in terms of request units (RU/s or RUs). 次の表は、コンテナー/データベースあたりのストレージとスループットの制限の一覧を示しています。The following table lists the limits for storage and throughput per container/database.

ResourceResource 既定の制限Default limit
コンテナーあたりの最大 RU (専用スループット プロビジョニング モード)Maximum RUs per container (dedicated throughput provisioned mode) 既定では 1,000,000。1,000,000 by default. これは、Azure サポート チケットを提出するか、または Ask Cosmos DB 経由で Microsoft に連絡することによって増やすことができますYou can increase it by filing an Azure support ticket or contacting us via Ask Cosmos DB
データベースあたりの最大 RU (共有スループット プロビジョニング モード)Maximum RUs per database (shared throughput provisioned mode) 既定では 1,000,000。1,000,000 by default. これは、Azure サポート チケットを提出するか、または Ask Cosmos DB 経由で Microsoft に連絡することによって増やすことができますYou can increase it by filing an Azure support ticket or contacting us via Ask Cosmos DB
(論理) パーティション キーあたりの最大 RUMaximum RUs per (logical) partition key 10,00010,000
(論理) パーティション キーあたりのすべての項目にまたがる最大ストレージMaximum storage across all items per (logical) partition key 10 GB10 GB
個別の (論理) パーティション キーの最大数Maximum number of distinct (logical) partition keys 無制限Unlimited
コンテナーあたりの最大ストレージMaximum storage per container 無制限Unlimited
データベースあたりの最大ストレージMaximum storage per database 無制限Unlimited

注意

ストレージまたはスループットのより高い制限が必要なパーティション キーを含むワークロードを管理するためのベスト プラクティスについては、ホット パーティション キーの設計に関するページを参照してください。For best practices to manage workloads that have partition keys that need higher limits for storage or throughput, see Designing for Hot Partition Keys

Cosmos コンテナー (または共有スループット データベース) には、400 RU の最小スループットが必要です。A Cosmos container (or shared throughput database) must have a minimum throughput of 400 RUs. コンテナーが大きくなるにつれ、サポートされる最小スループットは次の要因にも依存するようになります。As the container grows, the minimum supported throughput also depends on the following factors:

  • これまでにコンテナーにプロビジョニングされた最大スループット。The maximum throughput ever provisioned on the container. このサービスでは、コンテナーのスループットをプロビジョニングされた最大値の 10% まで下げることがサポートされます。The service supports lowering throughput of a container to 10% of the provisioned maximum. たとえば、スループットが 10000 RU まで増やされた場合、可能性のある最も低いプロビジョニング スループットは 1000 RU になります。For example, if your throughput was increased to 10000 RUs, then the lowest possible provisioned throughput would be 1000 RUs
  • これまでに共有スループット データベース内に作成したコンテナーの総数 (コンテナーあたり 100 RU で測定されます)。The total number of containers that you have ever created in a shared throughput database, measured at 100 RUs per container. たとえば、共有スループット データベース内に 5 つのコンテナーを作成した場合、スループットは少なくとも 500 RU である必要があります。For example, if you have created five containers within a shared throughput database, then the throughput must be at least 500 RUs

コンテナーまたはデータベースの現在のスループットと最小スループットは、Azure portal または SDK から取得できます。The current and minimum throughput of a container or a database can be retrieved from the Azure portal or the SDKs. 詳細については、「コンテナーとデータベースのスループットのプロビジョニング」を参照してください。For more information, see Provision throughput on containers and databases. 要約すると、最小プロビジョニング済み RU の制限を次に示します。In summary, here are the minimum provisioned RU limits.

ResourceResource 既定の制限Default limit
コンテナーあたりの最小 RU (専用スループット プロビジョニング モード)Minimum RUs per container (dedicated throughput provisioned mode) 400400
データベースあたりの最小 RU (共有スループット プロビジョニング モード)Minimum RUs per database (shared throughput provisioned mode) 400400
共有スループット データベース内のコンテナーあたりの最小 RUMinimum RUs per container within a shared throughput database 100100

Cosmos DB は、SDK またはポータルを経由した、コンテナーまたはデータベースあたりのスループット (RU) のエラスティック スケーリングをサポートしています。Cosmos DB supports elastic scaling of throughput (RUs) per container or database via the SDKs or portal. 各コンテナーは、10 ~ 100 倍 (最小値~最大値) のスケール範囲内で同期的に、かつ直ちにスケーリングできます。Each container can scale synchronously and immediately within a scale range of 10 to 100 times, between minimum and maximum values. 要求されたスループット値がこの範囲外である場合、スケーリングは非同期的に実行されます。If the requested throughput value is outside the range, scaling is performed asynchronously. 非同期のスケーリングは、要求されたスループットやコンテナー内のデータ ストレージ サイズに応じて、完了するまでに数分~数時間かかることがあります。Asynchronous scaling may take minutes to hours to complete depending on the requested throughput and data storage size in the container.

コントロール プレーン操作Control plane operations

Azure portal、Azure PowerShell、Azure CLI、および Azure Resource Manager テンプレートを使用して、Azure Cosmos アカウントをプロビジョニングおよび管理できます。You can provision and manage your Azure Cosmos account using the Azure portal, Azure PowerShell, Azure CLI, and Azure Resource Manager templates. 次の表は、サブスクリプション、アカウント、および操作の数あたりの制限の一覧を示しています。The following table lists the limits per subscription, account, and number of operations.

ResourceResource 既定の制限Default limit
サブスクリプションあたりの最大データベース アカウントMaximum database accounts per subscription 既定では 50。50 by default. これは、Azure サポート チケットを提出するか、または Ask Cosmos DB 経由で Microsoft に連絡することによって増やすことができますYou can increase it by filing an Azure support ticket or contacting us via Ask Cosmos DB
リージョン内フェールオーバーの最大数Maximum number of regional failovers 既定では 1 回/時間。1/hour by default. これは、Azure サポート チケットを提出するか、または Ask Cosmos DB 経由で Microsoft に連絡することによって増やすことができますYou can increase it by filing an Azure support ticket or contacting us via Ask Cosmos DB

注意

リージョン内フェールオーバーは、単一リージョン書き込みのアカウントにのみ適用されます。Regional failovers only apply to single region writes accounts. 複数リージョン書き込みのアカウントには、書き込みリージョンの変更に関する制限は必要ないか、または存在しません。Multi-region write accounts do not require or have any limits on changing the write region.

Cosmos DB は、データのバックアップを一定の間隔で自動的に取得します。Cosmos DB automatically takes backups of your data at regular intervals. バックアップ保有期間の間隔とウィンドウの詳細については、「Azure Cosmos DB でのオンライン バックアップとオンデマンドのデータ復元」を参照してください。For details on backup retention intervals and windows, see Online backup and on-demand data restore in Azure Cosmos DB.

コンテナーあたりの制限Per-container limits

どの API を使用するかに応じて、Azure Cosmos コンテナーは、コレクション、テーブル、グラフのいずれかを表すことができます。Depending on which API you use, an Azure Cosmos container can represent either a collection, a table, or graph. コンテナーは、一意キー制約ストアド プロシージャ、トリガー、UDF、およびインデックス作成ポリシーの構成をサポートしています。Containers support configurations for unique key constraints, stored procedures, triggers, and UDFs, and indexing policy. 次の表は、コンテナー内の構成に固有の制限の一覧を示しています。The following table lists the limits specific to configurations within a container.

ResourceResource 既定の制限Default limit
データベースまたはコンテナー名の最大長Maximum length of database or container name 255255
コンテナーあたりの最大ストアド プロシージャMaximum stored procedures per container 100 *100 *
コンテナーあたりの最大 UDFMaximum UDFs per container 25 *25 *
インデックス作成ポリシー内のパスの最大数Maximum number of paths in indexing policy 100 *100 *
コンテナーあたりの一意キーの最大数Maximum number of unique keys per container 10 *10 *
一意キー制約あたりのパスの最大数Maximum number of paths per unique key constraint 16 *16 *

* これらのコンテナーあたりの制限はいずれも、Azure Support に連絡するか、または Ask Cosmos DB 経由で Microsoft に連絡することによって増やすことができます。* You can increase any of these per-container limits by contacting Azure Support or contacting us via Ask Cosmos DB.

項目あたりの制限Per-item limits

どの API を使用するかに応じて、Azure Cosmos 項目は、コレクション内のドキュメント、テーブル内の行、グラフ内のノードまたはエッジのいずれかを表すことができます。Depending on which API you use, an Azure Cosmos item can represent either a document in a collection, a row in a table, or a node or edge in a graph. 次の表は、Cosmos DB での項目あたりの制限を示しています。The following table shows the limits per item in Cosmos DB.

ResourceResource 既定の制限Default limit
項目の最大サイズMaximum size of an item 2 MB (JSON 表現の UTF-8 の長さ)2 MB (UTF-8 length of JSON representation)
パーティション キー値の最大長Maximum length of partition key value 2048 バイト2048 bytes
ID 値の最大長Maximum length of id value 1024 バイト1024 bytes
項目あたりのプロパティの最大数Maximum number of properties per item 実質的に無制限No practical limit
最大の入れ子の深さMaximum nesting depth 実質的に無制限No practical limit
プロパティ名の最大長Maximum length of property name 実質的に無制限No practical limit
プロパティ値の最大長Maximum length of property value 実質的に無制限No practical limit
文字列のプロパティ値の最大長Maximum length of string property value 実質的に無制限No practical limit
数値のプロパティ値の最大長Maximum length of numeric property value IEEE754 倍精度 64 ビットIEEE754 double-precision 64-bit

パーティション キー値と ID 値に関する長さの制限および 2 MB の全体的なサイズ制限を除き、プロパティの数や入れ子の深さなどの項目ペイロードに制限はありません。There are no restrictions on the item payloads like number of properties and nesting depth, except for the length restrictions on partition key and id values, and the overall size restriction of 2 MB. RU の消費を削減するために、大きな、または複雑な項目構造を持つコンテナーのインデックス作成ポリシーを構成することが必要になる場合があります。You may have to configure indexing policy for containers with large or complex item structures to reduce RU consumption. 実際の例や大きな項目を管理するためのパターンについては、Cosmos DB での項目のモデル化に関するページを参照してください。See Modeling items in Cosmos DB for a real-world example, and patterns to manage large items.

要求あたりの制限Per-request limits

Cosmos DB は、コンテナー、項目、データベースなどのリソースに対して CRUD とクエリ操作をサポートしています。Cosmos DB supports CRUD and query operations against resources like containers, items, and databases.

ResourceResource 既定の制限Default limit
1 つの操作 (ストアド プロシージャの実行や 1 回のクエリ ページ取得など) の最大実行時間Maximum execution time for a single operation (like a stored procedure execution or a single query page retrieval) 5 秒5 sec
最大要求サイズ (ストアド プロシージャ、CRUD)Maximum request size (stored procedure, CRUD) 2 MB2 MB
最大応答サイズ (ページ分割されたクエリなど)Maximum response size (for example, paginated query) 4 MB4 MB

クエリなどの操作が実行タイムアウトまたは応答サイズの制限に達すると、その操作は、実行を再開するために結果のページと継続トークンをクライアントに返します。Once an operation like query reaches the execution timeout or response size limit, it returns a page of results and a continuation token to the client to resume execution. 1 つのクエリをページや継続にまたがって実行できる期間に実質的に制限はありません。There is no practical limit on the duration a single query can run across pages/continuations.

Cosmos DB は HMAC を承認のために使用します。Cosmos DB uses HMAC for authorization. コンテナー、パーティション キー、項目などのリソースへのきめ細かなアクセス制御のために、マスター キーまたはリソース トークンのどちらかを使用できます。You can use either a master key, or a resource tokens for fine-grained access control to resources like containers, partition keys, or items. 次の表は、Cosmos DB での承認トークンの制限の一覧を示しています。The following table lists limits for authorization tokens in Cosmos DB.

ResourceResource 既定の制限Default limit
マスター トークンの最大有効期限Maximum master token expiry time 15 分15 min
リソース トークンの最小有効期限Minimum resource token expiry time 10 分10 min
リソース トークンの最大有効期限Maximum resource token expiry time 既定では 24 時間。24 h by default. これは、Azure サポート チケットを提出するか、または Ask Cosmos DB 経由で Microsoft に連絡することによって増やすことができますYou can increase it by filing an Azure support ticket or contacting us via Ask Cosmos DB
トークン承認の最大クロック スキューMaximum clock skew for token authorization 15 分15 min

Cosmos DB は、書き込み中のトリガーの実行をサポートしています。Cosmos DB supports execution of triggers during writes. このサービスでは、書き込み操作あたり最大 1 つのプリトリガーと 1 つのポストトリガーがサポートされます。The service supports a maximum of one pre-trigger and one post-trigger per write operation.

SQL クエリの制限SQL query limits

Cosmos DB は、SQL を使用した項目のクエリをサポートしています。Cosmos DB supports querying items using SQL. 次の表では、クエリ ステートメントでの制限 (句の数やクエリの長さなどの単位) について説明します。The following table describes restrictions in query statements, for example in terms of number of clauses or query length.

ResourceResource 既定の制限Default limit
SQL クエリの最大長Maximum length of SQL query 256 KB *256 KB *
クエリあたりの最大 JOINMaximum JOINs per query 5 *5 *
クエリあたりの最大 ANDMaximum ANDs per query 2000 *2000 *
クエリあたりの最大 ORMaximum ORs per query 2000 *2000 *
クエリあたりの最大 UDFMaximum UDFs per query 10 *10 *
IN 式あたりの最大引数Maximum arguments per IN expression 6000 *6000 *
多角形あたりの最大ポイントMaximum points per polygon 4096 *4096 *

* これらの SQL クエリの制限はいずれも、Azure Support に連絡するか、または Ask Cosmos DB 経由で Microsoft に連絡することによって増やすことができます。* You can increase any of these SQL query limits by contacting Azure Support or contacting us via Ask Cosmos DB.

MongoDB API に固有の制限MongoDB API-specific limits

Cosmos DB は、MongoDB に対して記述されたアプリケーションのための MongoDB ワイヤ プロトコルをサポートしています。Cosmos DB supports the MongoDB wire protocol for applications written against MongoDB. サポートされるコマンドおよびプロトコル バージョンは、サポートされる MongoDB の機能と構文に関するページで見つけることができます。You can find the supported commands and protocol versions at Supported MongoDB features and syntax.

次の表は、MongoDB 機能のサポートに固有の制限の一覧を示しています。The following table lists the limits specific to MongoDB feature support. SQL (コア) API に関して説明されているその他のサービス制限も MongoDB API に適用されます。Other service limits mentioned for the SQL (core) API also apply to the MongoDB API.

ResourceResource 既定の制限Default limit
MongoDB クエリの最大メモリ サイズMaximum MongoDB query memory size 40 MB40 MB
MongoDB 操作の最大実行時間Maximum execution time for MongoDB operations 30 秒30s

Cosmos DB 無料試用版の制限Try Cosmos DB Free limits

次の表は、Azure Cosmos DB 無料試用版の制限の一覧を示しています。The following table lists the limits for the Try Azure Cosmos DB for Free trial.

ResourceResource 既定の制限Default limit
試用版の期間Duration of the trial 30 日 (何回でも更新できます)30 days (can be renewed any number of times)
サブスクリプションあたりの最大コンテナー (SQL、Gremlin、Table API)Maximum containers per subscription (SQL, Gremlin, Table API) 11
サブスクリプションあたりの最大コンテナー (MongoDB API)Maximum containers per subscription (MongoDB API) 33
コンテナーあたりの最大スループットMaximum throughput per container 50005000
共有スループット データベースあたりの最大スループットMaximum throughput per shared-throughput database 2000020000
アカウントあたりの最大合計ストレージMaximum total storage per account 10 GB10 GB

Cosmos DB 試用版は、米国中部、北ヨーロッパ、および東南アジア リージョンでのみグローバル分散をサポートしています。Try Cosmos DB supports global distribution in only the Central US, North Europe, and Southeast Asia regions. Azure Cosmos DB 試用版アカウントに対して Azure サポート チケットを作成することはできません。Azure support tickets can't be created for Try Azure Cosmos DB accounts. ただし、既存のサポート プランを所有するサブスクライバーにはサポートが提供されます。However, support is provided for subscribers with existing support plans.

次の手順Next steps

Cosmos DB の中心概念であるグローバル分散パーティション分割、およびプロビジョニング スループットに関する記事を参照してください。Read more about Cosmos DB's core concepts global distribution and partitioning and provisioned throughput.

以下のクイック スタートのいずれかに従って、実際に Azure Cosmos DB を使ってみましょう。Get started with Azure Cosmos DB with one of our quickstarts: