Saltar al contenido principal

Azure Cosmos DB: Una base de datos NoSQL en la nube a escala mundial

Descubre cómo la base de datos multimodelo totalmente gestionada de Microsoft ofrece un rendimiento de baja latencia, escalabilidad elástica y capacidades en tiempo real para IA, IoT, comercio electrónico y mucho más.
Actualizado 9 jun 2025  · 12 min de lectura

A medida que las aplicaciones escalan globalmente, las bases de datos tradicionales suelen quedarse cortas. Azure Cosmos DB, la base de datos multimodelo distribuida globalmente de Microsoft, ofrece acceso de baja latencia, múltiples modelos de consistencia y escalado sin fisuras entre regiones. 

Esta guía abarca conceptos clave como contenedores, elementos y API de SQL, esenciales para cualquier ingeniero de la nube que quiera empezar (y trabajar) con Azure y Cosmos DB. Obtendrás una visión práctica de su arquitectura y de por qué es la mejor opción para aplicaciones nativas en la nube y de misión crítica.

¿Qué es Azure Cosmos DB?

Azure Cosmos DB es una base de datos NoSQL totalmente gestionada en Microsoft Azure, creada para ofrecer alta disponibilidad, baja latencia y escalabilidad global. Admite múltiples modelos de datos, como documento, clave-valor, grafo y familia de columnas, lo que lo hace flexible para diversas aplicaciones.

Su punto fuerte es la distribución mundial: Con unos pocos clics, los datos pueden replicarse en todas las regiones de Azure para un acceso rápido y local. 

Los programadores también pueden elegir entre varios modelos de coherencia para equilibrar el rendimiento y la precisión de los datos. Si eres nuevo en el mundo Azure, te recomiendo encarecidamente que leas la siguiente guía de Azure para principiantes.

¿Por qué utilizar Azure Cosmos DB?

Azure Cosmos DB ofrece un potente conjunto de funciones diseñadas para crear aplicaciones escalables y de alto rendimiento:

Imagen del autor. Por qué utilizar Cosmos DB

  • Distribución global con baja latencia: Replica automáticamente los datos en todas las regiones de Azure, garantizando un acceso rápido y local a los usuarios de todo el mundo.
  • Múltiples niveles de consistencia: Elige entre cinco modelos, Fuerte, Estancamiento Limitado, Sesión, Prefijo Consistente y Eventual, para equilibrar la consistencia, la disponibilidad y el rendimiento.
  • Soporte multimodelo: Trabaja con modelos de datos de tipo documento (JSON), clave-valor, grafo y columna, lo que lo hace adecuado para diversas cargas de trabajo.
  • Alta disponibilidad con SLAs: Respaldado por SLA para operaciones de lectura y escritura, ideal para sistemas de misión crítica.
  • Escalabilidad elástica: Escala automáticamente el rendimiento en función de la demanda sin tiempos de inactividad, manteniendo la capacidad de respuesta bajo cargas variables.

Juntas, estas capacidades hacen de Cosmos DB una base sólida para aplicaciones distribuidas globalmente y nativas de la nube que exigen rendimiento y resistencia en tiempo real.

Casos de uso de Azure Cosmos DB

Azure Cosmos DB es una opción versátil para aplicaciones escalables en tiempo real en muchos sectores. Su arquitectura de baja latencia y distribuida globalmente la hace ideal para escenarios que requieren alta disponibilidad y acceso rápido a los datos. He aquí algunos casos de uso clave:

  • IA y machine learning: Se integra con canalizaciones de IA en tiempo real y admite la búsqueda vectorial, lo que permite aplicaciones inteligentes como motores de recomendación y búsqueda semántica.
  • Comercio electrónico y minorista: Potencia las experiencias de compra personalizadas captando el comportamiento del usuario y ofreciéndole recomendaciones al instante. Su distribución mundial garantiza un acceso preciso y de baja latencia a los datos de inventario en todas las regiones.
  • Juegos y redes sociales: Maneja las estadísticas de los jugadores en tiempo real, el chat y las tablas de clasificación con un rápido rendimiento de lectura/escritura. La coherencia a nivel de sesión garantiza experiencias fluidas a los usuarios de todo el mundo.
  • IoT y datos de series temporales: Ingiere y procesa eficazmente grandes volúmenes de datos de sensores y telemetría. Ideal para casos de uso como el mantenimiento predictivo, la detección de anomalías y la supervisión en tiempo real.

