0% ont trouvé ce document utile (0 vote)
15 vues25 pages

Cours Module6 Module7 BD Avancee

Le document présente le contenu pédagogique des modules Big Data et Cloud Databases pour la Licence 3 en Génie Logiciel à l'Institut Quantum Académie. Il couvre des sujets tels que l'architecture Hadoop, le traitement des données avec Apache Spark, et les différences entre les bases de données traditionnelles et Big Data. Les étudiants apprendront à concevoir des pipelines ETL, à appliquer des principes de gouvernance des données, et à utiliser des outils analytiques pour divers cas d'usage en Afrique.

Transféré par

dahlin nyassi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
15 vues25 pages

Cours Module6 Module7 BD Avancee

Le document présente le contenu pédagogique des modules Big Data et Cloud Databases pour la Licence 3 en Génie Logiciel à l'Institut Quantum Académie. Il couvre des sujets tels que l'architecture Hadoop, le traitement des données avec Apache Spark, et les différences entre les bases de données traditionnelles et Big Data. Les étudiants apprendront à concevoir des pipelines ETL, à appliquer des principes de gouvernance des données, et à utiliser des outils analytiques pour divers cas d'usage en Afrique.

Transféré par

dahlin nyassi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

INSTITUT QUANTUM ACADEMIE (IQAC)

Licence 3 - Genie Logiciel

BASE DE DONNEES AVANCEE


MODULE 6 : BIG DATA ET ANALYTICS
MODULE 7 : CLOUD DATABASES

Volume horaire : 14h (10h CM + 4h TP)


Cours detaille - Contenu pedagogique complet

Enseignant : M. DAHLIN'N
Annee academique 2025-2026
IQAC - BD Avancee L3 | Module 6 & 7

MODULE 6 : BIG DATA ET ANALYTICS


Volume horaire : 6h CM + 2h TP

1. Objectifs pedagogiques
A l'issue de ce module, l'etudiant sera capable de :
• Comprendre les fondements et l'ecosysteme Big Data
• Maitriser l'architecture Hadoop et son ecosysteme (HDFS, MapReduce, YARN)
• Utiliser Apache Spark pour le traitement distribue de donnees
• Concevoir des pipelines ETL (Extract, Transform, Load) complets
• Differencer Data Warehouse, Data Lake et Data Lakehouse
• Appliquer les principes de gouvernance et qualite des donnees

Prerequis
Module 5 (NoSQL) valide. Connaissances de base en Python. Notions de systemes distribues.
Familiarite avec les commandes Linux.

2. Introduction au Big Data


2.1 Definition et caracteristiques
Le Big Data designe des ensembles de donnees tellement volumineux, varies et generes a une
telle vitesse qu'ils depassent les capacites des outils traditionnels de gestion de bases de
donnees. Ce concept est apparu dans les annees 2000 avec l'explosion du volume de donnees
numeriques generees par Internet, les reseaux sociaux, les capteurs IoT et les transactions
numeriques.

Les 5V du Big Data


Le modele des 5V constitue le cadre de reference pour caracteriser le Big Data :

Dimension Description Exemple concret


Volume Quantite massive de donnees Facebook genere plus de 4 petaoctets de
generees et stockees. On parle donnees par jour.
de teraoctets, petaoctets, voire
exaoctets.
Velocite Vitesse a laquelle les donnees Flux de transactions Mobile Money sur
sont generees, collectees et MTN/Orange en temps reel.
traitees. Necessite souvent du
traitement en temps reel.

Page 2
IQAC - BD Avancee L3 | Module 6 & 7

Dimension Description Exemple concret


Variete Diversite des types et formats de SMS, images, logs serveur, donnees GPS,
donnees : structurees, semi- transactions financieres.
structurees, non structurees.
Veracite Fiabilite et qualite des donnees. Donnees de capteurs IoT avec des lectures
Les donnees massives erronees.
contiennent inevitablement du
bruit et des erreurs.
Valeur Capacite a extraire des Analyse predictive pour anticiper les defauts
informations utiles et exploitables de paiement.
des donnees brutes.

2.2 Big Data vs bases de donnees traditionnelles


Comprendre la difference fondamentale entre les approches traditionnelles et Big Data est
essentiel :

Critere Base de donnees traditionnelle Big Data


Volume Gigaoctets a Teraoctets Petaoctets a Exaoctets
Structure Donnees structurees (schema fixe) Structurees, semi-structurees, non
structurees
Traitement Vertical (scale-up) Horizontal (scale-out)
Schema Schema-on-write Schema-on-read
Cout Materiel couteux specialise Commodity hardware distribue
Latence Millisecondes (OLTP) Secondes a minutes (batch)
Modele ACID strict Eventual consistency acceptable

2.3 Cas d'usage du Big Data en Afrique


Le Big Data offre des opportunites uniques pour le continent africain, notamment dans les
domaines suivants :
• Fintech et Mobile Money : Analyse des patterns de transaction pour la detection de
fraude, le credit scoring base sur l'usage mobile, et l'optimisation des reseaux de
distribution d'agents.
• Agriculture de precision : Utilisation des donnees satellites et meteorologiques pour
optimiser les cycles de culture, predire les rendements et anticiper les secheresses.
• Sante publique : Suivi epidemiologique en temps reel, optimisation de la chaine
d'approvisionnement en medicaments, et telemedicine.
• Telecommunications : Analyse du trafic reseau, optimisation de la couverture, marketing
cible base sur les habitudes d'utilisation.

Page 3
IQAC - BD Avancee L3 | Module 6 & 7

Cas QuamTechs
Avec plus de 30 000 utilisateurs sur QuamTechs Pay, l'analyse Big Data permettrait d'identifier les
patterns de transaction, d'optimiser les parcours utilisateur, de detecter les fraudes en temps reel et
de proposer des services financiers personnalises comme le micro-credit base sur l'historique de
transactions.

