Bereitstellen von automatisch skaliertem Durchsatz für eine Datenbank oder einen Container in Azure Cosmos DB – API für NoSQL

GILT FÜR: NoSQL

In diesem Artikel erfahren Sie, wie Sie automatisch skalierten Durchsatz für eine Datenbank oder einen Container (Sammlung, Diagramm oder Tabelle) in Azure Cosmos DB for NoSQL bereitstellen. Sie können die Autoskalierung für einen einzelnen Container aktivieren oder automatisch skalierten Durchsatz für eine Datenbank bereitstellen, sodass er für alle in der Datenbank enthaltenen Container zur Verfügung steht.

Wenn Sie eine andere API verwenden, finden Sie Informationen zum Bereitstellen des Durchsatzes in den Artikeln zur API für MongoDB, API für Cassandra und API für Gremlin.

Azure-Portal

Erstellen einer neuen Datenbank oder eines neuen Containers mit Autoskalierung

  1. Melden Sie sich beim Azure-Portal oder beim Azure Cosmos DB-Explorer an.

  2. Navigieren Sie zu Ihrem Azure Cosmos DB-Konto, und öffnen Sie die Registerkarte Daten-Explorer.

  3. Wählen Sie die Option Neuer Container aus, und geben Sie einen Namen für Ihre Datenbank, für den Container und den Partitionsschlüssel ein. Wählen Sie für den Datenbank- oder Containerdurchsatz die Option Autoskalierung aus, und legen Sie den maximalen Durchsatz (RU/s) fest, auf den die Datenbank oder der Container skalierbar sein soll.

    Erstellen eines Containers und Konfigurieren der Durchsatzbereitstellung mit Autoskalierung

  4. Klicken Sie auf OK.

Wenn Sie die Autoskalierung für eine Datenbank mit gemeinsam genutztem Durchsatz bereitstellen möchten, wählen Sie beim Erstellen einer neuen Datenbank die Option Provision database throughput (Datenbankdurchsatz bereitstellen) aus.

Aktivieren der Autoskalierung für vorhandene Datenbanken oder Container

  1. Melden Sie sich beim Azure-Portal oder beim Azure Cosmos DB-Explorer an.

  2. Navigieren Sie zu Ihrem Azure Cosmos DB-Konto, und öffnen Sie die Registerkarte Daten-Explorer.

  3. Wählen Sie Skalierung und Einstellungen (für Ihren Container) oder Skalieren (für Ihre Datenbank) aus.

  4. Wählen Sie unter Skalieren die Option Autoskalierung und anschließend Speichern aus.

    Aktivieren der Autoskalierung für einen vorhandenen Container

Hinweis

Wenn Sie die Autoskalierung für eine vorhandene Datenbank oder für einen vorhandenen Container aktivieren, wird der Startwert für die maximale Anzahl von RU/s durch das System bestimmt (basierend auf den aktuellen Einstellungen für manuell bereitgestellten Durchsatz sowie auf dem Speicher). Nach Abschluss des Vorgangs kann die maximale Anzahl von RU/s bei Bedarf geändert werden. Weitere Informationen.

Azure Cosmos DB .NET V3 SDK

Verwenden Sie mindestens die Version 3.9 des Azure Cosmos DB .NET SDK für die API für NoSQL, um Autoskalierungsressourcen zu verwalten.

Wichtig

Sie können das .NET SDK verwenden, um neue Autoskalierungsressourcen zu erstellen. Die Migration zwischen Autoskalierung und (manuellem) Standarddurchsatz wird vom SDK nicht unterstützt. Das Migrationsszenario wird aktuell nur im Azure-Portal, in der CLI und in PowerShell unterstützt.

Erstellen einer Datenbank mit gemeinsam genutztem Durchsatz

// 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);

Erstellen eines Containers mit dediziertem Durchsatz

// 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);

Lesen des aktuellen Durchsatzes (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;

Ändern des maximalen Durchsatzes (RU/s) für die Autoskalierung

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

Azure Cosmos DB Java V4 SDK

Sie können die Version 4.0 oder eine höhere Version des Azure Cosmos DB Java SDK für die API für NoSQL verwenden, um Autoskalierungsressourcen zu verwalten.

Wichtig

Sie können das Java SDK verwenden, um neue Autoskalierungsressourcen zu erstellen. Die Migration zwischen Autoskalierung und (manuellem) Standarddurchsatz wird vom SDK nicht unterstützt. Das Migrationsszenario wird aktuell nur im Azure-Portal, in der CLI und in PowerShell unterstützt.

Erstellen einer Datenbank mit gemeinsam genutztem Durchsatz

// 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();

Erstellen eines Containers mit dediziertem Durchsatz

// 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();

Lesen des aktuellen Durchsatzes (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;

Ändern des maximalen Durchsatzes (RU/s) für die Autoskalierung

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

Azure Resource Manager

Azure Resource Manager-Vorlagen können verwendet werden, um für alle Azure Cosmos DB-APIs einen automatischen Skalierungsdurchsatz für eine neue Ressource auf Datenbank- oder Containerebene bereitzustellen. Weitere Beispiele finden Sie unter Azure Resource Manager-Vorlagen für Azure Cosmos DB. Standardmäßig können Azure Resource Manager-Vorlagen nicht für die Migration zwischen einem bereitgestellten und automatisch skaliertem Durchsatz für eine vorhandene Ressource verwendet werden.

Azure CLI

Die Azure CLI kann verwendet werden, um für alle Azure Cosmos DB-APIs einen automatischen Skalierungsdurchsatz für eine neue Ressource auf Datenbank- oder Containerebene bereitzustellen oder die Autoskalierung für eine vorhandene Ressource zu aktivieren. Weitere Beispiele finden Sie unter Azure CLI-Beispiele für Azure Cosmos DB

Azure PowerShell

Azure PowerShell kann verwendet werden, um für alle Azure Cosmos DB-APIs einen automatischen Skalierungsdurchsatz für eine neue Ressource auf Datenbank- oder Containerebene bereitzustellen oder die Autoskalierung für eine vorhandene Ressource zu aktivieren. Beispiele finden Sie unter Azure PowerShell-Beispiele für Azure Cosmos DB.

Nächste Schritte