Единицы запросов в базе данных Azure Cosmos DBRequest Units in Azure Cosmos DB

При использовании Azure Cosmos DB вы платите на почасовой основе за пропускную способность, которую предоставляете, и за ресурсы хранения, которое вы потребляете.With Azure Cosmos DB, you pay for the throughput you provision and the storage you consume on an hourly basis. Обеспечьте пропускную способность и убедитесь, что для базы данных Azure Cosmos всегда предоставляется достаточно системных ресурсов.Throughput must be provisioned to ensure that sufficient system resources are available for your Azure Cosmos database at all times. Требуется достаточно ресурсов для удовлетворения или превышения Azure Cosmos DB соглашений об уровне обслуживания.You need enough resources to meet or exceed the Azure Cosmos DB SLAs.

Azure Cosmos DB поддерживает многие интерфейсы API, такие как SQL, MongoDB, Cassandra, Gremlin и Таблицы.Azure Cosmos DB supports many APIs, such as SQL, MongoDB, Cassandra, Gremlin, and Table. У каждого API есть собственный набор операций базы данных,Each API has its own set of database operations. начиная от простого считывания и записи точек и заканчивая сложными запросами.These operations range from simple point reads and writes to complex queries. Каждая операция базы данных потребляет системные ресурсы. Потребление зависит от сложности операции.Each database operation consumes system resources based on the complexity of the operation.

Затраты на все операции с базами данных нормализованы с помощью Azure Cosmos DB и выражаются единицами запросов (или, в качестве коротких).The cost of all database operations is normalized by Azure Cosmos DB and is expressed by Request Units (or RUs, for short). Вы можете считать ЕЗ/с в качестве пропускной способности.You can think of RUs per second as the currency for throughput. ЕЗ/с — это единица, основанная на тарифе.RUs per second is a rate-based currency. Он абстрагирует системные ресурсы (например, ЦП, операции ввода-вывода в секунду и память), необходимые для выполнения операций базы данных, поддерживаемых Azure Cosmos DB.It abstracts the system resources such as CPU, IOPS, and memory that are required to perform the database operations supported by Azure Cosmos DB. Для хранения каждого 1 ГБ данных требуется не менее 10 единиц запросов в секунду.A minimum of 10 RU/s is required to store each 1 GB of data.

Затраты на чтение точки для элемента размером 1 КБ — 1 единица запроса (или 1 RU).The cost to do a point read for a 1 KB item is 1 Request Unit (or 1 RU). Цены на остальные операции с базой данных выражаются в ЕЗ аналогичным образом.All other database operations are similarly assigned a cost using RUs. Независимо от того, какие API вы используете для взаимодействия с контейнером Azure Cosmos, затраты всегда измеряются в ЕЗ.No matter which API you use to interact with your Azure Cosmos container, costs are always measured by RUs. Является ли операция базы данных записью, чтением точки или запросом, затраты всегда измеряются в версии-получателей.Whether the database operation is a write, point read, or query, costs are always measured in RUs.

Обобщенная схема использования ЕЗ представлена на следующем изображении.The following image shows the high-level idea of RUs:

Операции с базой данных потребляют единицы запроса

Чтобы обеспечить планирование пропускной способности и управление ею, Azure Cosmos DB гарантирует, что количество ЕЗ для операции базы данных над определенным набором данных является детерминированным.To manage and plan capacity, Azure Cosmos DB ensures that the number of RUs for a given database operation over a given dataset is deterministic. Вы можете изучить заголовок ответа, чтобы отслеживать количество ЕЗ, потребляемых любой операцией базы данных.You can examine the response header to track the number of RUs that are consumed by any database operation. Если вы понимаете факторы, влияющие на сборы за единицу и требования к пропускной способности вашего приложения, можно эффективно выполнять ваши приложения.When you understand the factors that affect RU charges and your application's throughput requirements, you can run your application cost effectively.