3. L'ecosysteme Hadoop
3.1 Architecture HDFS (Hadoop Distributed File System)
HDFS est le systeme de fichiers distribue au coeur de l'ecosysteme Hadoop. Il est concu pour
stocker de tres gros fichiers de maniere fiable sur des clusters de machines ordinaires
(commodity hardware). Son architecture repose sur un modele maitre-esclave.

Composants principaux
• NameNode (Maitre) : Gere les metadonnees du systeme de fichiers (arborescence,
permissions, emplacement des blocs). Il ne stocke pas les donnees elles-memes mais
sait ou chaque bloc est localise dans le cluster.
• DataNode (Esclave) : Stocke les blocs de donnees reels. Chaque fichier est decoupe en
blocs de 128 Mo par defaut. Les DataNodes envoient des heartbeats reguliers au
NameNode pour signaler leur disponibilite.
• Secondary NameNode : Effectue des checkpoints periodiques des metadonnees du
NameNode. Attention : ce n'est PAS un NameNode de secours, mais un assistant pour
la consolidation des logs d'edition.

Mecanisme de replication
HDFS replique chaque bloc sur plusieurs DataNodes (facteur de replication par defaut : 3). La
strategie de placement des repliques est intelligente : la premiere replique est placee sur le noeud
local, la deuxieme sur un noeud d'un rack different, et la troisieme sur un autre noeud du meme
rack distant. Cela garantit la tolerance aux pannes tant au niveau du noeud qu'au niveau du rack.

Commandes HDFS essentielles


# Lister le contenu d'un repertoire HDFS
hdfs dfs -ls /user/data/

# Copier un fichier local vers HDFS


hdfs dfs -put [Link] /user/data/transactions/

# Copier depuis HDFS vers le systeme local


hdfs dfs -get /user/data/results/ ./output/

# Creer un repertoire dans HDFS


hdfs dfs -mkdir -p /user/data/analytics/

Page 4
IQAC - BD Avancee L3 | Module 6 & 7

# Verifier l'etat du systeme de fichiers


hdfs dfsadmin -report

# Verification d'integrite
hdfs fsck /user/data/ -files -blocks -locations

3.2 Le paradigme MapReduce


MapReduce est le modele de programmation qui permet le traitement parallele et distribue de
grandes quantites de donnees. Il decompose tout traitement en deux phases fondamentales :

Phase Map
La fonction Map prend en entree des paires cle-valeur et produit un ensemble de paires cle-valeur
intermediaires. Chaque noeud du cluster execute la fonction Map sur sa portion locale de
donnees, ce qui permet un traitement hautement parallelise.

Phase Shuffle & Sort


Entre les phases Map et Reduce, le framework effectue automatiquement un tri et un
regroupement des resultats intermediaires par cle. Toutes les valeurs associees a une meme cle
sont envoyees au meme Reducer.

Phase Reduce
La fonction Reduce recoit une cle et l'ensemble des valeurs associees, puis les agregee pour
produire le resultat final. Chaque Reducer traite un sous-ensemble de cles.

Exemple concret : Comptage de transactions par operateur


# Donnees d'entree (fichier [Link]) :
# MTN,5000 | Orange,3000 | MTN,2000 | Orange,7000 | MTN,1500

# PHASE MAP (executee sur chaque noeud) :


# Input: (ligne_num, 'MTN,5000') -> Output: ('MTN', 1)
# Input: (ligne_num, 'Orange,3000') -> Output: ('Orange', 1)

# PHASE SHUFFLE & SORT :


# 'MTN' -> [1, 1, 1]
# 'Orange' -> [1, 1]

# PHASE REDUCE :
# ('MTN', [1,1,1]) -> ('MTN', 3)
# ('Orange', [1,1]) -> ('Orange', 2)

Implementation Python avec mrjob

Page 5
IQAC - BD Avancee L3 | Module 6 & 7

from [Link] import MRJob


from [Link] import MRStep

class TransactionAnalysis(MRJob):
def mapper(self, _, line):
operator, amount = [Link]().split(',')
yield operator, float(amount)

def reducer(self, operator, amounts):


total = 0
count = 0
for amount in amounts:
total += amount
count += 1
yield operator, {
'total': total,
'count': count,
'average': total / count
}

if __name__ == '__main__':
[Link]()

3.3 YARN (Yet Another Resource Negotiator)


YARN est le gestionnaire de ressources de Hadoop 2.x+. Il decouple la gestion des ressources
du traitement des donnees, permettant a plusieurs frameworks (MapReduce, Spark, Tez) de
partager le meme cluster.

• ResourceManager (RM) : Arbitre global des ressources du cluster. Il decide combien de


ressources allouer a chaque application.
• NodeManager (NM) : Agent present sur chaque noeud, responsable de la gestion des
containers locaux et du reporting de l'utilisation des ressources.
• ApplicationMaster (AM) : Un par application, il negocie les ressources avec le
ResourceManager et coordonne l'execution des taches avec les NodeManagers.

4. Apache Spark
4.1 Pourquoi Spark ?
Apache Spark est un moteur de traitement distribue unifie qui surmonte les limitations majeures
de MapReduce. Alors que MapReduce ecrit les resultats intermediaires sur disque entre chaque
etape, Spark maintient les donnees en memoire (RAM), ce qui le rend jusqu'a 100 fois plus rapide
pour certaines charges de travail.

Page 6
IQAC - BD Avancee L3 | Module 6 & 7

Critere MapReduce Apache Spark


Vitesse Lent (I/O disque entre etapes) 100x plus rapide (traitement en
memoire)
Facilite API bas niveau (Java) API haut niveau (Python, Scala, Java,
R)
Traitement Batch uniquement Batch + Streaming + ML + Graph
Stockage Disque (HDFS) Memoire (RAM) avec spillover disque
intermediaire
Iterativite Faible (relecture disque) Excellente (cache en memoire)
Ecosysteme Limité Spark SQL, MLlib, GraphX, Streaming

