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

  1. Inicia sessió a la Consola de gestió d'AWS.
  2. Cerca "DynamoDB" a la barra de cerca i selecciona'l.

Pas 2: Crear una taula

  1. A la consola de DynamoDB, fes clic a "Create table".
  2. 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).

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)

# Eliminar un element
table.delete_item(
    Key={
        'ProductId': 101
    }
)

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: 30
  • UserId: 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

response = table.get_item(
    Key={
        'UserId': 1
    }
)

item = response['Item']
print(item)

Solució a l'exercici 4

table.update_item(
    Key={
        'UserId': 2
    },
    UpdateExpression='SET Age = :val1',
    ExpressionAttributeValues={
        ':val1': 26
    }
)

Solució a l'exercici 5

table.delete_item(
    Key={
        'UserId': 1
    }
)

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.

© Copyright 2024. Tots els drets reservats