Azure Cosmos DB - API for NoSQL のデータベースまたはコンテナーで、自動スケーリングのスループットをプロビジョニングする

適用対象: NoSQL

この記事では、Azure Cosmos DB for NoSQL のデータベースまたはコンテナー (コレクション、グラフ、またはテーブル) で、自動スケーリングのスループットをプロビジョニングする方法について説明します。 自動スケーリングは、単一のコンテナーを対象に有効にできるほか、データベースを対象に自動スケーリングのスループットをプロビジョニングして、それをデータベースのすべてのコンテナーで共有することもできます。

別の API を使用している場合は、MongoDB 用 APICassandra 用 APIGremlin 用 API のスループット プロビジョニングに関する記事を参照してください。

Azure portal

自動スケーリングを使用する新しいデータベースまたはコンテナーを作成する

  1. Azure portal または Azure Cosmos DB Explorer にサインインします。

  2. Azure Cosmos DB アカウントに移動して、 [データ エクスプローラー] タブを開きます。

  3. [新しいコンテナー] を選びます。データベース、コンテナー、パーティション キーの名前を入力します。 データベースまたはコンテナー スループットで [自動スケーリング] オプションを選択し、データベースまたはコンテナーをスケーリングする、最大スループット (RU/秒) を設定します。

    コンテナーの作成と、自動スケーリングによってプロビジョニングされたスループットの構成

  4. [OK] を選択します。

共有スループット データベースで自動スケーリングをプロビジョニングするには、新しいデータベースを作成する際に [Provision database throughput](データベース スループットをプロビジョニングする) オプションを選択します。

既存のデータベースまたはコンテナーで自動スケーリングを有効にする

  1. Azure portal または Azure Cosmos DB Explorer にサインインします。

  2. Azure Cosmos DB アカウントに移動して、 [データ エクスプローラー] タブを開きます。

  3. コンテナーの [Scale and Settings](スケーリングと設定) か、データベースの [スケーリング] を選択します。

  4. [スケーリング] で、 [自動スケーリング] オプションを選択して [保存] します。

    既存のコンテナーで自動スケーリングを有効にする

Note

既存のデータベースまたはコンテナーで自動スケーリングを有効にする場合、最大 RU/s の開始値は、現在の手動でプロビジョニングされたスループットの設定とストレージに基づいて、システムによって決定されます。 操作が完了したら、必要に応じて最大 RU/s を変更できます。 詳細情報。

Azure Cosmos DB .NET V3 SDK

バージョン 3.9 以上の Azure Cosmos DB .NET SDK for API for NoSQL を使用して、自動スケーリング リソースを管理します。

重要

.NET SDK を使用して新しい自動スケーリング リソースを作成できます。 この SDK は、自動スケーリングと標準 (手動) のスループットとの間と移行をサポートしていません。 現在、この移行シナリオは Azure portalCLI、および PowerShell でのみサポートされています。

共有スループットのデータベースを作成する

// Create instance of CosmosClient
CosmosClient cosmosClient = new CosmosClient(Endpoint, PrimaryKey);
 
// Autoscale throughput settings
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000); //Set autoscale max RU/s

//Create the database with autoscale enabled
database = await cosmosClient.CreateDatabaseAsync(DatabaseName, throughputProperties: autoscaleThroughputProperties);

専用スループットを持つコンテナーを作成する

// Get reference to database that container will be created in
Database database = await cosmosClient.GetDatabase("DatabaseName");

// Container and autoscale throughput settings
ContainerProperties autoscaleContainerProperties = new ContainerProperties("ContainerName", "/partitionKey");
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000); //Set autoscale max RU/s

// Create the container with autoscale enabled
container = await database.CreateContainerAsync(autoscaleContainerProperties, autoscaleThroughputProperties);

現在のスループット (RU/s) を読み取る

// Get a reference to the resource
Container container = cosmosClient.GetDatabase("DatabaseName").GetContainer("ContainerName");

// Read the throughput on a resource
ThroughputProperties autoscaleContainerThroughput = await container.ReadThroughputAsync(requestOptions: null); 

// The autoscale max throughput (RU/s) of the resource
int? autoscaleMaxThroughput = autoscaleContainerThroughput.AutoscaleMaxThroughput;