4.2 Architecture Spark


Spark utilise une architecture maitre-worker :
• Driver Program : Le programme principal qui cree le SparkContext, definit les
transformations et actions, et coordonne l'execution.
• Cluster Manager : Gere les ressources du cluster (peut etre YARN, Mesos, Kubernetes,
ou le mode standalone de Spark).
• Executors : Processus lances sur les noeuds workers qui executent les taches et
stockent les donnees en cache.

RDD (Resilient Distributed Dataset)


Le RDD est l'abstraction fondamentale de Spark. C'est une collection distribuee d'objets,
immutable et tolerante aux pannes. Chaque RDD conserve sa lignee (lineage) : la sequence de
transformations qui l'a produit, ce qui permet de le recalculer en cas de perte d'une partition.

Transformations vs Actions
Spark distingue deux types d'operations sur les RDD :
• Transformations (lazy) : Creent un nouveau RDD a partir d'un existant sans executer
immediatement le calcul. Exemples : map(), filter(), flatMap(), groupByKey(),
reduceByKey(), join(), union().
• Actions (eager) : Declenchent l'execution effective du pipeline de transformations et
retournent un resultat. Exemples : collect(), count(), first(), take(), saveAsTextFile(),
reduce().

4.3 PySpark - Spark en Python


PySpark est l'interface Python d'Apache Spark, tres populaire pour l'analyse de donnees et le
machine learning.

Page 7
IQAC - BD Avancee L3 | Module 6 & 7

Exemple complet : Analyse de transactions Mobile Money


from [Link] import SparkSession
from [Link] import col, sum, avg, count, when, window

# Initialisation de la session Spark


spark = [Link] \
.appName('QuamTechs_Transaction_Analysis') \
.config('[Link]', 200) \
.getOrCreate()

# Chargement des donnees


df = [Link]('/data/transactions/', header=True, inferSchema=True)

# Analyse 1 : Volume par operateur et par jour


daily_volume = [Link]('operator', 'date') \
.agg(
count('*').alias('nb_transactions'),
sum('amount').alias('total_montant'),
avg('amount').alias('montant_moyen')
) \
.orderBy('date', 'operator')

# Analyse 2 : Detection de transactions suspectes


suspicious = [Link](
(col('amount') > 500000) |
(col('frequency_24h') > 20)
).select('user_id', 'amount', 'timestamp', 'operator')

# Analyse 3 : Segmentation des utilisateurs


user_segments = [Link]('user_id') \
.agg(
count('*').alias('total_tx'),
sum('amount').alias('total_spent'),
avg('amount').alias('avg_amount')
) \
.withColumn('segment',
when(col('total_spent') > 1000000, 'Premium')
.when(col('total_spent') > 100000, 'Standard')
.otherwise('Basic')
)

# Sauvegarde des resultats


daily_volume.[Link]('/output/daily_volume/')
user_segments.[Link]('/output/user_segments/')

[Link]()

4.4 Spark SQL


Spark SQL permet d'interroger des donnees structurees en utilisant du SQL standard, ce qui
facilite la transition pour les developpeurs familiers avec les bases de donnees relationnelles.

Page 8
IQAC - BD Avancee L3 | Module 6 & 7

# Enregistrement d'un DataFrame comme vue temporaire


[Link]('transactions')

# Requete SQL classique


result = [Link]('''
SELECT
operator,
DATE_TRUNC('month', date) as mois,
COUNT(*) as nb_transactions,
SUM(amount) as volume_total,
PERCENTILE_APPROX(amount, 0.5) as montant_median
FROM transactions
WHERE status = 'SUCCESS'
GROUP BY operator, DATE_TRUNC('month', date)
ORDER BY mois, volume_total DESC
''')

[Link]()

5. Data Warehousing et architectures analytiques


5.1 Data Warehouse vs Data Lake vs Data Lakehouse

Caracteristique Data Warehouse Data Lake Data Lakehouse


Structure Schema-on-write strict Schema-on-read flexible Schema flexible + ACID
Donnees Structurees uniquement Tous types (brut) Tous types avec
gouvernance
Performance Tres rapide (optimise) Variable Rapide (indexation)
Cout Eleve (stockage Faible (stockage brut) Modere
optimise)
Qualite Haute (donnees curees) Variable (donnees Haute (validation)
brutes)
Utilisateurs Analystes, BI Data Scientists, ML Tous profils
Technologies Hive, BigQuery, Redshift HDFS, S3, ADLS Delta Lake, Iceberg, Hudi

5.2 Processus ETL (Extract, Transform, Load)


Le processus ETL est le pilier de toute architecture de donnees analytique. Il consiste a extraire
les donnees de sources heterogenes, les transformer pour les rendre exploitables, puis les
charger dans un systeme de destination.

Phase Extract (Extraction)

Page 9
IQAC - BD Avancee L3 | Module 6 & 7

L'extraction consiste a collecter les donnees depuis les differentes sources. Les sources peuvent
etre des bases de donnees relationnelles (PostgreSQL, MySQL), des APIs REST, des fichiers
plats (CSV, JSON, XML), des flux de donnees en streaming, ou des systemes legacy.

Phase Transform (Transformation)


La transformation est l'etape la plus complexe. Elle inclut le nettoyage des donnees (suppression
des doublons, gestion des valeurs nulles), la normalisation des formats (dates, devises, unites),
l'enrichissement (jointures avec des donnees de reference), l'agregation et le calcul de metriques
derivees, ainsi que la validation des regles metier.

Phase Load (Chargement)


Le chargement place les donnees transformees dans le systeme cible. On distingue le
chargement complet (full load) qui remplace toutes les donnees, et le chargement incremental
(incremental load) qui ajoute uniquement les nouvelles donnees ou les modifications.

