Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
В этой статье объясняется, как настроить автомасштабируемую пропускную способность для базы данных или контейнера (коллекции, графа или таблицы) в Azure Cosmos DB для NoSQL. Вы можете включить автомасштабирование для одного контейнера или предоставить пропускную способность с автомасштабированием для базы данных, чтобы распределить её между всеми контейнерами в этой базе данных.
Если вы используете другой API, ознакомьтесь с API для MongoDB, API для Cassandra и API для Gremlin, чтобы подготовить пропускную способность.
Портал Azure
Создание новой базы данных или контейнера с автомасштабированием
Войдите на портал Azure или в обозреватель Azure Cosmos DB.
Перейдите к своей учетной записи Azure Cosmos DB и откройте вкладку Data Explorer.
Выберите Новый контейнер. Введите имя базы данных, контейнера и ключа раздела. В разделе пропускной способности базы данных выберите параметр Автомасштабирование и задайте значение максимальной пропускной способности (единиц запросов в секунду), которое будет использоваться для масштабирования базы данных или контейнера.
Нажмите ОК.
Чтобы подготовить автомасштабирование для базы данных с совместно используемой пропускной способностью, выберите параметр Подготовка пропускной способности базы данных при создании новой базы данных.
Включение автомасштабирования в уже существующей базе данных или контейнере
Войдите на портал Azure или в обозреватель Azure Cosmos DB.
Перейдите к своей учетной записи Azure Cosmos DB и откройте вкладку Data Explorer.
Выберите Масштаб и параметры для контейнера или Масштаб для базы данных.
В разделе Масштаб выберите параметр Автомасштабирование и нажмите Сохранить.
Примечание.
При включении автомасштабирования для существующей базы данных или контейнера система определяет начальное значение максимального RU/s в зависимости от ваших текущих настроек вручную предоставленной пропускной способности и объема хранилища. После завершения операции вы можете изменить максимальное количество RUs в секунду при необходимости. Подробнее.
Пакет SDK .NET версии 3 для Microsoft Azure Cosmos DB
Используйте пакет SDK для .NET для Azure Cosmos DB версии 3.9 или более поздней версии для API noSQL для управления ресурсами автомасштабирования.
Внимание
Пакет 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);
Прочитайте текущий уровень пропускной способности (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;
Изменение максимальной автомасштабируемой пропускной способности (единиц запросов в секунду)
// 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 версии 4.0 или более поздней для API NoSQL для управления ресурсами автомасштабирования.
Внимание
Пакет 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();
Прочитайте текущий уровень пропускной способности (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;
Изменение максимальной автомасштабируемой пропускной способности (единиц запросов в секунду)
// Change the autoscale max throughput (RU/s)
container.replaceThroughput(ThroughputProperties.createAutoscaledThroughput(newAutoscaleMaxThroughput)).block();
Azure Cosmos DB Go SDK
ThroughputProperties можно использоваться для ресурсов базы данных и контейнеров.
Создание базы данных с управляемой вручную пропускной способностью
// manual throughput properties
db_throughput := azcosmos.NewManualThroughputProperties(400)
_, err = client.CreateDatabase(context.Background(), azcosmos.DatabaseProperties{
ID: "demo_db",
}, &azcosmos.CreateDatabaseOptions{
ThroughputProperties: &db_throughput,
})
Создайте контейнер с автоматическим масштабированием пропускной способности
pkDefinition := azcosmos.PartitionKeyDefinition{
Paths: []string{"/state"},
Kind: azcosmos.PartitionKeyKindHash,
}
// autoscale throughput properties
throughput := azcosmos.NewAutoscaleThroughputProperties(4000)
db.CreateContainer(context.Background(), azcosmos.ContainerProperties{
ID: "demo_container",
PartitionKeyDefinition: pkDefinition,
}, &azcosmos.CreateContainerOptions{
ThroughputProperties: &throughput,
})
Azure Resource Manager
Шаблоны Azure Resource Manager позволяют предоставить возможность автомасштабирования пропускной способности для ресурсов на уровне новой базы данных или контейнера для всех API Azure Cosmos DB. Примеры см. в статье Шаблоны Azure Resource Manager для Azure Cosmos DB. По своему замыслу шаблоны Azure Resource Manager не могут использоваться для перехода между подготовленной и автомасштабированной пропускной способностью в существующем ресурсе.
Azure CLI
Интерфейс командной строки Azure (Azure CLI) позволяет подготовить автомасштабируемую пропускную способность для нового ресурса уровня базы данных или контейнера для всех API Azure Cosmos DB или включить автомасштабирование для существующего ресурса.
Azure PowerShell
Microsoft Azure PowerShell позволяет подготовить автомасштабируемую пропускную способность для нового ресурса уровня базы данных или контейнера для всех API Azure Cosmos DB или включить автомасштабирование для существующего ресурса.