Квоты для службы Azure Cosmos DB

ПРИМЕНИМО К: API SQL API Cassandra API Gremlin API таблиц API Azure Cosmos DB для MongoDB

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

Операции с хранилищем и базой данных

Создав учетную запись Azure Cosmos DB в подписке Azure, вы сможете управлять данными в своей учетной записи , создавая базы данных, контейнеры и элементы.

Подготовленная пропускная способность

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

Ресурс Ограничение по умолчанию
Максимальное количество запросов в секунду для контейнера (режим выделенной пропускной способности) По умолчанию: 1 000 000. Вы можете увеличить это значение, направив запрос в службу поддержки Azure
Максимальное количество запросов для одной базы данных (подготовленный режим общей пропускной способности) По умолчанию: 1 000 000. Вы можете увеличить это значение, направив запрос в службу поддержки Azure
Максимальное значение ЕЗ/с на один раздел (логический и физический) 10 000
Максимальный объем хранилища для всех элементов в (логическом) разделе 20 ГБ
Максимальное число уникальных (логических) ключей разделов Неограниченно
Максимальный объем хранилища для одного контейнера Неограниченно
Максимальный размер хранилища для базы данных Неограниченно
Максимальный размер вложения для учетной записи (поддержка функции вложения в данный момент прекращается) 2 ГБ
Минимально необходимое значение ЕЗ/с на 1 ГБ 10 запросов в секунду
Примечание. Это минимальное значение можно уменьшить, если ваша учетная запись может участвовать в программе "высокая емкость и низкая пропускная способность".

Примечание

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

Минимальное ограничение пропускной способности

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

Сведения об общей и минимальной пропускной способности контейнера или базы данных можно узнать на портале Azure или пакетов SDK. Дополнительные сведения см. в статье Подготовка пропускной способности для контейнеров и баз данных.

Фактический минимум ЕЗ/с будет зависеть от конфигурации вашей учетной записи. Метрики Azure Monitor можно использовать для просмотра журнала подготовленной пропускной способности (ЕЗ/с) и хранилища в ресурсе.

Минимальная пропускная способность контейнера

Чтобы оценить минимальную пропускную способность контейнера с настроенной вручную пропускной способностью, вычислите максимальное из следующих значений:

  • 400 ЕЗ/с
  • Текущий объем хранилища в ГБ * 10 ЕЗ/с
  • Максимальное значение ЕЗ/с, подготовленное в контейнере / 100

Пример. Предположим, что у вас есть контейнер с подготовленными 400 ЕЗ/с и 0 ГБ хранилища. Вы увеличиваете пропускную способность до 50 000 ЕЗ/с и импортируете 20 ГБ данных. Минимальное значение ЕЗ/с теперь равно MAX(400, 20 * 10 RU/s per GB, 50,000 RU/s / 100) = 500 ЕЗ/с. Со временем размер хранилища увеличивается до 200 ГБ. Минимальное значение ЕЗ/с теперь равно MAX(400, 200 * 10 RU/s per GB, 50,000 / 100) = 2000 ЕЗ/с.

Примечание. Минимальная пропускная способность, равная 10 ЕЗ/с на 1 ГБ, может быть снижена, если ваша учетная запись может участвовать в программе "высокая емкость и низкая пропускная способность".

Минимальная пропускная способность в базу данных с общей пропускной способностью

Чтобы оценить минимальную пропускную способность, необходимую для базы данных с общей пропускной способностью, задаваемой вручную, вычислите максимальное значение:

  • 400 ЕЗ/с
  • Текущий объем хранилища в ГБ * 10 ЕЗ/с
  • Максимальное значение ЕЗ/с, подготовленное в базе данных / 100
  • 400 + MAX(число контейнеров – 25, 0) * 100 ЕЗ/с

Пример: Предположим, что у вас есть база данных с подготовленными 400 ЕЗ/с, 15 ГБ хранилища и 10 контейнерами. Минимальное значение ЕЗ/с равно MAX(400, 15 * 10 RU/s per GB, 400 / 100, 400 + 0 ) = 400 ЕЗ/с. Если в базе данных было 30 контейнеров, минимальное количество ЕЗ/с составит 400 + MAX(30 - 25, 0) * 100 RU/s = 900 ЕЗ/с.

Примечание. Минимальная пропускная способность, равная 10 ЕЗ/с на 1 ГБ, может быть снижена, если ваша учетная запись может участвовать в программе "высокая емкость и низкая пропускная способность".