Exemple de pipeline ETL avec Apache NiFi / Python


import pandas as pd
from sqlalchemy import create_engine

# === EXTRACT ===


# Source 1 : Base PostgreSQL (transactions)
pg_engine = create_engine('postgresql://user:pass@localhost/quamtechs')
transactions = pd.read_sql('''
SELECT * FROM transactions
WHERE created_at >= CURRENT_DATE - INTERVAL '1 day'
''', pg_engine)

# Source 2 : API Mobile Money


import requests
response = [Link]('[Link]
headers={'Authorization': 'Bearer TOKEN'})
momo_data = [Link]([Link]()['data'])

# === TRANSFORM ===


# Nettoyage
transactions = [Link](subset=['amount', 'user_id'])
transactions['amount'] = transactions['amount'].astype(float)

# Standardisation des operateurs


operator_map = {'mtn_momo': 'MTN', 'orange_money': 'Orange'}
transactions['operator'] = transactions['operator_raw'].map(operator_map)

# Enrichissement : ajout du segment utilisateur


users = pd.read_sql('SELECT user_id, segment FROM users', pg_engine)
enriched = [Link](users, on='user_id', how='left')

# Agregation quotidienne
daily_stats = [Link](['date', 'operator', 'segment']).agg(

Page 10
IQAC - BD Avancee L3 | Module 6 & 7

nb_transactions=('id', 'count'),
total_amount=('amount', 'sum'),
avg_amount=('amount', 'mean')
).reset_index()

# === LOAD ===


dw_engine = create_engine('postgresql://user:pass@dw-server/analytics')
daily_stats.to_sql('fact_daily_transactions',
dw_engine, if_exists='append', index=False)

5.3 Outils ETL du marche

Outil Type Forces Cas d'usage


Apache NiFi Open-source, Interface visuelle, routing Integration de flux heterogenes
GUI complexe
Apache Airflow Open-source, Orchestration DAG, Pipelines complexes planifies
code schedulage
Talend Commercial / Connecteurs riches, ETL Entreprises, migrations
open-source visuel
dbt Open-source, Transformations SQL, Transformations dans le DW
SQL versioning
Apache Kafka Open-source, Temps reel, haute Streaming ETL, event-driven
streaming throughput

6. Gouvernance et qualite des donnees


6.1 Principes de gouvernance
La gouvernance des donnees est l'ensemble des pratiques, politiques et standards qui
garantissent la qualite, la securite et l'utilisation responsable des donnees au sein d'une
organisation. Dans le contexte Big Data, elle est d'autant plus critique que le volume et la variete
des donnees augmentent les risques.

Les piliers de la gouvernance


• Catalogage des metadonnees : Documenter chaque dataset (origine, format,
proprietaire, fraicheur, schema). Outils : Apache Atlas, DataHub, Amundsen.
• Qualite des donnees (Data Quality) : Definir et verifier des regles de qualite. Dimensions
: completude, exactitude, coherence, fraicheur, unicite.
• Lineage tracking : Tracer le parcours des donnees de la source au resultat final. Permet
de comprendre l'impact d'un changement et de deboguer les anomalies.
• Controle d'acces : Qui peut acceder a quelles donnees, avec quels droits. Respecter le
principe du moindre privilege.

Page 11
IQAC - BD Avancee L3 | Module 6 & 7

• Conformite reglementaire : RGPD (Europe), loi camerounaise sur la protection des


donnees personnelles, reglementations COBAC/BEAC pour les donnees financieres.

6.2 Qualite des donnees : les 6 dimensions

Dimension Description Mesure Exemple


Completude Toutes les valeurs % de valeurs non- Numeros de telephone renseignes
attendues sont nulles a 98%
presentes
Exactitude Les donnees Taux d'erreur Montants de transaction corrects
correspondent a la
realite
Coherence Pas de contradictions Nb de conflits Solde coherent entre systemes
entre sources
Fraicheur Donnees Age des donnees Transactions < 24h
suffisamment
recentes
Unicite Pas de doublons Taux de duplication Un utilisateur = un enregistrement
Validite Donnees conformes % hors format Numeros au format
au format attendu +237XXXXXXXXX

Application pratique
Pour QuamTechs Pay, un framework de qualite des donnees pourrait verifier en continu : la
completude des informations utilisateur (KYC), l'exactitude des montants de transaction
(reconciliation), la coherence entre les soldes MTN/Orange et le systeme interne, et la fraicheur des
donnees analytiques.

7. Travaux Pratiques - Module 6 (2h)


TP 1 : Pipeline ETL simplifie (1h)
Objectif : Concevoir et implementer un pipeline ETL simple pour analyser des donnees de
transactions.

1. Creer un dataset CSV de 10 000 transactions fictives (operateur, montant, date, statut,
ville).
2. Charger les donnees avec PySpark ou Pandas.
3. Appliquer les transformations : nettoyage des valeurs nulles, standardisation des noms
d'operateurs, filtrage des transactions echouees.

Page 12
IQAC - BD Avancee L3 | Module 6 & 7

4. Produire les agregations : volume quotidien par operateur, montant moyen par ville,
distribution des statuts.
5. Sauvegarder les resultats en format Parquet.

TP 2 : Analyse avec Spark SQL (1h)


Objectif : Utiliser Spark SQL pour repondre a des questions analytiques sur un dataset de
transactions.

6. Charger le dataset Parquet du TP 1 dans Spark.


7. Repondre aux questions suivantes en SQL :
◦ Quel est le top 5 des villes par volume de transactions ?
◦ Quelle est l'evolution mensuelle du montant moyen par operateur ?
◦ Quels utilisateurs ont plus de 10 transactions en une seule journee (potentielle
fraude) ?
8. Creer une vue materialisee des KPIs quotidiens.
9. Exporter les resultats dans un format exploitable pour un dashboard.