Cosmos DB ofrece la velocidad, la escala y la flexibilidad necesarias para las soluciones modernas nativas de la nube. Para comprender mejor lo que puedes hacer con Cosmos DB y Azure, puedes consultar la siguiente Guía de ofertas en la nube de Microsoft.

Características y capacidades de Cosmos DB

En esta sección, exploraremos las capacidades básicas que permiten a los programadores crear aplicaciones rápidas, resistentes e inteligentes, incluidas las estrategias de modelado de datos.

Modelización e indexación de datos

Azure Cosmos DB permite a los contenedores almacenar documentos JSON sin necesidad de un esquema predefinido, lo que facilita la adaptación y evolución de tu modelo de datos a lo largo del tiempo.

La indexación en Cosmos DB es automática por defecto, con todos los campos indexados para permitir consultas rápidas desde el principio. Sin embargo, esto puede llevar a un mayor consumo de Unidades de Petición (RU), especialmente en cargas de trabajo con mucha escritura. Para optimizar, los programadores pueden definir políticas de indexación personalizadas. Estas políticas permiten desactivar la indexación automática cuando sea innecesaria, especificar las rutas incluidas para los campos que deben indexarse y excluir los campos que no sean relevantes.

Cosmos DB también incluye la funciónChange Feed , que captura inserciones y actualizaciones en tiempo real, por lo que es ideal para crear sistemas basados en eventos, activar flujos de trabajo o transmitir datos en flujo descendente. Otra función útil es Time-to-Live (TTL), que permite el borrado automático de documentos tras un periodo determinado.

Particionamiento y optimización del rendimiento

Para cargas de trabajo con mucha escritura, las claves de partición deben tener una cardinalidad alta y una distribución uniforme, como ID de usuario, marcas de tiempo o regiones geográficas, para evitar las particiones calientes y el estrangulamiento. En situaciones de mucha lectura, suele ser más eficaz agrupar los datos relacionados mediante claves de partición, como los ID de cliente, lo que permite un acceso eficaz para consultas de rango o punto. Una mala partición puede provocar una distribución desigual de los datos y una degradación del rendimiento. Como cada partición lógica está limitada a 20 GB, es importante diseñar estrategias de particionado que eviten sobrecargar una sola clave.

El rendimiento de las consultas puede mejorarse aún más diseñando patrones de acceso dirigidos a particiones individuales, ya que son más rápidos y consumen menos recursos. Las consultas entre particiones, aunque son compatibles, suelen provocar una mayor latencia y un mayor consumo de RU, ya que escanean varias particiones. Para reducir los costes de consulta, los programadores deben aprovechar las estrategias de indexación (estoy pensando en los índices compuestos) y considerar la aplicación de mecanismos de almacenamiento en caché para los datos a los que se accede con frecuencia.

En cuanto al rendimiento, Cosmos DB permite a los programadores configurar Unidades de Petición a nivel de contenedor o de base de datos. Este modelo de rendimiento sintonizable ayuda a garantizar que tu aplicación mantenga el rendimiento incluso cuando experimentes algún tipo de pico de carga.

Modelos de coherencia y durabilidad de los datos

Azure Cosmos DB ofrece cinco niveles de consistencia sintonizables. Esto va mucho más allá de las típicas opciones de consistencia eventual o fuerte que se encuentran en la mayoría de las bases de datos no relacionales.

En el nivel más débil, la coherencia eventual proporciona la opción más rápida y disponible, pero puede devolver datos obsoletos o fuera de orden a medida que las réplicas se sincronizan gradualmente. Un poco más potente es el prefijo coherente, que garantiza que las lecturas reflejen el orden de las escrituras, aunque no necesariamente las más recientes, lo que lo hace adecuado cuando el orden de las operaciones importa más que la frescura.

