Introducció
Les bases de dades distribuïdes són sistemes de gestió de bases de dades (SGBD) en què les dades es distribueixen a través de múltiples nodes o servidors. Aquest enfocament permet gestionar grans volums de dades, augmentar la disponibilitat i la tolerància a fallades, i millorar el rendiment mitjançant la distribució de la càrrega de treball.
Objectius del Mòdul
- Comprendre els conceptes bàsics de les bases de dades distribuïdes.
- Aprendre sobre els diferents models de bases de dades distribuïdes.
- Explorar els avantatges i desafiaments associats amb les bases de dades distribuïdes.
- Conèixer algunes de les tecnologies i eines més utilitzades en aquest camp.
Conceptes Bàsics
Definició
Una base de dades distribuïda és una col·lecció de dades que es distribueixen físicament en diferents llocs però que es gestionen com una sola entitat lògica.
Característiques Clau
- Distribució de Dades: Les dades es distribueixen en múltiples nodes.
- Transparència: Els usuaris perceben la base de dades com una única entitat, independentment de la seva distribució física.
- Escalabilitat: Capacitat per augmentar la capacitat del sistema afegint més nodes.
- Tolerància a Fallades: Capacitat per continuar operant malgrat les fallades d'alguns nodes.
Models de Bases de Dades Distribuïdes
Model Relacional Distribuït
- Descripció: Utilitza el model de dades relacional, on les dades es representen en taules.
- Exemples: Google Spanner, CockroachDB.
Model NoSQL Distribuït
- Descripció: Utilitza models de dades no relacionals, com ara documents, claus-valor, columnes amples i gràfics.
- Exemples: Cassandra, MongoDB, HBase.
Comparació de Models
Característica | Relacional Distribuït | NoSQL Distribuït |
---|---|---|
Estructura de Dades | Taules | Documents, Claus-Valor, Columnes, Gràfics |
Escalabilitat | Generalment vertical | Horitzontal |
Consistència | ACID | BASE |
Casos d'Ús | Transaccions crítiques | Big Data, Aplicacions Web |
Avantatges i Desafiaments
Avantatges
- Escalabilitat: Facilita l'escalabilitat horitzontal.
- Disponibilitat: Millora la disponibilitat del sistema mitjançant la replicació de dades.
- Rendiment: Pot millorar el rendiment distribuint la càrrega de treball.
Desafiaments
- Consistència: Mantenir la consistència de les dades en un entorn distribuït és complex.
- Latència: La comunicació entre nodes pot introduir latència.
- Gestió de Fallades: La detecció i recuperació de fallades és més complicada.
Tecnologies i Eines
Google Spanner
- Descripció: Base de dades relacional distribuïda que ofereix consistència global i alta disponibilitat.
- Característiques: ACID, escalabilitat horitzontal, integració amb Google Cloud.
Apache Cassandra
- Descripció: Base de dades NoSQL distribuïda dissenyada per gestionar grans volums de dades a través de molts servidors.
- Característiques: Escalabilitat horitzontal, alta disponibilitat, model de dades de columnes amples.
MongoDB
- Descripció: Base de dades NoSQL orientada a documents que ofereix escalabilitat i flexibilitat.
- Característiques: Documents JSON, escalabilitat horitzontal, alta disponibilitat.
Exemples Pràctics
Configuració Bàsica de Cassandra
# Instal·lació de Cassandra sudo apt-get update sudo apt-get install cassandra # Inici del servei de Cassandra sudo service cassandra start # Connexió a la consola de Cassandra cqlsh
Creació d'una Taula en Cassandra
CREATE KEYSPACE exemple WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; USE exemple; CREATE TABLE usuaris ( id UUID PRIMARY KEY, nom TEXT, correu TEXT );
Inserció de Dades en Cassandra
INSERT INTO usuaris (id, nom, correu) VALUES (uuid(), 'Joan', '[email protected]');
Exercicis Pràctics
Exercici 1: Configuració de MongoDB
- Instal·la MongoDB en el teu sistema.
- Inicia el servei de MongoDB.
- Connecta't a la consola de MongoDB.
- Crea una base de dades anomenada
empresa
. - Crea una col·lecció anomenada
empleats
dins de la base de dadesempresa
.
Solució
# Instal·lació de MongoDB sudo apt-get update sudo apt-get install -y mongodb # Inici del servei de MongoDB sudo service mongodb start # Connexió a la consola de MongoDB mongo # Creació de la base de dades i col·lecció use empresa db.createCollection("empleats")
Exercici 2: Inserció i Consulta de Dades en MongoDB
- Insereix un document en la col·lecció
empleats
amb els campsnom
,càrrec
isalari
. - Consulta tots els documents de la col·lecció
empleats
.
Solució
# Inserció de dades db.empleats.insert({ nom: "Maria", càrrec: "Enginyera de Software", salari: 60000 }) # Consulta de dades db.empleats.find()
Conclusió
Les bases de dades distribuïdes són essencials per gestionar dades a gran escala en entorns moderns. Tot i que presenten desafiaments significatius, com la consistència i la latència, ofereixen avantatges importants en termes d'escalabilitat, disponibilitat i rendiment. Conèixer les diferents tecnologies i models disponibles permet als professionals triar la millor solució per a les seves necessitats específiques.
En el proper mòdul, explorarem els Cachés Distribuïts, una altra peça clau en les arquitectures distribuïdes per millorar el rendiment i l'eficiència dels sistemes.
Curs d'Arquitectures Distribuïdes
Mòdul 1: Introducció als Sistemes Distribuïts
- Conceptes Bàsics de Sistemes Distribuïts
- Models de Sistemes Distribuïts
- Avantatges i Desafiaments dels Sistemes Distribuïts