Page 13
IQAC - BD Avancee L3 | Module 6 & 7

MODULE 7 : CLOUD DATABASES


Volume horaire : 4h CM + 2h TP

1. Objectifs pedagogiques
A l'issue de ce module, l'etudiant sera capable de :
• Comprendre les modeles de services cloud (IaaS, PaaS, DBaaS)
• Comparer les offres de bases de donnees managees des principaux fournisseurs cloud
• Concevoir une architecture de base de donnees cloud adaptee aux besoins
• Maitriser les concepts de scaling automatique et de geo-replication
• Evaluer les couts, performances et trade-offs du cloud
• Deployer une application avec une base de donnees cloud

Prerequis
Modules 1 a 6 valides. Connaissances SQL et NoSQL. Notions de base en administration systeme
et reseaux.

2. Introduction au Cloud Computing pour les bases de


donnees
2.1 Les modeles de services cloud
Le cloud computing offre differents niveaux d'abstraction pour la gestion des bases de donnees.
Comprendre ces niveaux est essentiel pour faire le bon choix architectural.

IaaS (Infrastructure as a Service)


Vous gerez tout sauf le materiel physique. Le fournisseur vous fournit des machines virtuelles, du
stockage et du reseau. Vous installez et administrez vous-meme le SGBD (PostgreSQL,
MongoDB, etc.). Exemples : AWS EC2, Google Compute Engine, Azure VMs. Avantage : controle
total. Inconvenient : charge operationnelle importante.

PaaS (Platform as a Service)


Le fournisseur gere l'infrastructure et le systeme d'exploitation. Vous deployer vos applications et
configurez les services. Exemples : Heroku, Google App Engine, Azure App Service. La base de
donnees peut etre un addon ou un service separe.

DBaaS (Database as a Service)

Page 14
IQAC - BD Avancee L3 | Module 6 & 7

Le modele le plus abstrait : le fournisseur gere entierement le SGBD (installation, patching,


backups, scaling, haute disponibilite). Vous ne gerez que vos donnees et vos requetes. Exemples
: AWS RDS, Google Cloud SQL, Azure SQL Database, MongoDB Atlas. C'est le modele privilegie
pour les startups et les equipes avec des ressources DevOps limitees.

Aspect On-Premise IaaS PaaS/DBaaS


Materiel Vous Fournisseur Fournisseur
OS / Virtualisation Vous Vous Fournisseur
Installation SGBD Vous Vous Fournisseur
Patching / Updates Vous Vous Fournisseur
Backup / Recovery Vous Vous Fournisseur (auto)
Scaling Vous (materiel) Vous (config) Automatique
Haute disponibilite Vous (complexe) Vous (config) Incluse
Cout initial Tres eleve Modere Faible (pay-as-you-go)
Controle Total Eleve Limite

2.2 Avantages du cloud pour les bases de donnees


L'adoption du cloud pour les bases de donnees offre des avantages significatifs, particulierement
pertinents pour les entreprises technologiques en croissance :

• Elasticite : Capacite a adapter les ressources (CPU, RAM, stockage) a la demande, a la


hausse comme a la baisse, souvent en quelques minutes. Crucial pour gerer les pics de
trafic (ex : periodes de paie pour un service de paiement mobile).
• Haute disponibilite native : Les services manages offrent des SLA de 99.95% a 99.999%
de disponibilite, avec replication automatique et failover instantane.
• Backups automatises : Sauvegardes automatiques avec retention configurable et
restauration point-in-time (PITR), eliminant le risque de perte de donnees.
• Securite geree : Chiffrement at-rest et in-transit, gestion des certificats, pare-feu integre,
audit logging, conformite aux standards (SOC2, ISO 27001).
• Modele de cout variable : Paiement a l'usage (pay-as-you-go) sans investissement initial
en materiel. Ideal pour les startups qui doivent maitriser leur burn rate.
• Deploiement global : Possibilite de deployer des instances dans differentes regions du
monde pour reduire la latence et respecter les exigences de localisation des donnees.

3. Amazon Web Services (AWS) - Services de bases de


donnees
3.1 Amazon RDS (Relational Database Service)

Page 15
IQAC - BD Avancee L3 | Module 6 & 7

Amazon RDS est le service manage de bases de donnees relationnelles d'AWS. Il supporte
plusieurs moteurs : PostgreSQL, MySQL, MariaDB, Oracle, SQL Server, et le propre moteur
d'Amazon, Aurora.

Caracteristiques principales
• Multi-AZ (Availability Zones) : Replication synchrone sur deux zones de disponibilite
pour la haute disponibilite. En cas de panne de la zone primaire, le failover est
automatique en quelques minutes.
• Read Replicas : Repliques en lecture seule pour distribuer la charge de lecture. Jusqu'a
15 repliques pour Aurora, 5 pour les autres moteurs.
• Backups automatiques : Snapshots quotidiens et logs de transactions pour une
restauration point-in-time sur les 35 derniers jours.
• Scaling vertical : Changement de type d'instance (CPU/RAM) avec un downtime
minimal.
• Monitoring : Integration CloudWatch pour les metriques de performance (CPU, I/O,
connections, latence des requetes).

Configuration typique pour une application de paiement


# Creation d'une instance RDS PostgreSQL via AWS CLI
aws rds create-db-instance \
--db-instance-identifier quamtechs-prod \
--db-instance-class [Link] \
--engine postgres \
--engine-version 15.4 \
--master-username admin \
--master-user-password <secure-password> \
--allocated-storage 100 \
--max-allocated-storage 500 \
--storage-type gp3 \
--multi-az \
--backup-retention-period 30 \
--storage-encrypted \
--vpc-security-group-ids sg-xxxxxxxx \
--db-subnet-group-name prod-subnet-group

