Cuotas de servicio de Azure Cosmos DB
SE APLICA A:
SQL API
Cassandra API
Gremlin API
Table API
Azure Cosmos DB API para MongoDB
En este artículo se proporciona una introducción a las cuotas predeterminadas que se ofrecen a distintos recursos en Azure Cosmos DB.
Operaciones de base de datos y almacenamiento
Después de crear una cuenta de Azure Cosmos DB en su suscripción a Azure, puede administrar los datos en su cuenta mediante la creación de bases de datos, contenedores y elementos.
Rendimiento aprovisionado
Puede aprovisionar el rendimiento en un nivel de contenedor o de base de datos en términos de unidades de solicitud (RU/s o RU). En la tabla siguiente se enumeran los límites de almacenamiento y rendimiento por contenedor y base de datos. El almacenamiento hace referencia a la cantidad combinada de almacenamiento de índices y datos.
| Recurso | Límite predeterminado |
|---|---|
| Número máximo de RU por contenedor (modo aprovisionado de rendimiento dedicado) | 1 000 000 de forma predeterminada. Para aumentarlo, puede rellenar una incidencia de soporte técnico de Azure. |
| Número máximo de RU por base de datos (modo aprovisionado de rendimiento dedicado) | 1 000 000 de forma predeterminada. Para aumentarlo, puede rellenar una incidencia de soporte técnico de Azure. |
| Número máximo de RU por partición (lógica y física) | 10 000 |
| Almacenamiento máximo en todos los elementos por partición (lógica) | 20 GB |
| Número máximo de claves de partición (lógicas) distintas | Sin límite |
| Almacenamiento máximo por contenedor | Sin límite |
| Almacenamiento máximo por base de datos | Sin límite |
| Tamaño máximo de datos adjuntos por cuenta (la característica de datos adjuntos está en desuso) | 2 GB |
| Mínimo de RU/s requeridas por 1 GB | 10 RU/s Nota: este mínimo puede reducirse si la cuenta es válida para nuestro programa de "almacenamiento alto y bajo rendimiento" |
Nota
Para obtener información sobre el procedimiento recomendado para administrar las cargas de trabajo que tienen claves de partición que requieren límites más altos para el almacenamiento o el rendimiento, consulte Crear una clave de partición sintética .
Limites de rendimiento mínimo
Un contenedor de Cosmos (o una base de datos de rendimiento compartido) debe tener un rendimiento mínimo de 400 RU/s. A medida que el contenedor crece, Cosmos DB requiere un rendimiento mínimo para asegurarse de que la base de datos o el contenedor tiene los recursos suficientes para sus operaciones.
El rendimiento actual y mínimo de un contenedor o una base de datos se puede recuperar desde Azure Portal o los SDK. Para obtener más información, consulte Aprovisionar rendimiento en contenedores y bases de datos.
El valor mínimo real de RU/s puede variar en función de la configuración de la cuenta. Puede usar métricas de Azure Monitor para ver el historial de rendimiento aprovisionado (RU/s) y el almacenamiento en un recurso.
Rendimiento mínimo en el contenedor
Para calcular el rendimiento mínimo necesario de un contenedor con un rendimiento manual, busque el valor máximo de:
- 400 RU/s
- Almacenamiento actual en GB * 10 RU/s
- El valor de RU/s más alto que nunca aprovisionado en el contenedor / 100
Ejemplo: Supongamos que tiene un contenedor aprovisionado con 400 RU/s y 0 GB de almacenamiento. Aumente el rendimiento a 50 000 RU/s e importe 20 GB de datos. El valor mínimo de RU/s ahora es MAX(400, 20 * 10 RU/s per GB, 50,000 RU/s / 100) = 500 RU/s. Con el tiempo, el almacenamiento crece hasta 200 GB. El valor mínimo de RU/s ahora es MAX(400, 200 * 10 RU/s per GB, 50,000 / 100) = 2000 RU/s.
Nota: el rendimiento mínimo de 10 RU/s por GB de almacenamiento puede reducirse si la cuenta es válida para nuestro programa de "almacenamiento alto y bajo rendimiento".
Rendimiento mínimo en base de datos de rendimiento compartido
Para calcular el rendimiento mínimo necesario de una base de datos de rendimiento compartido con un rendimiento manual, busque el valor máximo de:
- 400 RU/s
- Almacenamiento actual en GB * 10 RU/s
- El valor de RU/s más alto que nunca aprovisionado en la base de datos / 100
- 400 + MAX (cantidad de contenedores: 25, 0) * 100 RU/s
Ejemplo: Supongamos que tiene una base de datos aprovisionada con 400 RU/s, 15 GB de almacenamiento y 10 contenedores. El valor mínimo de RU/s es MAX(400, 15 * 10 RU/s per GB, 400 / 100, 400 + 0 ) = 400 RU/s. Si hubiera 30 contenedores en la base de datos, el valor mínimo de RU/s sería 400 + MAX(30 - 25, 0) * 100 RU/s = 900 RU/s.
Nota: el rendimiento mínimo de 10 RU/s por GB de almacenamiento puede reducirse si la cuenta es válida para nuestro programa de "almacenamiento alto y bajo rendimiento".
En resumen, los límites de RU de aprovisionamiento mínimos son los siguientes.
| Recurso | Límite predeterminado |
|---|---|
| Número mínimo de RU por contenedor (modo aprovisionado de rendimiento dedicado) | 400 |
| Número mínimo de RU por base de datos (modo aprovisionado de rendimiento compartido) | 400 RU/s para los 25 primeros contenedores. Más adelante, 100 RU/s adicionales para cada contenedor. |
Cosmos DB admite el escalado mediante programación de rendimiento (RU/s) por contenedor o base de datos a través de los SDK o el portal.
En función del valor de RU/s actual aprovisionado y la configuración de los recursos, cada recurso puede escalar de manera sincrónica e inmediata entre el valor mínimo de RU/s hasta cien veces este valor mínimo. Si el valor de rendimiento solicitado está fuera del intervalo, el escalado se realiza asincrónicamente. El escalado asincrónico puede tardar de algunos minutos a varias horas en completarse según el rendimiento solicitado y el tamaño del almacenamiento de datos en el contenedor.
Sin servidor
Sin servidor permite usar los recursos de Azure Cosmos DB de una forma basada en el consumo. En la tabla siguiente se enumeran los límites de capacidad de ráfaga de rendimiento y almacenamiento por contenedor y base de datos.
| Resource | Límite |
|---|---|
| Máximo de RU/s por contenedor | 5.000 |
| Almacenamiento máximo en todos los elementos por partición (lógica) | 20 GB |
| Número máximo de claves de partición (lógicas) distintas | Sin límite |
| Almacenamiento máximo por contenedor | 50 GB |
Operaciones del plano de control
Puede aprovisionar y administrar su cuenta de Azure Cosmos mediante Azure Portal, Azure PowerShell, la CLI de Azure y plantillas de Azure Resource Manager. En la tabla siguiente se enumeran los límites por suscripción, cuenta y número de operaciones.
| Recurso | Límite predeterminado |
|---|---|
| Número máximo de cuentas de base de datos por suscripción | 50 de forma predeterminada. Para aumentarlo, puede rellenar una incidencia de Soporte técnico de Azure de hasta 1000 como máximo. |
| Número máximo de conmutaciones por error regionales | 1/hora de forma predeterminada. Para aumentarlo, puede rellenar una incidencia de soporte técnico de Azure. |
Nota
Las conmutaciones por error regionales solo se aplican a las cuentas de escritura de una sola región. Las cuentas de escritura de varias regiones no requieren ni tienen ningún límite para el cambio de la región de escritura.
Cosmos DB crea automáticamente copias de seguridad de los datos a intervalos regulares. Para obtener más información sobre los intervalos y las ventanas de retención de copias de seguridad, consulte Copias de seguridad en línea y restauración de datos a petición en Azure Cosmos DB.
Límites por cuenta
Rendimiento aprovisionado
| Resource | Límite predeterminado |
|---|---|
| Número máximo de bases de datos | 500 |
| Número máximo de contenedores por base de datos con rendimiento compartido | 25 |
| Número máximo de contenedores por base de datos o cuenta con rendimiento dedicado | 500 |
| Número máximo de regiones | Sin límite (todas las regiones de Azure) |
Sin servidor
| Resource | Límite |
|---|---|
| Número máximo de contenedores por cuenta | 100 |
| Número máximo de regiones | 1 (cualquier región de Azure) |
Límites de cada contenedor
En función de la API que utilice, un contenedor de Azure Cosmos puede representar una colección, una tabla o un grafo. Los contenedores admiten configuraciones para las restricciones de clave única, los procedimientos almacenados, los desencadenadores y las funciones definidas por el usuario (UDF) y la directiva de indexación. En la tabla siguiente se enumeran los límites específicos de las configuraciones dentro de un contenedor.
| Recurso | Límite predeterminado |
|---|---|
| Longitud máxima del nombre de la base de datos o el contenedor | 255 |
| Procedimientos almacenados máximos por contenedor | 100 * |
| Número máximo de UDF por contenedor | 50 * |
| Número máximo de rutas de acceso en la directiva de indexación | 100 * |
| Número máximo de claves únicas por contenedor | 10 * |
| Número máximo de rutas de acceso por restricción de clave única | 16 * |
| Valor máximo de TTL | 2147483647 |
* Para aumentar cualquiera de estos límites por contenedor, cree una solicitud de Soporte técnico de Azure.
Límites por elemento
En función de la API que use, un elemento de Azure Cosmos puede representar un documento en una colección, una fila en una tabla o un nodo o un borde en un grafo. En la tabla siguiente, se muestran los límites por elemento de Cosmos DB.
| Recurso | Límite predeterminado |
|---|---|
| Tamaño máximo de un elemento | 2 MB (longitud en UTF-8 de la representación JSON) |
| Longitud máxima del valor de la clave de partición | 2048 bytes |
| Longitud máxima del valor de id. | 1023 bytes |
| Número máximo de propiedades por elemento | Ningún límite práctico |
| Longitud máxima del nombre de la propiedad | Ningún límite práctico |
| Longitud máxima del nombre de la propiedad | Ningún límite práctico |
| Longitud máxima del valor de propiedad de la cadena | Ningún límite práctico |
| Longitud máxima del valor de propiedad numérico | IEEE754 de doble precisión de 64 bits |
| Nivel máximo de anidamiento para objetos o matrices insertados | 128 |
| Valor máximo de TTL | 2147483647 |
No hay ninguna restricción en las cargas de elementos, como el número de propiedades o la profundidad de anidamiento, salvo las restricciones de longitud en los valores de identificador y clave de partición y la restricción de tamaño general de 2 MB. Es posible que deba configurar la directiva de indexación para contenedores con estructuras de elementos grandes o complejas a fin de reducir el consumo de RU. Consulte Modelar elementos en Cosmos DB para obtener un ejemplo real y los patrones para administrar elementos de gran tamaño.
Límites por solicitud
Azure Cosmos DB admite operaciones CRUD y de consulta con recursos como contenedores, elementos y bases de datos. También admite solicitudes de lotes transaccionales con varios elementos con la misma clave de partición en un contenedor.
| Recurso | Límite predeterminado |
|---|---|
| Tiempo máximo de ejecución para una sola operación (por ejemplo, la ejecución de un procedimiento almacenado o la recuperación de una página de consulta única) | 5 segundos |
| Tamaño máximo de la solicitud (por ejemplo, procedimiento almacenado, CRUD) | 2 MB |
| Tamaño máximo de respuesta (por ejemplo, consulta paginada) | 4 MB |
| Número máximo de operaciones en un lote transaccional | 100 |
Una vez que una operación como una consulta alcanza el límite del tamaño de respuesta o del tiempo de espera de ejecución, esta devuelve una página de resultados y un token de continuación al cliente para reanudar la ejecución. No hay ningún límite práctico en la duración de la ejecución de una sola consulta en páginas o continuaciones.
Cosmos DB utiliza HMAC para la autorización. Puede usar una clave principal o tokens de recursos para un control de acceso específico a recursos como contenedores, claves de partición o elementos. En la tabla siguiente se enumeran los límites de los tokens de autorización de Cosmos DB.
| Recurso | Límite predeterminado |
|---|---|
| Tiempo de expiración máximo del token principal | 15 minutos |
| Tiempo de expiración mínimo del token maestro | 10 min |
| Tiempo de expiración máximo del token de recursos | 24 horas de forma predeterminada. Para aumentarlo, puede rellenar una incidencia de soporte técnico de Azure. |
| Distorsión máxima del reloj para la autorización del token | 15 minutos |
Cosmos DB admite la ejecución de desencadenadores durante las escrituras. El servicio admite un máximo de un desencadenador previo y un desencadenador posterior por operación de escritura.
Límites de solicitudes de metadatos
Azure Cosmos DB mantiene los metadatos del sistema para cada cuenta. Estos metadatos permiten enumerar colecciones, bases de datos, otros recursos de Azure Cosmos DB y sus configuraciones de forma gratuita.
| Recurso | Límite predeterminado |
|---|---|
| Tasa máxima de creación de colecciones por minuto | 100 |
| Tasa máxima de creación de bases de datos por minuto | 100 |
| Tasa máxima de actualización del rendimiento aprovisionado por minuto | 5 |
| Rendimiento máximo que una cuenta admite para las operaciones de metadatos | 240 RU/s |
Límites del rendimiento aprovisionado de escalabilidad automática
Consulte este artículo sobre escalabilidad automática y las preguntas frecuentes para obtener una explicación más detallada de los límites de almacenamiento y rendimiento con escalabilidad automática.
| Recurso | Límite predeterminado |
|---|---|
| Número máximo de RU/s a los que el sistema se puede escalar | Tmax, el número máximo de RU/s de escalabilidad automática establecido por el usuario |
| Número mínimo de RU/s a los que el sistema se puede escalar | 0.1 * Tmax |
| RU/s actuales a los que se escala el sistema | 0.1*Tmax <= T <= Tmax, en función del uso |
| Número mínimo de RU/s facturables por hora | 0.1 * Tmax La facturación se realiza por hora, de modo que se le cobra el número máximo de RU/s a los que se escaló el sistema durante esa hora, o 0.1*Tmax, lo que sea más alto. |
| Valor mínimo del número máximo de RU/s de escalabilidad automática para un contenedor | MAX(4000, highest max RU/s ever provisioned / 10, current storage in GB * 100) redondeado a los 1000 RU/s más cercanos. |
| Valor mínimo del número máximo de RU/s de escalabilidad automática para una base de datos | MAX(4000, highest max RU/s ever provisioned / 10, current storage in GB * 100, 4000 + (MAX(Container count - 25, 0) * 1000)) redondeado a los 1000 RU/s más cercanos. Nota: Si la base de datos tiene más de 25 contenedores, el sistema incrementa el valor mínimo de número máximo de RU/s de escalabilidad automática en 1000 RU/s por cada contenedor adicional. Por ejemplo, si tiene 30 contenedores, el valor más bajo de número máximo de RU/s de escalabilidad automática que puede establecer es 9000 RU/s (para un escalado entre 900 y 9000 RU/s). |
Límites de la consulta SQL
Cosmos DB admite la consulta de elementos mediante SQL. En la tabla siguiente se describen las restricciones en las instrucciones de consulta, por ejemplo, en relación con el número de cláusulas o la longitud de la consulta.
| Recurso | Límite predeterminado |
|---|---|
| Longitud máxima de la consulta SQL | 256 KB |
| Número máximo de cláusulas JOIN por consulta | 5 * |
| Número máximo de UDF por consulta | 10 * |
| Número máximo de puntos por polígono | 4096 |
| Número máximo de rutas de acceso incluidas por contenedor | 500 |
| Número máximo de rutas de acceso excluidas por contenedor | 500 |
| Propiedades máximas de un índice compuesto | 8 |
* Para aumentar cualquiera de estos límites de consulta SQL, cree una solicitud de Soporte técnico de Azure.
Límites específicos de la API de MongoDB
Cosmos DB admite el protocolo de conexión de MongoDB para las aplicaciones escritas para MongoDB. Puede encontrar los comandos admitidos y las versiones del protocolo en Sintaxis y características que admite MongoDB.
En la tabla siguiente se enumeran los límites específicos a la compatibilidad con características de MongoDB. Los otros límites de servicio que se mencionan con la API de SQL (básica) también se aplican a la API de MongoDB.
| Recurso | Límite predeterminado |
|---|---|
| Tamaño máximo de la memoria de consulta de MongoDB (esta limitación es solo para la versión de servidor 3.2) | 40 MB |
| Tiempo de ejecución máximo para las operaciones de MongoDB (para la versión de servidor 3.2) | 15 segundos |
| Tiempo de ejecución máximo de las operaciones de MongoDB (para la versión de servidor 3.6 y 4.0) | 60 segundos |
| Nivel máximo de anidamiento de objetos o matrices insertados en las definiciones de índice. | 6 |
| Tiempo de espera de conexión inactiva para el cierre de la conexión del lado servidor* | 30 minutos |
* Se recomienda que las aplicaciones cliente establezcan el tiempo de espera de conexión inactiva en la configuración del controlador en 2-3 minutos, ya que el tiempo de espera predeterminado de Azure LoadBalancer es de 4 minutos. Este tiempo de espera garantiza que un equilibrador de carga intermedio entre la máquina cliente y Azure Cosmos DB no cierre las conexiones inactivas.
Pruebe los límites gratuitos de Cosmos DB
En la tabla siguiente se enumeran los límites de la prueba de encontrará en Pruebe gratis Azure Cosmos DB.
| Recurso | Límite predeterminado |
|---|---|
| Duración de la prueba | 30 días (se puede solicitar una nueva prueba después de su expiración) Después de la expiración, se elimina la información almacenada. |
| Número máximo de contenedores por suscripción (API, Gremlin y Table API) | 1 |
| Número máximo de contenedores por suscripción (API de MongoDB) | 3 |
| Rendimiento máximo por contenedor | 5000 |
| Rendimiento máximo por base de datos de rendimiento compartido | 20000 |
| Almacenamiento total máximo por cuenta | 10 GB |
La Prueba de Cosmos DB admite la distribución global solo en las regiones de Centro de EE. UU., el Norte de Europa y el Sudeste de Asia. No se pueden crear incidencias de soporte técnico de Azure para las cuentas de prueba de Azure Cosmos DB. Sin embargo, se ofrece soporte técnico para aquellos suscriptores que cuenten con planes de soporte técnico existentes.
Límites de las cuentas de nivel Gratis de Azure Cosmos DB
En la tabla siguiente se enumeran los límites de las cuentas de nivel Gratis de Azure Cosmos DB.
| Recurso | Límite predeterminado |
|---|---|
| Número de cuentas de nivel Gratis por suscripción de Azure | 1 |
| Duración del descuento por nivel Gratis | Vigencia de la cuenta. Debe participar durante la creación de la cuenta. |
| Número máximo de RU/s gratis | 1000 RU/s |
| Almacenamiento máximo gratis | 25 GB |
| Número máximo de bases de datos de rendimiento compartido | 5 |
| Número máximo de contenedores en una base de datos de rendimiento compartido | 25 En las cuentas de nivel Gratis, el número mínimo de RU/s para una base de datos de rendimiento compartido con un máximo de 25 contenedores es 400 RU/s. |
Además de lo anterior, los límites por cuenta también se aplican a las cuentas de nivel Gratis. Para más información, consulte el artículo sobre la creación de una cuenta de nivel Gratis.
Pasos siguientes
Obtenga más información acerca de los conceptos básicos de distribución global, creación de particiones y rendimiento aprovisionado de Cosmos DB.
Comience a usar Azure Cosmos DB con una de nuestras guías rápidas:
- Introducción a SQL API de Azure Cosmos DB
- Introducción a la API de Azure Cosmos DB para MongoDB
- Introducción a la API Cassandra de Azure Cosmos DB
- Introducción a Gremlin API de Azure Cosmos DB
- Introducción a Table API de Azure Cosmos DB
- ¿Intenta planear la capacidad de una migración a Azure Cosmos DB? Para ello, puede usar información sobre el clúster de bases de datos existente.
- Si lo único que sabe es el número de núcleos virtuales y servidores del clúster de bases de datos existente, lea sobre el cálculo de unidades de solicitud mediante núcleos o CPU virtuales.
- Si conoce la velocidad que suelen tener las solicitudes de la carga de trabajo de la base de datos actual, lea este artículo para calcular las unidades de solicitud utilizando la herramienta de planeamiento de capacidad de Azure Cosmos DB.