Пропускную способность можно выделить на уровне контейнера или на уровне базы данных с точки зрения единиц запросов (ЕЗ/с или ЕЗ). В следующей таблице перечислены ограничения в том, что касается хранения и пропускной способности каждого контейнера или базы данных. Служба хранилища — это объединенный объем данных и хранилище индексов.
Максимальное значение ЕЗ/с на один раздел (логический и физический)
10,000
Максимальный объем хранилища для всех элементов в (логическом) разделе
20 ГБ 20 ГБ 2
Максимальное число уникальных (логических) ключей разделов
Не ограничено
Максимальный объем хранилища на контейнер
Не ограничено
Максимальный размер вложения для учетной записи (поддержка функции вложения в данный момент прекращается)
2 ГБ
Минимально необходимое значение ЕЗ/с на 1 ГБ
1 ЕЗ/с
¹ Можно увеличить максимальное количество единиц запросов на контейнер или базу данных, отправив запрос поддержка Azure.
Сведения о рекомендациях по управлению рабочими нагрузками с ключами секций, требующими более высоких ограничений для хранения или пропускной способности, см. в статье "Создание искусственного ключа секции". Если рабочая нагрузка уже достигла предельного размера логического раздела (20 ГБ) в рабочей среде, в качестве долгосрочного решения рекомендуется перепроектировать приложение с использованием другого ключа раздела. Чтобы выделить на это достаточно времени, вы можете запросить временное увеличение предельного размера ключа логического раздела для существующего приложения. Отправьте запрос в службу поддержки Azure и выберите тип квоты Временное увеличение размера ключа логического раздела контейнера. Запрос на временное увеличение — это неокончательное решение, которое не рекомендуется использовать долгосрочно, так как при увеличении ограничения не будут соблюдаться гарантии Соглашения об уровне обслуживания. Чтобы удалить конфигурацию, создайте запрос в службу поддержки и выберите тип квоты Восстановление размера ключа логического раздела контейнера до стандартного (20 ГБ). Такой запрос в службу поддержки можно выполнить после того, как вы либо удалите данные, чтобы соблюсти ограничение на размер логического раздела в 20 ГБ, либо перепроектируете приложение с использованием другого ключа раздела.
Минимальное ограничение пропускной способности
Контейнер Azure Cosmos DB (или общая база данных пропускной способности) с помощью ручной пропускной способности должен иметь минимальную пропускную способность 400 ЕЗ/с. По мере роста контейнера Azure Cosmos DB требует минимальной пропускной способности, чтобы убедиться, что ресурс (база данных или контейнер) имеет достаточный ресурс для своих операций.
Фактический минимальный ЕЗ/с может отличаться в зависимости от конфигурации учетной записи. Метрики Azure Monitor можно использовать для просмотра журнала подготовленной пропускной способности (ЕЗ/с) и хранилища в ресурсе.
Минимальная пропускная способность контейнера
Используйте этот раздел для оценки минимальной пропускной способности контейнера.
Ручная пропускная способность
Чтобы оценить минимальный объем запросов в секунду для контейнера с ручной пропускной способностью, найдите максимальное значение:
400 ЕЗ/с
Текущее хранилище в ГБ * 1 ЕЗ/с
Максимальное значение ЕЗ/с, подготовленное в контейнере / 100
Например, у вас есть контейнер, где подготовлено 400 ЕЗ/с и 0 ГБ хранилища. Вы увеличиваете пропускную способность до 50 000 ЕЗ/с и импортируете 20 ГБ данных. Минимальное значение ЕЗ/с теперь равно MAX(400, 20 * 1 RU/s per GB, 50,000 RU/s / 100) = 500 ЕЗ/с. Со временем хранилище растет до 2000 ГБ. Минимальное значение ЕЗ/с теперь равно MAX(400, 2000 * 1 RU/s per GB, 50,000 / 100) = 2000 ЕЗ/с.
Автомасштабирование пропускной способности
Чтобы оценить минимальное максимальное значение ЕЗ/с, необходимое для контейнера с пропускной способностью автомасштабирования, найдите максимальное значение:
1000 единиц запросов в секунду
Текущий объем хранилища в ГБ * 10 ЕЗ/с
Самый высокий ЕЗ/с, когда-либо подготовленный в контейнере / 10
Например, у вас есть контейнер, подготовленный с 1000 ЕЗ/с и 0 ГБ хранилища. Вы увеличиваете пропускную способность до 50 000 ЕЗ/с и импортируете 20 ГБ данных. Минимальное максимальное значение ЕЗ/с теперь MAX(1000, 20 * 10 RU/s per GB, 50,000 RU/s / 10) = 5000 ЕЗ/с. Со временем хранилище растет до 2000 ГБ. Минимальное максимальное число единиц запросов в секунду составляет MAX(1000, 2000 * 10 RU/s per GB, 50,000 / 10) 20 000 ЕЗ/с.
Минимальная пропускная способность в базу данных с общей пропускной способностью
Используйте этот раздел для оценки минимальной пропускной способности для общего доступа к базе данных между контейнерами.
Ручная пропускная способность
Чтобы оценить минимальные ЕЗ/с, необходимые для базы данных общей пропускной способности с ручной пропускной способностью, найдите максимум:
400 ЕЗ/с
Текущее хранилище в ГБ * 1 ЕЗ/с
Максимальное значение ЕЗ/с, предусмотренное для базы данных / 100
400 + MAX(число контейнеров – 25, 0) * 100 ЕЗ/с
Например, у вас есть база данных с подготовленными 400 ЕЗ/с, 15 ГБ хранилища и 10 контейнерами. Минимальное значение ЕЗ/с равно MAX(400, 15 * 1 RU/s per GB, 400 / 100, 400 + 0 ) = 400 ЕЗ/с. Если в базе данных было 30 контейнеров, минимальное количество ЕЗ/с составит 400 + MAX(30 - 25, 0) * 100 RU/s = 900 ЕЗ/с.
Автомасштабирование пропускной способности
Чтобы оценить минимальное максимальное значение ЕЗ/с, необходимое для общей базы данных пропускной способности с автомасштабированием, найдите максимальное значение:
1000 единиц запросов в секунду
Текущий объем хранилища в ГБ * 10 ЕЗ/с
Самый высокий ЕЗ/с, когда-либо подготовленный в базе данных / 10
1000 + MAX(Число контейнеров - 25, 0) * 1000 ЕЗ/с
Например, у вас есть база данных, подготовленная с 1000 ЕЗ/с, 15 ГБ хранилища и 10 контейнеров. Минимальное значение ЕЗ/с для базы данных автомасштабирования равно MAX(1000, 15 * 10 RU/s per GB, 1000 / 10, 1000 + 0 ) 1000 ЕЗ/с. Если в базе данных было 30 контейнеров, минимальное значение ЕЗ/с будет 1000 + MAX(30 - 25, 0) * 1000 RU/s = 5000 ЕЗ/с.
Ниже приведены минимальные ограничения единиц запросов при использовании подготовленной пропускной способности.
Azure Cosmos DB поддерживает программное масштабирование пропускной способности (ЕЗ/с) на контейнер или базу данных с помощью пакетов SDK или портала.
В зависимости от текущего значения подготовленных ЕЗ/с и параметров ресурсов каждый ресурс может масштабироваться синхронно и моментально от минимального числа ЕЗ/с до значения, превышающего его в 100 раз. Если запрашиваемое значение пропускной способности выходит за пределы диапазона, масштабирование выполняется асинхронно. Асинхронное масштабирование может занять несколько минут в зависимости от запрошенной пропускной способности и размера хранилища данных в контейнере. Подробнее.
Бессерверные приложения
Бессерверная модель позволяет использовать ресурсы Azure Cosmos DB на основе потребления. В следующей таблице перечислены ограничения возможности увеличения ресурсов хранения и пропускной способности каждого контейнера или базы данных. Эти значения не подлежат увеличению. Рекомендуется выделить дополнительные бессерверные учетные записи для получения дополнительных потребностей в хранилище.
Ресурс
Ограничение
Максимальное число ЕЗ/с на контейнер
20,000*
Максимальный объем хранилища для всех элементов в (логическом) разделе
Azure Cosmos DB поддерживает поставщика ресурсов, который предлагает уровень управления для создания, обновления и удаления ресурсов в учетной записи Azure Cosmos DB. Поставщик ресурсов взаимодействует с общим уровнем управления ресурсами Azure, который является службой развертывания и управления для Azure. Вы можете создавать ресурсы Azure Cosmos DB и управлять ими с помощью портал Azure, Azure PowerShell, Azure CLI, Azure Resource Manager и Bicep шаблонов, REST API, пакетов SDK для управления Azure, а также сторонних средств, таких как Terraform и Pulumi.
Этот уровень управления также можно получить из пакетов SDK плоскости данных Azure Cosmos DB, используемых в приложениях для создания ресурсов и управления ими в учетной записи. Пакеты SDK плоскости данных также выполняют запросы уровня управления во время первоначального подключения к службе для выполнения таких действий, как перечисление баз данных и контейнеров, а также запрос ключей учетных записей для проверки подлинности.
Каждая учетная запись Для Azure Cosmos DB содержит master partition все метаданные для учетной записи. Она также имеет небольшой объем пропускной способности для поддержки операций плоскости управления. Запросы уровня управления, которые создают, считывают, обновляют или удаляют эти метаданные, потребляют эту пропускную способность. Если объем пропускной способности, потребляемой операциями плоскости управления, превышает этот объем, операции ограничены скоростью, так же, как операции плоскости данных в Azure Cosmos DB. Однако, в отличие от пропускной способности для операций с данными, пропускная способность главного раздела не может быть увеличена.
Некоторые операции плоскости управления не используют пропускную способность главного раздела, например получение или перечисление ключей. Однако в отличие от запросов к данным в учетной записи Azure Cosmos DB поставщики ресурсов в Azure не предназначены для больших объемов запросов. Операции уровня управления, превышающие документированные ограничения на устойчивых уровнях в течение 5-минутных периодов, могут выполнять регулирование запросов, а также сбои или неполные операции в ресурсах Azure Cosmos DB.
Операции плоскости управления можно отслеживать, перейдя на вкладку "Аналитика" для учетной записи Azure Cosmos DB. Дополнительные сведения см. в разделе "Мониторинг запросов уровня управления". Пользователи также могут настраивать их, использовать Azure Monitor и создавать книгу для мониторинга запросов метаданных и настройки оповещений.
Ограничения ресурсов
В следующей таблице перечислены ограничения ресурсов для каждой подписки или учетной записи.
Ресурс
Ограничение
Максимальное количество учетных записей на подписку
250 по умолчанию NO
Максимальное количество баз данных и контейнеров для каждой учетной записи
500 2
Максимальная пропускная способность, поддерживаемая учетной записью для операций с метаданными
240 ЕЗ/с
Ограничения по умолчанию отличаются для внутренних клиентов Майкрософт. Эти ограничения можно увеличить, создав запрос в службу поддержки Azure до 1000 макс. Cosmos DB резервирует право на удаление всех пустых учетных записей базы данных, т. е. без баз данных и коллекций.
2. Это ограничение нельзя увеличить. Общее количество обоих с учетной записью. (1 база данных и 499 контейнеров, 250 баз данных и 250 контейнеров и т. д.)
Ограничения запросов
В следующей таблице перечислены ограничения запросов на 5 минут, для каждой учетной записи, если иное не указано.
Операция
Ограничение
Максимальный список или получение ключей
500 no
Максимальное количество баз данных и контейнеров
500
Максимальная база данных Get или List и контейнер
500 no
Максимальная подготовленная пропускная способность обновления
25
Максимальная региональная отработка отказа
10 (в час) 2
Максимальное число всех операций (PUT, POST, PATCH, DELETE, GET) не определено выше
500
Пользователи должны использовать однотонный клиент для экземпляров пакета SDK и ключей кэша и ссылок на контейнеры между запросами на время существования этого экземпляра.
2 Региональные отработки отказа применяются только к учетным записям записи в одном регионе. Учетные записи записи в нескольких регионах не требуют или не позволяют изменять регион записи.
Максимальная длина имени базы данных или контейнера
255
Максимальное количество хранимых процедур на контейнер
100 no
Максимальное число определяемых пользователем функций на контейнер
50 no
Максимальное число уникальных ключей на контейнер
10 no
Максимальное число путей на ограничение уникального ключа
16 no
Максимальное значение срока жизни
2147483647
¹ Вы можете увеличить любые из этих ограничений на контейнер, создав запрос в службу поддержки Azure.
Ограничения для каждого элемента
Элемент Azure Cosmos DB может представлять документ в коллекции, строку таблицы или узел или край в графе; в зависимости от используемого API. В следующей таблице показаны ограничения для каждого элемента в Azure Cosmos DB.
Ресурс
Ограничение
Максимальный размер элемента
2 МБ (длина представления JSON UTF-8) NO
Максимальная длина значения ключа раздела
2048 байт (101 байт, если большой ключ секции не включен)
Максимальная длина значения идентификатора
1023 байта
Допустимые символы для значения идентификатора
Разрешены все символы Юникода на стороне службы, кроме "/" и "\". ПРЕДУПРЕЖДЕНИЕ. Но для оптимальной взаимодействия мы НАСТОЯТЕЛЬНО РЕКОМЕНДУЕМ использовать только буквы-числовые символы ASCII только в значении идентификатора. Существует несколько известных ограничений в некоторых версиях пакета SDK Cosmos DB, а также соединителей (ADF, Spark, Kafka и т. д.) и http-драйверов/библиотек и т. д., которые могут препятствовать успешной обработке, если значение идентификатора содержит символы, не являющиеся буквенно-цифровыми символами ASCII. Таким образом, чтобы повысить совместимость, закодируйте значение идентификатора, например с помощью Base64 + настраиваемой кодировки специальных символов, разрешенных в Base64. — если в службе или приложении необходимо поддерживать символы, не относящиеся к буквенно-цифровым символам ASCII.
Максимальное число свойств на элемент
Без практически применимых ограничений
Максимальная длина имени свойства
Без практически применимых ограничений
Максимальная длина значения свойства
Без практически применимых ограничений
Максимальная длина строкового значения свойства
Без практически применимых ограничений
Максимальная длина числового значения свойства
64-разрядное значение IEEE754 с двойной точностью
Максимальный уровень вложенности для внедренных объектов и массивов
Размер большого документа не более 16 МБ поддерживается только в Azure Cosmos DB для MongoDB. Дополнительные сведения см. в документации по функциям.
Для полезной нагрузки элемента не предусмотрены ограничения, например по числу свойств и глубине вложения, за исключением ограничений по длине ключей разделов и значений идентификаторов, а также по общему размеру (2 МБ). Возможно, потребуется настроить политику индексирования для контейнеров с большими или сложными структурами элементов, чтобы снизить потребляемое число единиц запросов. См. статью " Моделирование элементов в Azure Cosmos DB " для реального примера и шаблонов для управления большими элементами.
Максимальное время выполнения для одной операции (например, выполнение хранимой процедуры или получение одной страницы запроса)
5 с
Максимальный размер запроса (например, хранимая процедура, CRUD)
2 МБ
Максимальный размер отклика (например, запрос с разбивкой на страницы)
4 МБ
Максимальное количество операций в пакете транзакции
100
Azure Cosmos DB поддерживает выполнение триггеров во время записи. Служба поддерживает не более одного триггера события перед каждой операцией записи и не более одного триггера после каждой операции записи.
Когда для операции (например, запрос) превышен интервал ожидания или размер отклика, она возвращает клиенту страницу результатов и маркер продолжения, чтобы возобновить выполнение. Практических ограничений по продолжительности выполнения одного запроса на страницах или продолжениях не предусмотрено.
Azure Cosmos DB использует HMAC для авторизации. Вы можете использовать первичный ключ для точного управления доступом к ресурсам. Эти ресурсы могут быть контейнерами, ключами разделов или элементами. В следующей таблице перечислены ограничения для маркеров авторизации в Azure Cosmos DB.
Ресурс
Ограничение
Максимальный срок действия первичного маркера
15 мин.
Минимальный срок действия маркера ресурса
10 мин.
Максимальный срок действия маркера ресурса
24 ч по умолчанию no
Максимальная расфазировка тактовых сигналов для авторизации токена
Максимальное число единиц запросов в секунду, до которого возможно масштабирование системы
Tmax, максимальное число единиц запросов в секунду, заданное пользователем
Минимальное число единиц запросов в секунду, до которого возможно масштабирование системы
0.1 * Tmax
Текущее число единиц запросов в секунду, до которого возможно масштабирование системы
0.1*Tmax <= T <= Tmax, с учетом данных по использованию
Минимальное число единиц запросов в час, включаемых в счет
0.1 * Tmax
Выставление счетов выполняется на почасовой основе по максимальному количеству единиц запросов в секунду, до которого система выполняла масштабирование в течение часа, или по 0.1*Tmax, в зависимости от того, какое значение больше.
Минимальное значение автомасштабирования для макс. числа единиц запросов в секунду для контейнера
MAX(1000, highest max RU/s ever provisioned / 10, current storage in GB * 10) округляется до ближайшего 1000 ЕЗ/с
Минимальное значение автомасштабирования для макс. числа единиц запросов в секунду для базы данных
MAX(1000, highest max RU/s ever provisioned / 10, current storage in GB * 10, 1000 + (MAX(Container count - 25, 0) * 1000)), округленный до ближайшего 1000 ЕЗ/с.
Примечание. Если в базе данных содержится более 25 контейнеров, система увеличивает минимальное значение автомасштабирования макс. числа единиц запросов в секунду на 1000 единиц для каждого дополнительного контейнера. Например, если имеется 30 контейнеров, можно задать минимальное значение автомасштабирования макс. числа единиц запросов в секунду для 6000 единиц запросов в секунду (масштабирование в пределах от 600 до 6000 единиц запросов в секунду).
Ограничения по запросам SQL
Azure Cosmos DB поддерживает запросы элементов с помощью SQL. В следующей таблице описаны ограничения по операторам запроса, например с точки зрения количества предложений или длины запроса.
Ресурс
Ограничение
Максимальная длина SQL-запроса
512 КБ
Максимальное число объединений на запрос
10 no
Максимальное число определяемых пользователем функций на запрос
10 no
Максимальное число точек на многоугольник
4096
Максимальное явное включение путей для каждого контейнера
1500 no
Максимальное число явных исключенных путей для каждого контейнера
Azure Cosmos DB поддерживает протокол подключения MongoDB для приложений, написанных в MongoDB. Поддерживаемые команды и версии протоколов можно найти в разделе Поддерживаемые функции и синтаксис MongoDB.
В следующей таблице перечислены ограничения, связанные с поддержкой функций MongoDB. Другие ограничения служб, упомянутые для API noSQL, также применяются к API для MongoDB.
Ресурс
Ограничение
Максимальный размер документа
16 МБ (длина представления JSON UTF-8) 2
Максимальный объем памяти запроса MongoDB (это ограничение применяется только к версии сервера 3.2)
40 МБ
Максимальное время выполнения операций MongoDB (для версии сервера 3.2)
15 секунд
Максимальное время выполнения для операций MongoDB (для версий сервера 3.6 и 4.0)
60 секунд
Максимальный уровень вложенности для внедренных объектов или массивов в определениях индексов
6
Время ожидания простоя подключения для закрытия подключения на стороне сервера 2
30 минут
Ограничение времени для оболочки MongoDB в портал Azure
120 минут в течение 24 часов
Для больших размеров документов до 16 МБ требуется включение функций в портал Azure. Дополнительные сведения см. в документации по функциям.
2–3 минуты для клиентских приложений рекомендуется задать время ожидания простоя подключения в параметрах драйвера, так как время ожидания по умолчанию для Azure LoadBalancer составляет 4 минуты. Это время ожидания гарантирует, что промежуточный балансировщик нагрузки не закрывает подключения между клиентским компьютером и Azure Cosmos DB.
Пробная версия бесплатных ограничений Azure Cosmos DB
В таблице ниже перечислены ограничения для бесплатной пробной версии Azure Cosmos DB.
Ресурс
Ограничение
Срок действия бесплатной пробной версии
30 дней (после истечения срока действия можно запросить новую пробную версию) После истечения срока действия все хранимые сведения удаляются.
Максимальные контейнеры для каждой подписки (NoSQL, Gremlin, API для таблицы)
1
Максимальное количество контейнеров на подписку (API для MongoDB)
3
Максимальная пропускная способность на контейнер
5000
Максимальная пропускная способность на базу данных с общей пропускной способностью
20000
Максимальный общий объем хранилища для учетной записи
10 ГБ
Пробная версия Azure Cosmos DB поддерживает глобальное распространение только в Центральной части США, Северной Европе и Юго-Восточной Азии. Невозможно создать обращения в службу поддержки Azure для учетных записей Try Azure Cosmos DB. Однако поддержка предоставляется подписчикам, которые приобрели план с услугами поддержки.
Ограничения для учетных записей уровня "Бесплатный" в Azure Cosmos DB
Число учетных записей уровня "Бесплатный" для одной подписки Azure
1
Продолжительность действия скидки на основе категории для уровня "Бесплатный"
Срок действия учетной записи. При создании учетной записи необходимо явное согласие.
Максимальное число единиц запросов в секунду для уровня "Бесплатный"
1000 единиц запросов в секунду
Максимальный объем хранилища для уровня "Бесплатный"
25 ГБ
Максимальное число баз данных с общей пропускной способностью
5
Максимальное число контейнеров в базе данных с общей пропускной способностью
25 25 (в учетных записях уровня "Бесплатный" предоставляется не менее 400 ЕЗ для каждой базы данных с общей пропускной способностью и числом контейнеров не более 400).
Помимо предыдущей таблицы ограничения для каждой учетной записи также применяются к учетным записям уровня "Бесплатный". Дополнительные сведения см. в статье о создании учетной записи уровня "Бесплатный".
Создавайте эффективные запросы, создавайте политики индексирования, управляйте и подготавливайте ресурсы в API SQL и пакете SDK с помощью Microsoft Azure Cosmos DB.