3.2 Amazon Aurora


Aurora est le moteur relationnel propre a AWS, compatible MySQL et PostgreSQL mais avec des
performances superieures (jusqu'a 5x plus rapide que MySQL standard, 3x plus rapide que
PostgreSQL standard) grace a une architecture de stockage distribuee proprietaire.

• Stockage auto-scalant : De 10 Go a 128 To, le stockage grandit automatiquement par


increments de 10 Go sans interruption.
• 6 copies des donnees : Repliquees sur 3 zones de disponibilite. Tolerant a la perte de 2
copies en ecriture et 3 en lecture.

Page 16
IQAC - BD Avancee L3 | Module 6 & 7

• Aurora Serverless : Mode ou la capacite de calcul s'ajuste automatiquement a la


demande, ideal pour les charges de travail variables ou imprevisibles.
• Global Database : Replication cross-region avec une latence inferieure a 1 seconde,
permettant des lectures locales partout dans le monde.

3.3 Amazon DynamoDB


DynamoDB est le service NoSQL entierement manage d'AWS, concu pour des performances a
l'echelle avec une latence previsible en millisecondes.

• Modele cle-valeur et document : Supporte des structures JSON flexibles avec des cles
de partition et de tri.
• Capacite a la demande ou provisionnee : En mode on-demand, vous payez par requete.
En mode provisionne, vous definissez des RCU/WCU (Read/Write Capacity Units).
• DynamoDB Streams : Capture les changements en temps reel pour le CDC (Change
Data Capture), permettant de declencher des Lambda functions.
• Global Tables : Replication multi-region active-active pour les applications globales.
• DAX (DynamoDB Accelerator) : Cache in-memory integre pour des temps de reponse
en microsecondes.

4. Google Cloud Platform (GCP) - Services de bases de


donnees
4.1 Cloud SQL
Cloud SQL est le service manage de bases de donnees relationnelles de Google. Il supporte
MySQL, PostgreSQL et SQL Server, avec des fonctionnalites similaires a Amazon RDS.

• Haute disponibilite regionale : Replique synchrone dans une zone secondaire avec
failover automatique.
• Scaling : Jusqu'a 96 vCPUs, 624 Go de RAM et 64 To de stockage SSD.
• Connectivite : Private IP via VPC peering, proxy Cloud SQL pour les connexions
securisees, integration IAM.

4.2 Cloud Firestore


Firestore est la base de donnees NoSQL serverless de Google, optimisee pour les applications
mobiles et web. C'est l'evolution de Firebase Realtime Database.

• Modele document : Collections et documents JSON avec sous-collections imbriquees.


• Temps reel : Synchronisation en temps reel entre le client et le serveur via des listeners.

Page 17
IQAC - BD Avancee L3 | Module 6 & 7

• Mode offline : Les applications continuent de fonctionner hors ligne avec synchronisation
automatique a la reconnexion. Tres pertinent pour le contexte africain ou la connectivite
peut etre intermittente.
• Securite granulaire : Regles de securite declaratives par document/collection.

4.3 BigQuery
BigQuery est le data warehouse serverless de Google, concu pour l'analyse de donnees a
l'echelle du petaoctet. C'est l'un des outils les plus puissants pour le Big Data analytics.

• Serverless : Aucune infrastructure a gerer. Vous ecrivez des requetes SQL et Google
gere tout le reste.
• Separation stockage/calcul : Le stockage et le traitement sont decouples, permettant un
scaling independant.
• Performances : Capable de scanner des petaoctets en quelques secondes grace a une
architecture en colonnes et une execution distribuee massive (Dremel).
• Machine Learning integre : BigQuery ML permet de creer et entrainer des modeles ML
directement en SQL.
• Cout : Stockage a ~$0.02/Go/mois. Requetes a ~$5/To scanne (1 To gratuit/mois).

Exemple de requete BigQuery


-- Analyse des tendances de paiement sur 12 mois
SELECT
FORMAT_DATE('%Y-%m', transaction_date) AS mois,
operator,
COUNT(*) AS nb_transactions,
SUM(amount) AS volume_total,
APPROX_QUANTILES(amount, 100)[OFFSET(50)] AS montant_median,
COUNT(DISTINCT user_id) AS utilisateurs_actifs
FROM `[Link]`
WHERE transaction_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 12 MONTH)
AND status = 'SUCCESS'
GROUP BY mois, operator
ORDER BY mois DESC, volume_total DESC;

-- Creation d'un modele de prediction de fraude avec BigQuery ML


CREATE OR REPLACE MODEL `[Link].fraud_model`
OPTIONS(
model_type='LOGISTIC_REG',
input_label_cols=['is_fraud']
) AS
SELECT
amount, hour_of_day, day_of_week,
transaction_frequency_24h, avg_amount_7d,
is_new_device, distance_from_usual_location,
is_fraud
FROM `[Link].labeled_transactions`;

Page 18
IQAC - BD Avancee L3 | Module 6 & 7

5. Microsoft Azure - Services de bases de donnees


5.1 Azure SQL Database
Azure SQL Database est le service relationnel manage base sur SQL Server. Il se distingue par
son integration etroite avec l'ecosysteme Microsoft et ses fonctionnalites avancees d'intelligence
integree.

• Modeles d'achat : DTU (Database Transaction Unit) pour un bundle simple


CPU+IO+memoire, ou vCore pour un controle granulaire des ressources.
• Serverless : Mode ou la base de donnees peut se mettre en pause automatiquement
apres une periode d'inactivite, reduisant les couts a zero pendant les periodes creuses.
• Elastic pools : Partage de ressources entre plusieurs bases de donnees pour optimiser
les couts quand les charges de travail sont variables.
• Intelligence integree : Recommandations automatiques d'index, identification des
requetes lentes, detection d'anomalies.

5.2 Azure Cosmos DB


