Introducció a Azure Cosmos DB
Azure Cosmos DB és un servei de base de dades multimodel completament gestionat que permet crear i gestionar bases de dades distribuïdes globalment amb latència baixa i alta disponibilitat. És ideal per a aplicacions que necessiten escalar de manera elàstica i gestionar grans volums de dades.
Característiques clau d'Azure Cosmos DB
- Distribució global: Permet replicar les dades a qualsevol regió d'Azure.
- Escalabilitat elàstica: Escala automàticament el rendiment i l'emmagatzematge.
- Latència baixa: Ofereix latència de lectura i escriptura inferior a 10 ms.
- Models de consistència: Proporciona cinc models de consistència per equilibrar el rendiment i la consistència de les dades.
- Suport multimodel: Compatible amb diversos models de dades com document, gràfic, columna ampla i clau-valor.
Configuració d'Azure Cosmos DB
Pas 1: Crear un compte d'Azure Cosmos DB
- Accedeix al portal d'Azure: https://portal.azure.com
- Crea un recurs nou: Fes clic a "Crea un recurs" i cerca "Azure Cosmos DB".
- Selecciona l'API: Tria l'API que millor s'adapti a les teves necessitats (SQL, MongoDB, Cassandra, Gremlin, Taula).
- Configura el compte:
- Nom del compte: Introdueix un nom únic per al teu compte de Cosmos DB.
- Grup de recursos: Selecciona un grup de recursos existent o crea'n un de nou.
- Regió: Tria la regió on vols que es creï el compte.
- Revisa i crea: Revisa la configuració i fes clic a "Crea".
Pas 2: Crear una base de dades i un contenidor
- Accedeix al compte de Cosmos DB: Un cop creat el compte, accedeix-hi des del portal d'Azure.
- Crea una base de dades:
- Fes clic a "Bases de dades" i després a "Afegeix una base de dades".
- Introdueix un nom per a la base de dades.
- Configura el rendiment (manual o automàtic).
- Crea un contenidor:
- Fes clic a "Contenidors" i després a "Afegeix un contenidor".
- Introdueix un nom per al contenidor.
- Defineix la clau de partició.
Models de consistència
Azure Cosmos DB ofereix cinc models de consistència per equilibrar el rendiment i la consistència de les dades:
- Forta: Garantia de consistència absoluta.
- Limitada: Lectures garantides fins a un nombre de versions.
- Sessió: Consistència per a una sessió de client.
- Prefixat: Lectures garantides en l'ordre escrit.
- Eventual: Consistència eventual sense garanties d'ordre.
Model de Consistència | Descripció | Latència | Disponibilitat |
---|---|---|---|
Forta | Consistència absoluta | Alta | Baixa |
Limitada | Lectures garantides fins a un nombre de versions | Mitjana | Mitjana |
Sessió | Consistència per a una sessió de client | Baixa | Alta |
Prefixat | Lectures garantides en l'ordre escrit | Baixa | Alta |
Eventual | Consistència eventual sense garanties d'ordre | Molt baixa | Molt alta |
Exemples pràctics
Exemple 1: Crear un document en un contenidor
from azure.cosmos import exceptions, CosmosClient, PartitionKey # Configuració del client endpoint = "https://<your-account-name>.documents.azure.com:443/" key = '<your-account-key>' client = CosmosClient(endpoint, key) # Accedir a la base de dades i al contenidor database_name = 'ExampleDatabase' database = client.create_database_if_not_exists(id=database_name) container_name = 'ExampleContainer' container = database.create_container_if_not_exists( id=container_name, partition_key=PartitionKey(path="/id"), offer_throughput=400 ) # Crear un document document = { 'id': '1', 'name': 'John Doe', 'age': 30, 'city': 'Barcelona' } container.create_item(body=document)
Exemple 2: Llegir un document d'un contenidor
# Llegir un document document_id = '1' partition_key = '1' response = container.read_item(item=document_id, partition_key=partition_key) print(response)
Exercicis pràctics
Exercici 1: Crear i llegir documents
- Crea un document: Utilitza el codi de l'exemple 1 per crear un document amb les teves pròpies dades.
- Llegeix el document: Utilitza el codi de l'exemple 2 per llegir el document que has creat.
Solució
# Crear un document document = { 'id': '2', 'name': 'Jane Doe', 'age': 25, 'city': 'Madrid' } container.create_item(body=document) # Llegir el document document_id = '2' partition_key = '2' response = container.read_item(item=document_id, partition_key=partition_key) print(response)
Exercici 2: Actualitzar i eliminar documents
- Actualitza un document: Modifica el document creat anteriorment per canviar la ciutat.
- Elimina un document: Elimina el document creat.
Solució
# Actualitzar un document document_id = '2' partition_key = '2' document = container.read_item(item=document_id, partition_key=partition_key) document['city'] = 'Valencia' container.replace_item(item=document_id, body=document) # Eliminar un document container.delete_item(item=document_id, partition_key=partition_key)
Conclusió
Azure Cosmos DB és una eina poderosa per gestionar bases de dades distribuïdes globalment amb latència baixa i alta disponibilitat. Amb la seva capacitat d'escalabilitat elàstica i suport multimodel, és ideal per a aplicacions modernes que necessiten gestionar grans volums de dades de manera eficient. En aquest tema, hem après a configurar un compte de Cosmos DB, crear bases de dades i contenidors, i treballar amb documents mitjançant exemples pràctics.
Curs d'Azure
Mòdul 1: Introducció a Azure
- Què és Azure?
- Configuració del compte d'Azure
- Visió general del portal d'Azure
- Gestor de recursos d'Azure
Mòdul 2: Serveis bàsics d'Azure
Mòdul 3: Bases de dades d'Azure
- Base de dades SQL d'Azure
- Azure Cosmos DB
- Base de dades d'Azure per a MySQL
- Base de dades d'Azure per a PostgreSQL
Mòdul 4: Seguretat d'Azure
- Gestió d'identitat i accés d'Azure
- Centre de seguretat d'Azure
- Azure Key Vault
- Protecció DDoS d'Azure
Mòdul 5: Azure DevOps
Mòdul 6: Serveis avançats d'Azure
- Servei de Kubernetes d'Azure (AKS)
- Funcions d'Azure
- Aplicacions lògiques d'Azure
- Serveis cognitius d'Azure
Mòdul 7: Monitoratge i gestió
- Monitor d'Azure
- Anàlisi de registres d'Azure
- Informació d'aplicacions d'Azure
- Automatització d'Azure