La configuración por defecto y más práctica para muchas aplicaciones es la coherencia de sesión, que garantiza que un cliente siempre leerá sus escrituras dentro de una sesión. La caducidad limitada va un paso más allá al permitir un desfase controlado entre escrituras y lecturas, definido por un intervalo de tiempo (T) o varias versiones (K). Por ejemplo, en una sola región, el retraso puede estar limitado a 5 segundos o 10 versiones, mientras que en una configuración multirregión, puede llegar a 5 minutos o 100.000 versiones.

En el extremo más fuerte del espectro está la consistencia fuerte, que garantiza que todas las lecturas reflejen la última escritura confirmada en todas las réplicas. Este nivel ofrece las garantías más estrictas, evitando las lecturas antiguas, sucias o fantasma, y se asemeja mucho al comportamiento de los sistemas tradicionales que cumplen con ACID.

Escrituras multiregión y disponibilidad global

Una de las características destacadas de Azure Cosmos DB es el soporte de escritura multirregión mediante la replicación activa-activa (multimaestro). Esto permite a las aplicaciones realizar operaciones de escritura en varias regiones simultáneamente, reduciendo significativamente la latencia para los usuarios de todo el mundo.

Cosmos DB también incluye replicación global automática, que garantiza la sincronización de los datos en todas las regiones de Azure. En caso de interrupción regional, el sistema activa la conmutación automática a la siguiente región disponible.

Aunque Cosmos DB gestiona la mecánica de la fragmentación y la distribución de datos automáticamente, los programadores deben elegir una clave de partición adecuada para que la distribución sea uniforme y el escalado horizontal eficaz. Esta decisión es especialmente importante para grandes conjuntos de datos que pueden superar el límite de 20 GB por partición lógica. Planificar la partición con antelación ayuda a evitar cuellos de botella y problemas de rendimiento a medida que crece la aplicación.

Cosmos DB Precios y Gestión de Costes

Los precios de Azure Cosmos DB se basan en Unidades de Petición (RU), que reflejan los recursos utilizados para lecturas, escrituras y consultas. Una simple lectura de puntos suele costar 1 RU.

Modelos de precios

  • Rendimiento previsto: Reserva RUs para cargas de trabajo predecibles, facturadas por rendimiento y almacenamiento.
  • Sin servidor: Modelo de pago por uso, ideal para cargas de trabajo esporádicas o con poco tráfico.

Optimización de costes

  • Utiliza el Perfilador de BD Cosmos para controlar y optimizar la eficacia de las consultas.
  • Ajusta la indexación y la partición para reducir el consumo de RU.
  • Controla los gastos con Azure Cost Management y establece alertas de uso.
  • Elegir el modelo adecuado y optimizar su diseño puede reducir significativamente los costes.

Primeros pasos con Azure Cosmos DB 

Antes de trabajar con Azure Cosmos DB, tendrás que crear una cuenta, elegir tu configuración y crear tu primera base de datos y contenedor. Esta guía paso a paso te guiará por el proceso utilizando el Portal Azure.

Paso 1: Regístrate para obtener una cuenta Azure y accede a Cosmos DB a través del Portal Azure

Empieza por iniciar sesión en el Portal Azure. En labarra de búsqueda global dela parte superior, escribe "Azure Cosmos DB" y selecciónalo en los resultados. Desde la hoja de Cosmos DB, haz clic en "Crear" para empezar a configurar tu nueva instancia.

Captura de pantalla de la página principal de Azure

Captura de pantalla de la página principal de Azure Cosmos DB

Paso 2: Elige tu API y configura lo básico

Selecciona Azure Cosmos DB para NoSQL como modelo de API (Core SQL API).

Captura de pantalla de Azure Cosmos DB. Crear una instancia

