0Pricing
Cloud & IT Cert Prep · Lección

Azure Cosmos DB: NoSQL global

Explore la arquitectura multimodelo y multirregional de Cosmos DB, comprenda las claves de partición y elija el nivel de coherencia adecuado para las necesidades de su aplicación.

Azure Cosmos DB: NoSQL global es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.

¿Qué es Azure Cosmos DB?

Azure Cosmos DB es el servicio de base de datos NoSQL multimodelo y distribuido globalmente de Microsoft. Está diseñado para ofrecer una latencia de lectura y escritura de milisegundos de un solo dígito a cualquier escala y en cualquier lugar del mundo. A diferencia de las bases de datos tradicionales, limitadas a una sola región, Cosmos DB puede replicar datos de forma transparente en decenas de regiones de Azure simultáneamente.

Compatibilidad con API multimodelo

Cosmos DB admite varias API de bases de datos a través de un único servicio. Puede utilizar la API NoSQL nativa (documentos JSON), la API de MongoDB para aplicaciones creadas con controladores de MongoDB, la API de Apache Cassandra para cargas de trabajo de columnas anchas, la API de Gremlin para datos de grafos y la API de tablas para datos de clave-valor. Cada API expone el motor subyacente de Cosmos DB mediante una interfaz conocida.

Cuentas, bases de datos y contenedores

La jerarquía de recursos de Cosmos DB consta de tres niveles. Una cuenta es el recurso de nivel superior que define la lista de regiones de replicación y el nivel de coherencia. Dentro de una cuenta, se crean bases de datos como espacios de nombres lógicos. Dentro de cada base de datos, se crean contenedores: la unidad que contiene los elementos (documentos) y en la que se aprovisiona el rendimiento.

# Create a Cosmos DB account with the NoSQL API
az cosmosdb create \
  --name mycosmosaccount \
  --resource-group myRG \
  --kind GlobalDocumentDB \
  --locations regionName=eastus failoverPriority=0 isZoneRedundant=true

# Create a database
az cosmosdb sql database create \
  --account-name mycosmosaccount \
  --resource-group myRG \
  --name myDatabase

Claves de partición: base del escalado

Una clave de partición es una propiedad de cada elemento que Cosmos DB utiliza para distribuir los datos entre particiones físicas. Elegir la clave de partición adecuada es fundamental: debe tener una cardinalidad alta (muchos valores distintos), distribuir uniformemente el tráfico de escritura y aparecer en la mayoría de las consultas. Una elección deficiente de la clave de partición provoca particiones activas que limitan el rendimiento y degradan el funcionamiento.

// Example container with /userId as partition key
// Items in the container:
{
  'id': 'order-001',
  'userId': 'user-42',
  'product': 'Widget',
  'total': 29.99
}
// userId distributes orders across partitions

Rendimiento: modelo RU/s

Cosmos DB cobra el rendimiento en unidades de solicitud por segundo (RU/s). Una RU equivale aproximadamente al coste de leer un documento de 1 KB mediante su identificador. Las escrituras, consultas y eliminaciones consumen más RU según el tamaño del elemento y la complejidad del índice. Puede aprovisionar RU/s en el nivel del contenedor o compartir un grupo entre todos los contenedores de una base de datos, y cambiar al modo autoscale para que Cosmos DB escale el rendimiento automáticamente.

# Create a container with 400 RU/s
az cosmosdb sql container create \
  --account-name mycosmosaccount \
  --resource-group myRG \
  --database-name myDatabase \
  --name orders \
  --partition-key-path '/userId' \
  --throughput 400

Distribución global

La función más potente de Cosmos DB es su capacidad para replicar datos globalmente con unos pocos clics. Puede agregar regiones a su cuenta, y Cosmos DB sincroniza automáticamente todas las escrituras en cada región. Cada región puede atender lecturas y escrituras simultáneamente en una configuración de varias escrituras (varios maestros), lo que minimiza la latencia para usuarios dispersos geográficamente.

# Add a second region to the Cosmos DB account
az cosmosdb update \
  --name mycosmosaccount \
  --resource-group myRG \
  --locations regionName=eastus failoverPriority=0 \
                regionName=westeurope failoverPriority=1

