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.