В сводке приведены минимальные максимальные подготовленные ограничения в единицах запросов в секунду.

Ресурс Ограничение по умолчанию
Минимальное количество запросов в секунду на контейнер (режим выделенной подготовленной пропускной способности) 400
Минимальное количество запросов на базу данных (режим выделенной подготовленной пропускной способности) 400 ЕЗ/с для первых 25 контейнеров. Затем дополнительные 100 ЕЗ/с для каждого контейнера.

Cosmos DB поддерживает программное масштабирование пропускной способности (ЕЗ/с) на один контейнер или базу данных с помощью пакетов SDK или портала.

В зависимости от текущего значения подготовленных ЕЗ/с и параметров ресурсов каждый ресурс может масштабироваться синхронно и моментально от минимального числа ЕЗ/с до значения, превышающего его в 100 раз. Если запрашиваемое значение пропускной способности выходит за пределы диапазона, масштабирование выполняется асинхронно. Асинхронное масштабирование может занять несколько минут в зависимости от запрошенной пропускной способности и размера хранилища данных в контейнере.

Бессерверные приложения

Бессерверная модель позволяет использовать ресурсы Azure Cosmos DB на основе потребления. В следующей таблице перечислены ограничения возможности увеличения ресурсов хранения и пропускной способности каждого контейнера или базы данных.

Ресурс Ограничение
Максимальное число ЕЗ/с на контейнер 5 000
Максимальный объем хранилища для всех элементов в (логическом) разделе 20 ГБ
Максимальное число уникальных (логических) ключей разделов Неограниченно
Максимальный объем хранилища для одного контейнера 50 ГБ

Операции уровня управления

В этой статье описывается, как подготовить учетную запись Azure Cosmos и управлять ею с помощью портала Azure, Azure PowerShell, Azure CLI и шаблонов Azure Resource Manager. В следующей таблице перечислены ограничения, предусмотренные для каждой подписки, учетной записи и количества операций.

Ресурс Ограничение по умолчанию
Максимальное число учетных записей в базе данных на каждую подписку 50 по умолчанию. Вы можете увеличить это значение, направив запрос в службу поддержки Azure
Максимальное число региональных отработок отказа 1 в час по умолчанию. Вы можете увеличить это значение, направив запрос в службу поддержки Azure

Примечание

Региональные отработки отказа применяются только к учетным записям с правами записи в одном регионе. Учетные записи с правами записи в нескольких регионах не зависят от ограничений на изменение региона записи.

База данных Azure Cosmos DB регулярно выполняет автоматическое резервное копирование ваших данных. Дополнительные сведения об интервалах и окнах хранения резервных копий см. в разделе Оперативное резервное копирование и восстановление данных по запросу в Azure Cosmos DB.

Ограничения для каждой учетной записи

Подготовленная пропускная способность

Ресурс Ограничение по умолчанию
Максимальное число баз данных Неограниченно
Максимальное число контейнеров в одной базе данных с общей пропускной способностью 25
Максимальное число контейнеров в одной базе данных с общей пропускной способностью без ограничений
Максимальное число регионов Без ограничений (все регионы Azure)

Бессерверные приложения

Ресурс Ограничение
Максимальное число баз данных Неограниченно
Максимальное число контейнеров в учетной записи 100
Максимальное число регионов 1 (любой регион Azure)

Ограничения для одного контейнера

В зависимости от используемого API контейнер Azure Cosmos может представлять коллекцию, таблицу или граф. Контейнеры поддерживают конфигурации для ограничений уникального ключа, хранимых процедур, триггеров и определяемых пользователем функций, а также для политики индексирования. В следующей таблице перечислены ограничения, предусмотренные для конфигураций в контейнере.

Ресурс Ограничение по умолчанию
Максимальная длина имени базы данных или контейнера 255
Максимальное число хранимых процедур на контейнер 100 *
Максимальное число определяемых пользователем функций на контейнер 50 *
Максимальное число путей в политике индексирования 100 *
Максимальное число уникальных ключей на контейнер 10 *
Максимальное число путей на ограничение уникального ключа 16 *
Максимальное значение срока жизни 2147483647

* Чтобы увеличить любое из этих ограничений для каждого контейнера, создайте запрос в службу поддержки Azure.

Ограничения для каждого элемента

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