Количество ЕЗ для приложения подготавливается на основе данных, получаемых в секунду, с шагом в 100 ЕЗ/с.You provision the number of RUs for your application on a per-second basis in increments of 100 RUs per second. Чтобы масштабировать подготовленную пропускную способность для приложения, вы можете увеличить или уменьшить количество единиц запросов в любое время.To scale the provisioned throughput for your application, you can increase or decrease the number of RUs at any time. Масштабирование выполняется шагами по 100 ЕЗ.You can scale in increments or decrements of 100 RUs. Это можно сделать программным способом или с помощью портала Azure.You can make your changes either programmatically or by using the Azure portal. Счет выставляется на почасовой основе.You are billed on an hourly basis.

Вы можете обеспечить пропускную способность с помощью двух различных уровней детализаций:You can provision throughput at two distinct granularities:

Рекомендации по оценке необходимого количества единиц запросовRequest Unit considerations

Оценивая число ЕЗ в секунду для инициализации, учитывайте следующие факторы:While you estimate the number of RUs per second to provision, consider the following factors:

  • Размер элемента. По мере увеличения размера элемента число ЕЗ, потребляемое для чтения или записи элемента, также увеличивается.Item size: As the size of an item increases, the number of RUs consumed to read or write the item also increases.

  • Индексация элемента. По умолчанию каждый элемент индексируется автоматически.Item indexing: By default, each item is automatically indexed. Если вы решили не индексировать некоторые элементы в контейнере, потребляется меньше ЕЗ.Fewer RUs are consumed if you choose not to index some of your items in a container.

  • Количество свойств элемента. Предполагая, что индексирование выполняется по умолчанию для всех свойств, количество ЕЗ, потребляемых для записи элемента, увеличивается по мере увеличения количества свойств элемента.Item property count: Assuming the default indexing is on all properties, the number of RUs consumed to write an item increases as the item property count increases.

  • Индексируемые свойства. Свойства, которые индексируются по умолчанию, определяются политикой индексирования для каждого контейнера.Indexed properties: An index policy on each container determines which properties are indexed by default. Чтобы сократить потребление ЕЗ в операциях записи, ограничьте количество индексированных свойств.To reduce the RU consumption for write operations, limit the number of indexed properties.

  • Согласованность данных. уровни согласованности строгого и ограниченного устаревания требуют примерно в два раза больше, чем при выполнении операций чтения, по сравнению с другими ослабленными уровнями согласованности.Data consistency: The strong and bounded staleness consistency levels consume approximately two times more RUs while performing read operations when compared to that of other relaxed consistency levels.

  • Тип операций чтения: затраты на считывание точек значительно меньше, чем запросы.Type of reads: Point reads cost significantly fewer RU's than queries.

  • Шаблоны запросов. Сложность запроса влияет на количество ЕЗ, потребляемых операцией.Query patterns: The complexity of a query affects how many RUs are consumed for an operation. Факторы, которые влияют на стоимость операций запросов:Factors that affect the cost of query operations include:

    • Количество результатов запроса.The number of query results
    • Количество предикатов.The number of predicates
    • Характер предикатов.The nature of the predicates
    • Количество определяемых пользователем функций.The number of user-defined functions
    • Размер исходных данных.The size of the source data
    • Размер результирующего набора.The size of the result set
    • Проекции.Projections

    Azure Cosmos DB гарантирует, что при повторном выполнении один и тот же запрос к тем же данным всегда будет стоить то же количество ЕЗ.Azure Cosmos DB guarantees that the same query on the same data always costs the same number of RUs on repeated executions.

  • Использование скриптов: как и в случае с запросами, хранимые процедуры и триггеры используют в базе данных, которая усложняет выполнение операций.Script usage: As with queries, stored procedures and triggers consume RUs based on the complexity of the operations that are performed. При разработке приложения проверяйте заголовки со стоимостью запросов, чтобы лучше понять, как ресурсы производительности используются каждой из операций.As you develop your application, inspect the request charge header to better understand how much RU capacity each operation consumes.

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