A continuación, en el panel Conceptos básicos, introduce los detalles de tu configuración, incluida tu suscripción a Azure, un grupo de recursos (nuevo o existente), un nombre de cuenta único global y una región Azure preferida. Las Zonas de Disponibilidad pueden dejarse desactivadas. Cosmos DB ofrece dos modos de rendimiento: rendimiento provisionado para cargas de trabajo predecibles y sin servidor para escenarios variables o de bajo tráfico. Elige el modo que mejor se adapte a las necesidades de tu aplicación durante la configuración. Estas opciones también pueden ajustarse más adelante según evolucione tu carga de trabajo.

Captura de pantalla de Azure Cosmos DB. Completar los detalles

Una vez completado, haz clic en Revisar + Creary, a continuación, confirma haciendo clic en Crear para iniciar el despliegue.

Captura de pantalla de Azure Cosmos DB. Validar nuestra instancia

Una vez finalizado el despliegue, selecciona Ir al recurso para acceder a tu nueva cuenta de Cosmos DB.

Captura de pantalla de Azure Cosmos DB. Información sobre el recurso que acabamos de crear

Paso 3: Crear una base de datos y un contenedor

Navega a Explorador de datos desde el BD Cosmos menú de la cuenta.

Captura de pantalla de Azure Cosmos DB. Explorar nuestros datos

Haz clic en Nuevo Contenedor para abrir el diálogo de configuración. 

Captura de pantalla de Azure Cosmos DB. Crear un nuevo contenedor

Define un nuevo nombre de base de datos y un nombre de contenedor y, lo que es más importante, especifica una clave de partición para garantizar una distribución uniforme de los datos y un rendimiento óptimo. Pulsa Aceptar para crear la base de datos y el contenedor .

Captura de pantalla de Azure Cosmos DB.Rellenando las características de nuestro contenedor.

Una vez creados, verás ambos listados en la jerarquía del Explorador de Datos.

Captura de pantalla de Azure Cosmos DB. Comprobación de la jerarquía de datos.

Paso 4: Utiliza el Explorador de datos para consultar y gestionar objetos de la base de datos

Dentro del contenedor recién creado (empleados), expande la vista de árbol y selecciona Elementos. 

Captura de pantalla de Azure Cosmos DB. Comprobación del contenedor

Haz clic en Nuevo artículo.

Captura de pantalla de Azure Cosmos DB. Crear un nuevo elemento

Inserta el siguiente ejemplo de JSON y, a continuación, haz clic en Guardar:

{
  "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "name": {
    "first": "Josep",
    "last": "Ferrer"
  },
  "email": "<jferrers@datacampdummy.com>",
  "department": {
    "name": "Data Science"
  }
}

Para probar una consulta, selecciona Nueva consulta SQL en el menú e introduce la siguiente consulta NoSQL, que realiza una búsqueda de empleados del departamento Logistics sin distinguir mayúsculas de minúsculas.

Captura de pantalla de Azure Cosmos DB. Comprobación del contenedor.

SELECT VALUE {
    "name": CONCAT(e.name.last, " ", e.name.first),
    "department": e.department.name,
    "emailAddresses": [
        e.email
    ]
}
FROM
    employees e
WHERE
    STRINGEQUALS(e.department.name, "logistics", true)

Ahora hacemos clic para ejecutar la consulta. Devuelve un resultado estructurado:

[
  {
    "name": "Josep Ferrer",
    "department": "Logistics",
    "emailAddresses": [
      "jferrers@datacampdummy.com"
    ]
  }
]

¡Y eso sería todo!

Ventajas y desventajas de Cosmos DB

Ventajas

  • Alta disponibilidad: La replicación multirregión integrada garantiza la fiabilidad y el tiempo de actividad globales.
  • Flexibilidad del esquema: Admite JSON sin esquema con indexación automática para consultas rápidas.
  • Integración de la IA: Soporte nativo para búsqueda vectorial y escenarios de IA en tiempo real.
  • Amplio soporte de la API: Compatible con SQL, MongoDB, Cassandra, Gremlin y API de tablas.
  • Servicio totalmente gestionado: Gestiona el escalado, los parches y la infraestructura, reduciendo la sobrecarga operativa.