Cosmos DB est la base de donnees NoSQL multi-modele et globalement distribuee d'Azure. C'est
l'un des services les plus ambitieux du cloud en termes de distribution geographique.

• Multi-modele : Supporte les APIs Document (MongoDB-compatible), Key-Value,


Column-family (Cassandra-compatible), Graph (Gremlin), et Table.
• Distribution globale : Replication dans n'importe quelle region Azure avec des latences
d'ecriture < 10ms et de lecture < 10ms au 99eme percentile.
• 5 niveaux de coherence : Strong, Bounded staleness, Session, Consistent prefix,
Eventual. Permet de choisir precisement le compromis entre coherence et performance.
• SLA le plus complet : 99.999% de disponibilite en multi-region.
• Request Units (RU) : Unite de mesure normalisee du cout d'une operation. 1 RU =
lecture d'un document de 1 Ko par sa cle.

6. Scaling et haute disponibilite dans le cloud


6.1 Strategies de scaling

Scaling vertical (Scale-up)


Augmenter les ressources d'une seule machine : plus de CPU, de RAM, de stockage ou d'IOPS.
Simple a mettre en oeuvre mais avec des limites physiques et un potentiel downtime lors du
changement de taille d'instance.

Page 19
IQAC - BD Avancee L3 | Module 6 & 7

Scaling horizontal (Scale-out)


Ajouter plus de machines au cluster. Plus complexe a implementer mais theoriquement illimite.
Necessite une architecture adaptee (sharding, replication). C'est l'approche privilegiee pour les
systemes a tres haute charge.

Auto-scaling
Le cloud permet de configurer des regles d'auto-scaling qui ajustent automatiquement les
ressources en fonction de metriques (CPU, nombre de connexions, latence). Exemple avec
Aurora Serverless : la capacite en ACU (Aurora Capacity Units) s'ajuste automatiquement entre
un minimum et un maximum configures.

6.2 Geo-replication et multi-region


La geo-replication consiste a maintenir des copies de la base de donnees dans differentes
regions geographiques. Elle sert deux objectifs :

• Performance : Les utilisateurs accedent a la replique la plus proche, reduisant la


latence. Un utilisateur a Douala accede a une replique en Afrique plutot qu'en Europe.
• Resilience : En cas de panne d'une region entiere (catastrophe naturelle, panne reseau
majeure), le service peut basculer vers une autre region.

Patterns de geo-replication

Latence
Pattern Description Coherence Complexite
ecriture
Active-Passive Une region ecrit, les Normale Forte (sync) ou Faible
autres lisent eventuelle (async)
Active-Active Toutes les regions Normale Eventuelle (conflits Elevee
ecrivent possibles)
Multi-Master Ecriture partout avec Normale Definie par Tres elevee
resolution de conflits l'application

6.3 Estimation des couts cloud


L'estimation des couts est une competence essentielle. Les principaux facteurs de cout pour les
bases de donnees cloud sont :

• Calcul (Compute) : Type et nombre d'instances, heures d'utilisation. Le poste le plus


important pour les bases actives.

Page 20
IQAC - BD Avancee L3 | Module 6 & 7

• Stockage : Volume de donnees stockees, type de stockage (SSD, HDD, archive).


Generalement le moins cher.
• I/O : Nombre d'operations d'entree/sortie (lectures, ecritures). Significatif pour les
charges intensives.
• Transfert reseau : Le transfert entrant est generalement gratuit. Le sortant est facture
par Go. Le transfert inter-regions est plus cher.
• Backups : Stockage des sauvegardes au-dela de la retention gratuite.
• Support : Les plans de support entreprise representent un pourcentage de la facture
totale.

Exemple d'estimation pour QuamTechs Pay

Composant Configuration Cout mensuel estime


RDS PostgreSQL (Multi-AZ) [Link] (2vCPU, 16 Go RAM) ~150 USD
Stockage GP3 100 Go + 3000 IOPS ~12 USD
Read Replica [Link] (1 replique) ~75 USD
Backups 30 jours retention, 200 Go ~4 USD
Transfert donnees 50 Go/mois sortant ~5 USD
Redis (ElastiCache) [Link] ~50 USD
TOTAL ~296 USD / mois

Conseil pratique
Pour une startup comme QuamTechs en phase de croissance, commencer avec des instances de
taille moderee et utiliser l'auto-scaling est plus judicieux que de surdimensionner des le depart. Les
outils de calculatrice de couts (AWS Calculator, GCP Pricing Calculator) sont indispensables avant
tout deploiement.

7. Defis et bonnes pratiques


7.1 Le probleme du vendor lock-in
Le vendor lock-in (dependance a un fournisseur) est l'un des risques majeurs du cloud. Il se
manifeste quand votre application devient tellement dependante des services specifiques d'un
fournisseur qu'une migration vers un autre devient extremement couteuse.

Strategies de mitigation
• Utiliser des standards ouverts : Privilegier PostgreSQL (multi-cloud) plutot que Aurora
(AWS-only). Utiliser des formats de donnees portables (Parquet, CSV).

Page 21
IQAC - BD Avancee L3 | Module 6 & 7

• Abstraction par couches : Implementer une couche d'abstraction (repository pattern,


ORM) entre votre application et la base de donnees pour faciliter un changement de
fournisseur.
• Infrastructure as Code : Utiliser Terraform (multi-cloud) plutot que CloudFormation
(AWS-only) pour decrire votre infrastructure.
• Conteneurisation : Docker et Kubernetes permettent de deplacer les workloads entre
fournisseurs plus facilement.
• Architecture multi-cloud : Pour les systemes critiques, distribuer les services entre
plusieurs fournisseurs (complexe mais resilient).

7.2 Securite dans le cloud


La securite dans le cloud suit le modele de responsabilite partagee : le fournisseur securise
l'infrastructure, vous securisez vos donnees et configurations.

