Introducció a Amazon DynamoDB
Amazon DynamoDB és un servei de base de dades NoSQL completament gestionat que ofereix un rendiment ràpid i previsible amb una escalabilitat perfecta. DynamoDB permet emmagatzemar i recuperar qualsevol quantitat de dades, i gestionar qualsevol nivell de trànsit de sol·licituds. És ideal per a aplicacions que necessiten una latència consistent de mil·lisegons en qualsevol escala.
Característiques clau de DynamoDB
- Totalment gestionat: No cal preocupar-se per la gestió de servidors, la configuració de clústers o la replicació de dades.
- Escalabilitat automàtica: DynamoDB ajusta automàticament la capacitat de lectura i escriptura en funció de la càrrega de treball.
- Alta disponibilitat i durabilitat: Les dades es repliquen automàticament en diverses zones de disponibilitat dins d'una regió.
- Seguretat: Integració amb AWS Identity and Access Management (IAM) per controlar l'accés a les dades.
Creació d'una taula DynamoDB
Pas 1: Accedir a la consola de DynamoDB
- Inicia sessió a la Consola de gestió d'AWS.
- Cerca "DynamoDB" a la barra de cerca i selecciona'l.
Pas 2: Crear una taula
- A la consola de DynamoDB, fes clic a "Create table".
- Omple els camps necessaris:
- Table name: Nom de la taula (per exemple,
ProductCatalog
). - Primary key: Defineix la clau primària. Pot ser una clau de partició (hash key) o una combinació de clau de partició i clau de rang (sort key).
- Table name: Nom de la taula (per exemple,
Exemple de creació de taula
{ "TableName": "ProductCatalog", "KeySchema": [ { "AttributeName": "ProductId", "KeyType": "HASH" } // Clau de partició ], "AttributeDefinitions": [ { "AttributeName": "ProductId", "AttributeType": "N" } // Tipus de dades: Número ], "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } }
Pas 3: Configurar la capacitat de lectura i escriptura
- Read Capacity Units (RCU): Nombre de lectures consistents per segon que la taula pot gestionar.
- Write Capacity Units (WCU): Nombre d'escriptures per segon que la taula pot gestionar.
Operacions bàsiques amb DynamoDB
Inserir un element
Per inserir un element a DynamoDB, utilitza l'operació PutItem
.
Exemple de codi (AWS SDK per a Python - Boto3)
import boto3 # Crear un client de DynamoDB dynamodb = boto3.resource('dynamodb') # Seleccionar la taula table = dynamodb.Table('ProductCatalog') # Inserir un element table.put_item( Item={ 'ProductId': 101, 'ProductName': 'Bicicleta de muntanya', 'Price': 500, 'InStock': True } )
Llegir un element
Per llegir un element, utilitza l'operació GetItem
.
Exemple de codi (AWS SDK per a Python - Boto3)
# Llegir un element response = table.get_item( Key={ 'ProductId': 101 } ) item = response['Item'] print(item)
Actualitzar un element
Per actualitzar un element, utilitza l'operació UpdateItem
.
Exemple de codi (AWS SDK per a Python - Boto3)
# Actualitzar un element table.update_item( Key={ 'ProductId': 101 }, UpdateExpression='SET Price = :val1', ExpressionAttributeValues={ ':val1': 550 } )
Eliminar un element
Per eliminar un element, utilitza l'operació DeleteItem
.
Exemple de codi (AWS SDK per a Python - Boto3)
Exercicis pràctics
Exercici 1: Crear una taula
Crea una taula anomenada Users
amb una clau primària UserId
(tipus número).
Exercici 2: Inserir elements
Inserir els següents elements a la taula Users
:
UserId
: 1,UserName
: "Alice",Age
: 30UserId
: 2,UserName
: "Bob",Age
: 25
Exercici 3: Llegir un element
Llegeix l'element amb UserId
1 de la taula Users
.
Exercici 4: Actualitzar un element
Actualitza l'edat de l'usuari amb UserId
2 a 26.
Exercici 5: Eliminar un element
Elimina l'element amb UserId
1 de la taula Users
.
Solucions als exercicis
Solució a l'exercici 1
dynamodb.create_table( TableName='Users', KeySchema=[ { 'AttributeName': 'UserId', 'KeyType': 'HASH' } ], AttributeDefinitions=[ { 'AttributeName': 'UserId', 'AttributeType': 'N' } ], ProvisionedThroughput={ 'ReadCapacityUnits': 5, 'WriteCapacityUnits': 5 } )
Solució a l'exercici 2
table.put_item( Item={ 'UserId': 1, 'UserName': 'Alice', 'Age': 30 } ) table.put_item( Item={ 'UserId': 2, 'UserName': 'Bob', 'Age': 25 } )
Solució a l'exercici 3
Solució a l'exercici 4
table.update_item( Key={ 'UserId': 2 }, UpdateExpression='SET Age = :val1', ExpressionAttributeValues={ ':val1': 26 } )
Solució a l'exercici 5
Conclusió
En aquest tema, hem après què és Amazon DynamoDB i com crear i gestionar taules i elements. DynamoDB és una eina poderosa per a aplicacions que necessiten una base de dades NoSQL amb alta disponibilitat i escalabilitat. Hem vist exemples pràctics de com inserir, llegir, actualitzar i eliminar elements utilitzant l'AWS SDK per a Python (Boto3). Aquests coneixements són fonamentals per a qualsevol desenvolupador que vulgui treballar amb bases de dades NoSQL a AWS.