🌐🔧 Dominando los Datos con Azure Cosmos DB a través del SDK 🚀

🌐🔧 Dominando los Datos con Azure Cosmos DB a través del SDK 🚀

Explorando la potencia y flexibilidad de Cosmos DB para soluciones escalables en la nube.

Introducción

Azure Cosmos DB. Este post está dedicado a desvelar cómo, mediante el uso de su SDK, los arquitectos de soluciones pueden manejar datos de manera eficiente, segura y escalable, marcando la diferencia en el desarrollo de aplicaciones modernas.

¿Qué es este servicio?

Azure Cosmos DB es el servicio de base de datos multimodelo distribuido globalmente de Microsoft Azure. Su diseño permite a los desarrolladores aprovechar múltiples modelos de datos, como documentos, clave-valor, gráficos y columnares, utilizando una única API.

Con características destacadas como la distribución global en cualquier número de regiones Azure, el escalado transparente de rendimiento y almacenamiento, y garantías de baja latencia en lecturas y escrituras, Cosmos DB se posiciona como una solución de primera línea para aplicaciones críticas y de alta disponibilidad.

¿Qué cubrirá este post?

En este viaje exploraremos:

  • La integración y uso del SDK de Cosmos DB para operaciones de datos.

  • Ejemplos prácticos de cómo interactuar con Cosmos DB desde nuestras aplicaciones.

¿Por qué es importante para los arquitectos de soluciones?

Para un arquitecto de soluciones en Azure, entender y aplicar las capacidades de Cosmos DB significa poder diseñar sistemas más robustos, flexibles y escalables. La habilidad de distribuir datos globalmente con pocas configuraciones y garantizar una baja latencia puede ser un diferenciador clave en la experiencia del usuario y en la eficiencia operativa del sistema.

Además, la versatilidad de modelos de datos soportados facilita la adaptación a diversos requisitos de aplicación sin la necesidad de múltiples bases de datos.

¿Qué problemas puede resolver?

Cosmos DB, con su modelo de distribución global y capacidades multimodelo, puede abordar una variedad de desafíos, tales como:

  • Escalabilidad: Ajuste dinámico de recursos para manejar picos de carga sin intervención manual.

  • Latencia: Reducción significativa en el tiempo de acceso a los datos, crucial para aplicaciones en tiempo real.

  • Consistencia: Soporte para diferentes niveles de consistencia, equilibrando la precisión de los datos con la latencia.

  • Desarrollo de aplicaciones globales: Facilidad para replicar datos en múltiples regiones y acercarlos a los usuarios finales.

Ejercicio en Práctica

In this exercise we will create and insert data into a CosmosDB database through the SDK

  1. We open the console and log in

image.png

  1. we create a project in visual studio

image.png

  1. We execute the following code in the console
dotnet add package Azure.Cosmos --version 4.0.0 -preview3

image.png

  1. at the end we validate that the package has been added

image.png

  1. in the portal we get the primary key of our cosmos db account and the URL

image.png

  1. the code is like this

image.png

  1. copy and execute this code
using System.Text.Json.Serialization;
using Azure.Cosmos;

Console.WriteLine("----COMSOS DB FROM SDK----");

string url = "<your url>";
string key = "<your primary key>";

CosmosClient cosmosDbClient = new CosmosClient(url,key);
DatabaseResponse cosmosDB = await cosmosDbClient.CreateDatabaseIfNotExistsAsync("demo-jesus");
System.Console.WriteLine("cosmosDB created", cosmosDB.Database.Id);
User user = new User
{
    Id = Guid.NewGuid().ToString(),
    name = "John Doe",
    userId = 2
};
ContainerResponse container = await cosmosDB.Database.CreateContainerIfNotExistsAsync("users","/userId");
System.Console.WriteLine("container created", container.Container.Id);
await container.Container.UpsertItemAsync<User>(user, new PartitionKey(user.userId));

class User
{
    [JsonPropertyName("id")]
    public string Id { get; set; }
    public int userId { get; set; }
    public string name { get; set; }

}
  1. at the end we see the following result

image.png

  1. in the data explorer in the portal we see the data created

image.png

Consideraciones finales

Azure Cosmos DB se erige como una solución formidable para arquitectos de soluciones que buscan eficiencia, escalabilidad y flexibilidad en la gestión de datos. Su capacidad para integrarse sin problemas a través del SDK con aplicaciones en Azure lo convierte en un componente esencial en el arsenal tecnológico para enfrentar los desafíos de la actualidad digital.

Te animo a explorar más, experimentar con el SDK y descubrir cómo puede transformar la gestión de datos en tus proyectos.