Checklist de securite pour les bases de donnees cloud


10. Chiffrement at-rest active (AES-256 minimum).
11. Chiffrement in-transit (TLS 1.2+ pour toutes les connexions).
12. Acces via Private Endpoint / VPC uniquement (pas d'IP publique).
13. Authentification forte (IAM roles, pas de mots de passe dans le code).
14. Principe du moindre privilege pour tous les comptes.
15. Audit logging active et revise regulierement.
16. Alertes configurees sur les acces anormaux.
17. Backups testes regulierement (un backup non teste n'existe pas).
18. Plan de disaster recovery documente et teste.
19. Conformite verifiee (RGPD, reglementations COBAC/BEAC pour les fintechs).

7.3 Considerations specifiques au contexte africain


Le deploiement de bases de donnees cloud en Afrique presente des defis et opportunites
specifiques :

• Latence : Peu de regions cloud en Afrique (AWS Cape Town, Azure Johannesburg,
GCP bientot). Les applications ouest-africaines subissent de la latence vers les
datacenters europeens. Solution : CDN, caching agressif, repliques en lecture locales.
• Connectivite : La bande passante internationale est couteuse. Optimiser la taille des
transferts, utiliser la compression, minimiser les aller-retours reseau.
• Cout : Le modele pay-as-you-go est avantageux pour les startups africaines qui ont un
budget limite. Les reserved instances offrent jusqu'a 70% de reduction pour les charges
stables.
• Localisation des donnees : Certaines reglementations (COBAC, loi camerounaise)
peuvent exiger que les donnees financieres restent sur le territoire national ou dans la
zone CEMAC. Verifier les exigences avant de choisir une region.

Page 22
IQAC - BD Avancee L3 | Module 6 & 7

• Mode offline/resilient : Concevoir les applications pour fonctionner en mode degrade


quand la connexion au cloud est instable.

8. Travaux Pratiques - Module 7 (2h)


TP 1 : Comparaison des services cloud (1h)
Objectif : Evaluer et comparer les offres cloud pour un projet concret.

20. Scenario : QuamTechs souhaite migrer sa base de donnees PostgreSQL vers le cloud
pour supporter 200 000 utilisateurs.
21. Pour chaque fournisseur (AWS, GCP, Azure), identifiez le service le plus adapte et
justifiez.
22. Estimez le cout mensuel pour chaque option en utilisant les calculatrices en ligne.
23. Listez les avantages et inconvenients de chaque option.
24. Redigez une recommandation argumentee de 2 pages maximum.

TP 2 : Deploiement d'une application avec base cloud (1h)


Objectif : Deployer une application Spring Boot connectee a une base de donnees cloud.

25. Creer un compte gratuit sur un fournisseur cloud (GCP Free Tier recommande).
26. Provisionner une instance Cloud SQL (PostgreSQL) avec les parametres de securite.
27. Configurer l'application Spring Boot pour se connecter a la base cloud ([Link]
avec les variables d'environnement).
28. Deployer l'application et executer des tests de connexion.
29. Configurer les backups automatiques et verifier qu'ils fonctionnent.

Configuration Spring Boot pour Cloud SQL


# [Link]
spring:
datasource:
url: jdbc:postgresql://${DB_HOST}:5432/${DB_NAME}
username: ${DB_USER}
password: ${DB_PASSWORD}
hikari:
maximum-pool-size: 20
minimum-idle: 5
connection-timeout: 30000
idle-timeout: 600000
jpa:
hibernate:
ddl-auto: validate
properties:

Page 23
IQAC - BD Avancee L3 | Module 6 & 7

hibernate:
dialect: [Link]
jdbc:
batch_size: 50
order_inserts: true

# Variables d'environnement (ne jamais hardcoder)


# DB_HOST=[Link] (Private IP)
# DB_NAME=quamtechs_prod
# DB_USER=app_user
# DB_PASSWORD=<from-secret-manager>

9. Modalites d'evaluation - Modules 6 & 7

Composante Poids Description


Controle continu 30% Participation, exercices en classe, quiz
TP notes 30% Rendus des 4 travaux pratiques
Examen final 40% Epreuve ecrite combinant theorie et cas pratiques

9.1 Themes probables de l'examen


• Questions de cours : 5V du Big Data, architecture Hadoop, comparaison MapReduce vs
Spark, modeles de service cloud, theoreme CAP applique au cloud.
• Cas pratique : Concevoir l'architecture Big Data et/ou cloud pour un projet fintech.
Choisir et justifier les technologies. Estimer les couts.
• Exercice technique : Ecrire des requetes PySpark ou Spark SQL pour analyser un
dataset. Configurer un service cloud (RDS, Cloud SQL) a partir de specifications.

10. Ressources complementaires


Livres de reference
• "Designing Data-Intensive Applications" - Martin Kleppmann (reference incontournable)
• "Hadoop: The Definitive Guide" - Tom White (pour approfondir l'ecosysteme Hadoop)
• "Spark: The Definitive Guide" - Bill Chambers, Matei Zaharia
• "Cloud Native Databases" - Chaitan Baru

Ressources en ligne
• Documentation officielle Apache Spark : [Link]
• AWS Free Tier : [Link] (pour experimenter sans frais)

Page 24
IQAC - BD Avancee L3 | Module 6 & 7

• Google Cloud Skills Boost : [Link] (formations gratuites)


• Coursera - "Big Data Specialization" (University of California San Diego)
• Databricks Academy : [Link] (cours Spark gratuits)

Outils a installer
• Apache Spark (mode local) : Pour les TPs PySpark
• Docker Desktop : Pour simuler des environnements distribues localement
• DBeaver : Client SQL universel pour se connecter aux bases cloud
• Terraform : Pour l'Infrastructure as Code (optionnel mais recommande)

Page 25

Vous aimerez peut-être aussi