Cinco niveles de coherencia

Cosmos DB ofrece cinco niveles de coherencia configurables, ordenados de mayor a menor intensidad: Strong (lecturas serializables, mayor latencia), Bounded Staleness (las lecturas se retrasan respecto a las escrituras dentro de una ventana limitada), Session (valor predeterminado: lecturas coherentes para sus propias escrituras dentro de una sesión), Consistent Prefix (las lecturas nunca muestran escrituras desordenadas) y Eventual (lecturas más rápidas, garantías más débiles). Elija según la tolerancia de su aplicación a los datos obsoletos.

Indexación automática

De forma predeterminada, Cosmos DB indexa automáticamente todas las propiedades de cada elemento que inserta, sin exigirle que defina previamente un esquema. Esto permite realizar consultas ad hoc flexibles sin mantener índices manualmente. Puede personalizar la directiva de indexación para excluir rutas que nunca se consultan (reduciendo el coste de almacenamiento) o agregar índices compuestos para consultas ORDER BY sobre varias propiedades.

// Custom indexing policy example
{
  'indexingMode': 'consistent',
  'includedPaths': [{ 'path': '/*' }],
  'excludedPaths': [
    { 'path': '/largeTextBlob/?' },
    { 'path': '/_etag/?' }
  ]
}

Change feed para aplicaciones controladas por eventos

El change feed es un registro ordenado de todas las operaciones de creación y actualización realizadas en un contenedor de Cosmos DB. Las aplicaciones se suscriben al change feed para activar procesos posteriores; por ejemplo, actualizar un índice de búsqueda, enviar notificaciones o escribir en una vista materializada. Change feed es la base de los patrones controlados por eventos y CQRS en las arquitecturas de Cosmos DB.

Time-to-Live (TTL) para datos que caducan

Cosmos DB admite Time-to-Live (TTL), una propiedad que se configura en un contenedor o en elementos individuales para eliminarlos automáticamente después de un número determinado de segundos. Es ideal para datos de sesión, entradas de caché, registros de auditoría con períodos de retención normativos o cualquier dato con una fecha de caducidad conocida. Las eliminaciones mediante TTL se realizan como tareas en segundo plano y no consumen las RU/s aprovisionadas.

// Enable TTL on a container (TTL in seconds)
az cosmosdb sql container update \
  --account-name mycosmosaccount \
  --resource-group myRG \
  --database-name myDatabase \
  --name sessions \
  --ttl 3600

Precios y nivel serverless

Cosmos DB ofrece dos modos de facturación. El rendimiento aprovisionado se factura por hora de RU/s independientemente del uso real, por lo que es adecuado para cargas de trabajo estables y predecibles. El modo serverless se factura por las RU consumidas y los GB almacenados, sin coste mínimo, lo que resulta rentable para desarrollo, creación de prototipos y picos de tráfico. Cosmos DB serverless está limitado actualmente a una sola región.

Comprobación rápida

Compruebe sus conocimientos sobre los conceptos de Microsoft Azure Fundamentals (AZ-900) tratados en esta lección.

Resumen de la lección

En esta lección ha aprendido que Cosmos DB es un servicio NoSQL distribuido globalmente y multimodelo, que las claves de partición determinan cómo se fragmentan los datos y deben elegirse cuidadosamente, y que los cinco niveles de coherencia permiten equilibrar la latencia y la actualización de los datos. A continuación, exploraremos los servicios administrados de Azure para motores de bases de datos de código abierto.

Preguntas frecuentes

¿La lección «Azure Cosmos DB: NoSQL global» es gratis?

Sí — el texto completo de «Azure Cosmos DB: NoSQL global» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.

¿Qué aprenderé en «Azure Cosmos DB: NoSQL global»?

Explore la arquitectura multimodelo y multirregional de Cosmos DB, comprenda las claves de partición y elija el nivel de coherencia adecuado para las necesidades de su aplicación. Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?

No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Azure Cosmos DB: NoSQL global»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?

Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Azure SQL Database
  2. Azure Cosmos DB: NoSQL global
  3. Azure Database para motores de código abierto
  4. Migración de bases de datos a Azure
← Volver a Cloud & IT Cert Prep