Ресурс Ограничение по умолчанию
Максимальный размер элемента 2 МБ (длина UTF-8 для представления JSON)
Максимальная длина значения ключа раздела 2048 байт
Максимальная длина значения идентификатора 1023 байта
Максимальное число свойств на элемент Без практически применимых ограничений
Максимальная длина имени свойства Без практически применимых ограничений
Максимальная длина значения свойства Без практически применимых ограничений
Максимальная длина строкового значения свойства Без практически применимых ограничений
Максимальная длина числового значения свойства 64-разрядное значение IEEE754 с двойной точностью
Максимальный уровень вложенности для внедренных объектов и массивов 128
Максимальное значение срока жизни 2147483647

Для полезной нагрузки элемента не предусмотрены ограничения, например по числу свойств и глубине вложенности, за исключением ограничений по длине ключа раздела и значений идентификатора, а также по общему размеру (2 МБ). Возможно, потребуется настроить политику индексирования для контейнеров с большими или сложными структурами элементов, чтобы снизить потребляемое число единиц запросов. Примеры из реальной жизни, а также шаблоны для управления элементами большого размера см. в разделе Моделирование элементов в Cosmos DB.

Ограничения для каждого запроса

Azure Cosmos DB поддерживает CRUD и операции с запросами для ресурсов, таких как контейнеры, элементы и базы данных. Также поддерживаются транзакционные пакетные запросы к нескольким элементам с одним и тем же ключом раздела в контейнере.

Ресурс Ограничение по умолчанию
Максимальное время выполнения для одной операции (например, выполнение хранимой процедуры или получение одной страницы запроса) 5 секунд
Максимальный размер запроса (например, хранимая процедура, CRUD) 2 МБ
Максимальный размер отклика (например, запрос с разбивкой на страницы) 4 МБ
Максимальное количество операций в пакете транзакции 100

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

Cosmos DB использует HMAC для авторизации. Для детализированного контроля доступа к ресурсам, таким как контейнеры, ключи разделов или элементы, можно использовать первичный ключ или маркеры ресурсов. В следующей таблице перечислены ограничения для ключей авторизации в Cosmos DB.

Ресурс Ограничение по умолчанию
Максимальный срок действия первичного маркера 15 мин.
Минимальный срок действия маркера ресурса 10 мин.
Максимальный срок действия маркера ресурса 24 ч. по умолчанию. Вы можете увеличить это значение, направив запрос в службу поддержки Azure
Максимальная расфазировка тактовых сигналов для авторизации токена 15 мин.

Cosmos DB поддерживает выполнение триггеров во время записи. Служба поддерживает не более одного триггера события перед каждой операцией записи и не более одного триггера после каждой операции записи.

Ограничения запросов метаданных

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

Ресурс Ограничение по умолчанию
Максимальная скорость создания коллекций в минуту 100
Максимальная скорость создания баз данных в минуту 100
Максимальное число обновлений подготовленной пропускной способности в минуту 5

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

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

Ресурс Ограничение по умолчанию
Максимальное число единиц запросов в секунду, до которого возможно масштабирование системы Tmax, максимальное число единиц запросов в секунду, заданное пользователем
Минимальное число единиц запросов в секунду, до которого возможно масштабирование системы 0.1 * Tmax
Текущее число единиц запросов в секунду, до которого возможно масштабирование системы 0.1*Tmax <= T <= Tmax, с учетом данных по использованию
Минимальное число единиц запросов в час, включаемых в счет 0.1 * Tmax

Выставление счетов выполняется на почасовой основе по максимальному количеству единиц запросов в секунду, до которого система выполняла масштабирование в течение часа или 0.1*Tmax, в зависимости от того, какая сумма больше.
Минимальное значение автомасштабирования для макс. числа единиц запросов в секунду для контейнера MAX(4000, highest max RU/s ever provisioned / 10, current storage in GB * 100) с округлением до ближайших 1000 единиц запросов в секунду
Минимальное значение автомасштабирования для макс. числа единиц запросов в секунду для базы данных MAX(4000, highest max RU/s ever provisioned / 10, current storage in GB * 100, 4000 + (MAX(Container count - 25, 0) * 1000)) с округлением до ближайших 1000 единиц запросов в секунду.

Примечание. Если в базе данных содержится более 25 контейнеров, система увеличивает минимальное значение автомасштабирования макс. числа единиц запросов в секунду на 1000 единиц для каждого дополнительного контейнера. Например, если имеется 30 контейнеров, можно задать минимальное значение автомасштабирования макс. числа единиц запросов в секунду для 9000 единиц запросов в секунду (масштабирование в пределах от 900 до 9000 единиц запросов в секунду).