Desventajas

  • Funciones SQL limitadas: Carece de las funciones JOIN y GROUP BY de las bases de datos relacionales.
  • Coste a escala: Puede resultar caro con cargas de trabajo de alto rendimiento si no se optimiza.

Conclusión

Azure Cosmos DB es una base de datos NoSQL robusta y distribuida globalmente, creada para aplicaciones modernas y nativas de la nube. Con su compatibilidad multimodelo, replicación activa-activa y niveles de coherencia ajustables, destaca en escenarios que requieren alta disponibilidad, capacidad de respuesta en tiempo real y escalabilidad elástica, como los sistemas impulsados por IA, las plataformas de comercio electrónico y las soluciones IoT.

Su infraestructura totalmente gestionada, su flexible modelado de datos y su rico ecosistema de API lo convierten en una opción sólida para programadores y arquitectos. Dicho esto, los equipos deben considerar cuidadosamente las limitaciones potenciales, como las lagunas de funciones SQL y el coste a escala, al planificar las cargas de trabajo de producción.

Si quieres seguir mejorando tus habilidades, aquí tienes otros buenos recursos: 


Josep Ferrer's photo
Author
Josep Ferrer
LinkedIn
Twitter

Josep es Científico de Datos y Gestor de Proyectos en la Agencia Catalana de Turismo, utilizando datos para mejorar la experiencia de los turistas en Cataluña. Su experiencia incluye la gestión del almacenamiento y procesamiento de datos, junto con la analítica avanzada y la comunicación eficaz de las perspectivas de los datos.

También es un dedicado educador, que imparte clases en el Máster de Big Data de la Universidad de Navarra, y contribuye regularmente con artículos perspicaces sobre ciencia de datos en Medium y KDNuggets.

Es Licenciado en Ingeniería Física por la Universidad Politécnica de Cataluña y Máster en Sistemas Interactivos Inteligentes por la Universidad Pompeu Fabra.

En la actualidad, se dedica con pasión a hacer que las tecnologías relacionadas con los datos sean más accesibles a un público más amplio a través de la publicación de Medium ForCode'Sake.

Preguntas frecuentes

¿Qué es Azure Cosmos DB?

Azure Cosmos DB es un servicio de base de datos NoSQL de Microsoft totalmente gestionado y distribuido globalmente que admite múltiples modelos de datos y está optimizado para aplicaciones de baja latencia y alta disponibilidad.

¿Por qué deben utilizar Cosmos DB los programadores?

Los programadores eligen Cosmos DB por su replicación multirregión, su escalabilidad elástica, sus cinco modelos de consistencia sintonizables y su compatibilidad con múltiples API y modelos de datos, lo que la hace ideal para aplicaciones modernas nativas de la nube.

¿Cuáles son los casos de uso habituales de Cosmos DB?

Cosmos DB se utiliza en IA y machine learning (por ejemplo, búsqueda vectorial), comercio electrónico y minorista (personalización en tiempo real), juegos y redes sociales (interacciones de baja latencia), e IoT (telemetría y análisis en tiempo real).

¿Cómo gestiona Cosmos DB la escalabilidad y el rendimiento?

Cosmos DB utiliza contenedores particionados, rendimiento ajustable mediante Unidades de Petición (RU) y distribución inteligente de datos para escalar horizontalmente y soportar consultas de alto rendimiento.

¿Cuáles son los principales inconvenientes de Cosmos DB?

Aunque es potente, Cosmos DB puede resultar caro en condiciones de alto rendimiento si no se optimiza, y carece de soporte SQL completo para consultas complejas, como uniones de varias tablas u operaciones avanzadas de GROUP BY.

¿Qué ocurre con mis datos en Azure Cosmos DB durante un fallo regional?

