Подготовка автомасштабируемой пропускной способности для базы данных или контейнера в Azure Cosmos DB — API для NoSQL

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

В этой статье объясняется, как подготовить автомасштабируемую пропускную способность для базы данных или контейнера (коллекции, графа или таблицы) в Azure Cosmos DB для NoSQL. Вы можете включить подготовку пропускной способности для одного контейнера или подготовку автомасштабируемой пропускной способности для целой базы данных, распределив ее между контейнерами в этой базе данных.

Если вы используете другой API, ознакомьтесь со статьями API для MongoDB, API для Cassandra и API для Gremlin , чтобы подготовить пропускную способность.

Портал Azure

Создание новой базы данных или контейнера с автомасштабированием

  1. Войдите на портал Azure или в обозреватель Azure Cosmos DB.

  2. Перейдите к своей учетной записи Azure Cosmos DB и откройте вкладку Data Explorer.

  3. Выберите Новый контейнер. Введите имя базы данных, контейнера и ключа раздела. В разделе пропускной способности базы данных выберите параметр Автомасштабирование и задайте значение максимальной пропускной способности (единиц запросов в секунду), которое будет использоваться для масштабирования базы данных или контейнера.

    Создание контейнера и настройка пропускной способности, подготовленной с использованием автомасштабирования

  4. Щелкните ОК.

Чтобы подготовить автомасштабирование для базы данных с совместно используемой пропускной способностью, выберите параметр Подготовка пропускной способности базы данных при создании новой базы данных.

Включение автомасштабирования в уже существующей базе данных или контейнере

  1. Войдите на портал Azure или в обозреватель Azure Cosmos DB.

  2. Перейдите к своей учетной записи Azure Cosmos DB и откройте вкладку Data Explorer.

  3. Выберите Масштаб и параметры для контейнера или Масштаб для базы данных.

  4. В разделе Масштаб выберите параметр Автомасштабирование и нажмите Сохранить.

    Включение автомасштабирования для существующего контейнера

Примечание

При включении автомасштабирования для существующей базы данных или контейнера начальное значение максимального числа единиц запросов в секунду определяется системой с учетом текущих параметров пропускной способности и хранилища, подготовленных вручную. По завершении операции при необходимости можно изменить значение максимального числа единиц запросов в секунду. Подробнее.

Пакет SDK .NET версии 3 для Microsoft Azure Cosmos DB

Используйте пакет SDK azure Cosmos DB для .NET для API для NoSQL версии 3.9 или более поздней для управления ресурсами автомасштабирования.

Важно!

Пакет SDK .NET можно использовать для создания новых ресурсов автомасштабирования. Пакет SDK не поддерживает миграцию между автомасштабируемой и стандартной (вручную) пропускной способностью. Сейчас этот сценарий миграции поддерживается только на портале Microsoft Azure, в CLI и 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);

Чтение текущей пропускной способности (единиц запросов в секунду)

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

Изменение максимальной автомасштабируемой пропускной способности (единиц запросов в секунду)

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

Пакет SDK Java версии 4 для Microsoft Azure Cosmos DB

Для управления ресурсами автомасштабирования можно использовать пакет SDK java для Azure Cosmos DB для API для NoSQL версии 4.0 или более поздней .

Важно!

Пакет SDK Java можно использовать для создания новых ресурсов автомасштабирования. Пакет SDK не поддерживает миграцию между автомасштабируемой и стандартной (вручную) пропускной способностью. Сейчас этот сценарий миграции поддерживается только на портале Microsoft Azure, в CLI и 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();

Чтение текущей пропускной способности (единиц запросов в секунду)

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

Изменение максимальной автомасштабируемой пропускной способности (единиц запросов в секунду)

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

Azure Resource Manager

Шаблоны Azure Resource Manager позволяют подготовить автомасштабируемую пропускную способность для ресурсов уровня базы данных или контейнера для всех API Microsoft Azure Cosmos DB. Примеры см. в статье Шаблоны Azure Resource Manager для Azure Cosmos DB. По своему замыслу шаблоны Azure Resource Manager не могут использоваться для перехода между подготовленной и автомасштабированной пропускной способностью в существующем ресурсе.

Azure CLI

Интерфейс командной строки Azure (Azure CLI) позволяет подготовить автомасштабируемую пропускную способность для нового ресурса уровня базы данных или контейнера для всех API Azure Cosmos DB или включить автомасштабирование для существующего ресурса. Примеры см. в статье Примеры Azure CLI для Azure Cosmos DB.

Azure PowerShell

Microsoft Azure PowerShell позволяет подготовить автомасштабируемую пропускную способность для нового ресурса уровня базы данных или контейнера для всех API Azure Cosmos DB или включить автомасштабирование для существующего ресурса. Примеры см. в статье Примеры Azure PowerShell для Azure Cosmos DB.

Дальнейшие действия