// The throughput (RU/s) the resource is currently scaled to
int? currentThroughput = autoscaleContainerThroughput.Throughput;

自動スケーリングの最大スループット (RU/s) を変更する

// Change the autoscale max throughput (RU/s)
await container.ReplaceThroughputAsync(ThroughputProperties.CreateAutoscaleThroughput(newAutoscaleMaxThroughput));

Azure Cosmos DB Java V4 SDK

バージョン 4.0 以上の Azure Cosmos DB Java SDK for API for NoSQL を使用して、自動スケーリング リソースを管理できます。

重要

Java SDK を使用して新しい自動スケーリング リソースを作成できます。 この SDK は、自動スケーリングと標準 (手動) のスループットとの間と移行をサポートしていません。 現在、この移行シナリオは Azure portalCLI、および PowerShell でのみサポートされています。

共有スループットのデータベースを作成する

// Create instance of CosmosClient
CosmosAsyncClient client = new CosmosClientBuilder()
    .setEndpoint(HOST)
    .setKey(PRIMARYKEY)
    .setConnectionPolicy(CONNECTIONPOLICY)
    .buildAsyncClient();

// Autoscale throughput settings
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(1000); //Set autoscale max RU/s

//Create the database with autoscale enabled
CosmosAsyncDatabase database = client.createDatabase(databaseName, autoscaleThroughputProperties).block().getDatabase();

専用スループットを持つコンテナーを作成する

// Get reference to database that container will be created in
CosmosAsyncDatabase database = client.createDatabase("DatabaseName").block().getDatabase();

// Container and autoscale throughput settings
CosmosContainerProperties autoscaleContainerProperties = new CosmosContainerProperties("ContainerName", "/partitionKey");
ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(1000); //Set autoscale max RU/s

// Create the container with autoscale enabled
CosmosAsyncContainer container = database.createContainer(autoscaleContainerProperties, autoscaleThroughputProperties, new CosmosContainerRequestOptions())
                                .block()
                                .getContainer();

現在のスループット (RU/s) を読み取る

// Get a reference to the resource
CosmosAsyncContainer container = client.getDatabase("DatabaseName").getContainer("ContainerName");

// Read the throughput on a resource
ThroughputProperties autoscaleContainerThroughput = container.readThroughput().block().getProperties();

// The autoscale max throughput (RU/s) of the resource
int autoscaleMaxThroughput = autoscaleContainerThroughput.getAutoscaleMaxThroughput();

// The throughput (RU/s) the resource is currently scaled to
int currentThroughput = autoscaleContainerThroughput.Throughput;

自動スケーリングの最大スループット (RU/s) を変更する

// Change the autoscale max throughput (RU/s)
container.replaceThroughput(ThroughputProperties.createAutoscaledThroughput(newAutoscaleMaxThroughput)).block();

Azure Resource Manager

Azure Resource Manager テンプレートを使用すると、すべての Azure Cosmos DB API に対して、新しいデータベースまたはコンテナー レベルのリソースへの自動スケーリングのスループットをプロビジョニングできます。 サンプルについては、「Azure Cosmos DB の Azure Resource Manager テンプレート」を参照してください。 仕様により、Azure Resource Manager テンプレートを使用して、既存のリソースのプロビジョニングされたスループットと自動スケーリングのスループットの間で移行を行うことはできません。

Azure CLI

Azure CLI テンプレートを使用すると、すべての Azure Cosmos DB API に対して、新しいデータベースまたはコンテナー レベルのリソースへの自動スケーリングのスループットをプロビジョニングしたり、既存のリソースで自動スケーリングを有効にしたりできます。 サンプルについては、「Azure Cosmos DB の Azure CLI サンプル」を参照してください。

Azure PowerShell

Azure PowerShell を使用すると、すべての Azure Cosmos DB API に対して、新しいデータベースまたはコンテナー レベルのリソースへの自動スケーリングのスループットをプロビジョニングしたり、既存のリソースで自動スケーリングを有効にしたりできます。 サンプルについては、「Azure Cosmos DB 用 Azure PowerShell サンプル」を参照してください。

次のステップ