Azure Cosmos DB

¿Qué es Azure Cosmos DB?

Javier Tabernero 13/10/2022

    Azure Cosmos DB es una base de datos distribuida NoSQL exclusivamente para la nube de Azure totalmente administrada para aplicaciones de alto rendimiento de cualquier tamaño y escala.

    En el presente artículo explicaremos cuáles son las características principales de CosmosDB como servicio, y las características principales de una base de datos CosmosDB comparándola con las bases de datos relacionales.

    Características principales de Azure Cosmos DB

    Las características principales de Azure Cosmos DB son las siguientes:

    -Mayor velocidad de lectura y escritura que las bases de datos relacionales.

    -Soporta diferentes sistemas NoSQL como MongoDB, Cassandra y Gremlin, aparte de la más utilizada API Core (SQL) nativa. Cada uno de ellos a través de su SDK

    -Disponibilidad garantizada del 99,999 %, soporte de copias de seguridad, restauración a un momento dado, seguridad y análisis en tiempo real sin pérdida de rendimiento mediante Azure Synapse Link for Azure Cosmos DB

    -Ofrece alto rendimiento gracias a un escalado de forma vertical al instante y automática con costes basados en consumo.

    -Pagas solo por lo que consumes, no hay cargos mínimos de ningún tipo. Con la posibilidad de calcular los costes de forma anticipada.

    Las bases de datos CosmosDB

    A diferencia de la base de datos relacional, las bases de datos de CosmosDB (API Core nativa) están estructuradas de forma mucho más simple, ya que en lugar de tablas tienen contenedores y estos, a su vez, contienen registros (filas) que se almacenan en forma de JSON. Es decir, no existe el concepto de columna, aunque por convención todas las colecciones deben tener una propiedad “id” de tipo alfanumérico que actúa de clave primaria y también se tiene que especificar una propiedad como clave de partición.

    Algunas de las características de los contenedores es que no tienen integridad referencial, no soportan transacciones entre contenedores y un contenedor no puede acceder a datos de otro contenedor, ya que el tamaño máximo de un registro es de 2MB.

    El modelo de datos es diferente del relacional, en lugar de tener muchas tablas relacionadas entre ellas, en NoSQL se modela de forma más jerárquica. Con lo que en un solo registro puede haber el equivalente a varias tablas de una base de datos relacional.

    CosmosDB

    El concepto de partición es similar al del SQL Server, una propiedad hace partición y por cada valor diferente que tenga crea internamente una división de los datos, lo que permite un escalado individual para cada contenedor. Actualmente, está en Preview la posibilidad de hacer particiones con más de una propiedad.

    Soporta procedimientos almacenados, funciones definidas por el usuario y Trigger, que se programan en JavaScript y únicamente pueden acceder a los datos del contenedor en el que están.

    Al igual que en una base de datos relacional, el rendimiento no es intrínseco de la base de datos, depende del modelo de datos, de los índices y de la clave de partición.

    El acceso a datos desde el propio CosmosDB es mediante su propio SQL, muy parecido al SQL de las bases de datos relacionales. Desde el SDK de .NET se puede acceder mediante EF o la API nativa, ya sea haciendo consultas SQL o por Linq que es lo más convencional.

    Data Explorer

    El Data Explorer es el equivalente al SQL Server Manager Studio, es un entorno web en el que se puede realizar las tareas básicas, mantenimiento de una base de datos, como crear bases de datos, contenedores, índices, etc. (punto) y la gestión de datos donde se pueden hacer consultas, altas, bajas y modificaciones de datos.

    Azure Cosmos DB

    Versión de prueba

    Para el que no tenga una suscripción de Azure, existe un emulador de CosmosDB que se puede instalar tanto en Windows como en Linux para probarlo de forma local, incluye el motor de base de datos y el Data Explorer para la gestión.

    Casos de uso

    En Pasiona ya hemos utilizado CosmosDB en varios proyectos como es el caso de Camperxpress con resultados excelentes, ya que ofrece una curva de aprendizaje muy suave y es fácil formar a nuevos compañeros que no tengan experiencia previa.

    Web_&_Cloud

     

    , , ,

    Volver