En caso de fallo regional, el Objetivo de Punto de Recuperación (RPO) de Azure CosmosDB -o cuántos datos podrían perderse- viene determinado por tu modelo de consistencia y configuración de despliegue:

  • La coherencia fuerte garantiza una pérdida de datos cero (RPO = 0).

  • Otros modelos de coherencia (como sesión, estancamiento limitado o eventual) pueden permitir un retraso mínimo de los datos o lagunas de versiones.

Esta gama de opciones te permite adaptar el comportamiento de Cosmos DB en función de las necesidades de tu aplicación: si valoras la precisión, la velocidad o un equilibrio de ambas.

¿Cómo debo modelar los datos jerárquicos en Azure Cosmos DB?

Para modelar datos jerárquicos como estructuras de carpetas o árboles de categorías, Cosmos DB recomienda aplanar la estructura del documento. Utiliza campos como parentId para representar relaciones en lugar de documentos anidados o uniones complejas.

Este diseño mejora la eficacia y escalabilidad de las consultas, facilitando la gestión y recuperación de datos relacionados en entornos distribuidos.

¿Qué modelo de coherencia debo utilizar en una configuración de BD Cosmos multirregión?

Azure Cosmos DB admite los cinco modelos de consistencia en despliegues multirregión, lo que te da flexibilidad para equilibrar el rendimiento y la precisión de los datos.

  • La coherencia de sesión suele ser ideal: ofrece garantías de lectura-escritura, baja latencia y mínima sobrecarga.

  • Para garantías más estrictas o más relajadas, puedes elegir estancamiento fuerte, estancamiento limitado, prefijo consistente o consistencia eventual.

Esta versatilidad facilita la adaptación de Cosmos DB a las necesidades únicas de tus aplicaciones distribuidas globalmente.

Temas

Aprende con DataCamp

Curso

Understanding Microsoft Azure

3 h
34.1K
Learn about the power of Microsoft Azure and cloud computing software to help you improve your data engineering skills.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

AWS vs Azure: Una comparación en profundidad de los dos principales servicios en la nube

Explora las principales diferencias y similitudes entre Amazon Web Services (AWS) y Microsoft Azure. Este exhaustivo análisis abarca el rendimiento, los precios, las ofertas de servicios y la facilidad de uso para ayudar a los aspirantes a profesionales a determinar qué computación en nube se adapta mejor a sus necesidades.
Kurtis Pykes 's photo

Kurtis Pykes

12 min

blog

Azure Synapse frente a Databricks: Comprender las diferencias

Descubre cómo se comparan Azure Synapse y Databricks. Comprende sus características, casos de uso y capacidades de integración, y descubre qué plataforma se adapta mejor a tus necesidades de datos.
Gus Frazer's photo

Gus Frazer

14 min

blog

Contratos de datos desmitificados: Todo lo que necesitas saber

Lograr la escalabilidad en los sistemas de datos distribuidos y reducir los errores.
Mike Shakhomirov's photo

Mike Shakhomirov

11 min

blog

Las 13 mejores certificaciones Azure para 2024: Potencia tu carrera en Ciencia de Datos

Descubre la completa guía 2024 sobre la Certificación Azure para profesionales de los datos. Profundiza en lo esencial de los niveles de certificación de Azure, las estrategias de preparación con DataCamp y su impacto en tu carrera en la ciencia de datos.
Matt Crabtree's photo

Matt Crabtree

12 min

Tutorial

Base de datos Azure SQL: Configuración y gestión paso a paso

Aprende a crear, conectar, gestionar, consultar y proteger tu base de datos Azure SQL. Esta guía paso a paso cubre todo lo esencial para una configuración óptima de la base de datos.
Anneleen Rummens's photo

Anneleen Rummens

12 min

Tutorial

Cuentas de almacenamiento Azure: Tutorial paso a paso para principiantes

Esta guía te enseña a configurar y gestionar las Cuentas de Almacenamiento de Azure, paso a paso. También explora opciones avanzadas de configuración para un rendimiento óptimo y una optimización de costes.
Anneleen Rummens's photo

Anneleen Rummens

11 min

Ver másVer más