Ограничения по запросам SQL

Cosmos DB поддерживает отправку запросов на элементы с помощью SQL. В следующей таблице описаны ограничения по операторам запроса, например с точки зрения количества предложений или длины запроса.

Ресурс Ограничение по умолчанию
Максимальная длина SQL-запроса 256 KB
Максимальное число объединений на запрос 5 *
Максимальное число определяемых пользователем функций на запрос 10 *
Максимальное число точек на многоугольник 4096
Максимальное число включаемых путей на контейнер 500
Максимальное число исключаемых путей на контейнер 500
Максимальное число свойств в составном индексе 8

* Чтобы увеличить любое из этих ограничений для каждого SQL-запроса, создайте запрос в службу поддержки Azure.

Ограничения, характерные для API MongoDB

Cosmos DB поддерживает протокол проводной связи MongoDB для приложений, написанных для MongoDB. Поддерживаемые команды и версии протокола приведены в разделе Поддерживаемые функции и синтаксис MongoDB.

В следующей таблице перечислены ограничения, относящиеся к поддержке функций MongoDB. Другие ограничения службы, указанные для (основного) API SQL, также применяются и к API MongoDB.

Ресурс Ограничение по умолчанию
Максимальный размер памяти для запросов MongoDB (это ограничение применимо только для версии сервера 3.2) 40 МБ
Максимальное время выполнения для операций MongoDB (для версии сервера 3.2) 15 секунд
Максимальное время выполнения для операций MongoDB (для версий сервера 3.6 и 4.0) 60 секунд
Максимальный уровень вложенности для внедренных объектов и массивов в определениях индекса 6
Интервал ожидания неактивных подключений для закрытия соединений на стороне сервера * 30 минут

* Рекомендуется задать в параметрах драйвера клиентского приложения интервал ожидания неактивных подключений 2–3 минуты, так как по умолчанию интервал ожидания для балансировщика нагрузки Azure составляет 4 минуты. Это гарантирует, что неактивные подключения не будут закрыты промежуточной подсистемой балансировки нагрузки между клиентским компьютером и Azure Cosmos DB.

Ограничения для версии Try Cosmos DB Free

В следующей таблице перечислены ограничения для бесплатной пробной версии Try Azure Cosmos DB for Free.

Ресурс Ограничение по умолчанию
Срок действия бесплатной пробной версии 30 дней (после истечения срока действия можно запросить новую бесплатную пробную версию)
После истечения срока действия все хранимые сведения удаляются.
Максимальное число контейнеров на подписку (SQL, Gremlin, API таблиц) 1
Максимальное число контейнеров на подписку (API Mongo DB) 3
Максимальная пропускная способность на контейнер 5000
Максимальная пропускная способность на базу данных с общей пропускной способностью 20 000
Максимальный общий объем хранилища для учетной записи 10 ГБ

Бесплатная пробная версия Try Cosmos DB поддерживает глобальную дистрибуцию только в центральных регионах США, Северной Европе и Юго-Восточной Азии. Невозможно создать обращения в службу поддержки Azure для учетных записей Try Azure Cosmos DB. Однако поддержка предоставляется подписчикам, которые приобрели план с услугами поддержки.

Ограничения для учетных записей уровня "Бесплатный" в Azure Cosmos DB

В следующей таблице перечислены ограничения для учетных записей Azure Cosmos DB уровня "Бесплатный".

Ресурс Ограничение по умолчанию
Число учетных записей уровня "Бесплатный" для одной подписки Azure 1
Продолжительность действия скидки на основе категории для уровня "Бесплатный" Срок действия учетной записи. Необходимо явное согласие при создании учетной записи.
Максимальное число единиц запросов в секунду для уровня "Бесплатный" 1000 единиц запросов в секунду
Максимальный объем хранилища для уровня "Бесплатный" 25 ГБ
Максимальное число баз данных с общей пропускной способностью 5
Максимальное число контейнеров в базе данных с общей пропускной способностью 25
25 (в учетных записях уровня "Бесплатный" предоставляется не менее 400 ЕЗ для каждой базы данных с общей пропускной способностью и числом контейнеров не более 400).

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

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

Ознакомьтесь с дополнительными сведениями об основных понятиях Cosmos DB: глобальное распределение, секционирование и подготовленная пропускная способность.

Приступая к работе с Azure Cosmos DB, ознакомьтесь с одним из наших кратких руководств: