Demain matin, ou tout de suite
Un grossiste en produits frais reçoit deux demandes le même jour.
La direction veut les ventes de la semaine, ville par ville. La réponse peut attendre demain matin.
Le responsable de la chambre froide veut une alerte si la température dépasse 4 °C. Là, une heure de retard, c'est un camion de poisson à jeter.
À la fin de cette leçon
Remarque
Je peux dire quand les données vont dans un entrepôt et quand elles circulent en flux.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Entrepôt de données | une base qui garde l'historique pour les rapports | |
| Traitement par lots | traiter beaucoup de lignes d'un coup, à heure fixe | |
| Événement | un fait daté, envoyé dès qu'il arrive | un relevé de température |
| Flux | une suite d'événements traités un par un, en continu | |
| Délai | le temps entre le fait et la réaction |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Un entrepôt garde l'historique pour les rapports
Un entrepôt de données reçoit les lignes par lots, souvent chaque nuit. C'est la fin d'un pipeline ETL.
Il garde des mois ou des années d'historique. On l'interroge en SQL pour les rapports et les tableaux de bord.
Les chiffres ont quelques heures de retard. Pour un rapport de la semaine, c'est sans importance.
Interroger l'entrepôt
-- Les livraisons de la semaine, chargées chaque nuit.
-- Le chiffre d'affaires de chaque jour :
SELECT jour, COUNT(*) AS livraisons, SUM(montant) AS ventes
FROM livraisons
GROUP BY jour
ORDER BY jour;
-- Remplacez jour par ville aux deux endroits, puis exécutez.
Un flux réagit à chaque événement
Dans un flux, chaque événement est traité dès qu'il arrive. On n'attend pas la nuit.
Le capteur de la chambre froide envoie un relevé par minute. Le programme le lit et décide tout de suite.
On choisit un flux quand le délai compte : une alerte, une fraude à la carte, la position d'un livreur.
Surveiller une chambre froide
# Un capteur envoie la température de la chambre froide toutes les minutes.
# Chaque relevé est un événement, traité dès qu'il arrive.
releves = [
{"heure": "03:00", "temperature": 2.5},
{"heure": "03:01", "temperature": 3.0},
{"heure": "03:02", "temperature": 5.5},
{"heure": "03:03", "temperature": 3.5},
]
limite = 4
for evenement in releves:
# On agit tout de suite, sans attendre le relevé suivant.
if evenement["temperature"] > limite:
print(evenement["heure"], "ALERTE : appeler le technicien de garde")
else:
print(evenement["heure"], "température correcte")
# Baissez la limite à 3, puis exécutez. Combien d'alertes ?
Lots ou flux, côte à côte
| Critère | Entrepôt, par lots | Flux |
|---|---|---|
| Quand ? | à heure fixe, souvent la nuit | à chaque événement |
| Délai | quelques heures | quelques secondes |
| Pour quoi ? | rapports, historique, tendances | alertes, décisions immédiates |
| Exemple | ventes de la semaine par ville | température trop haute |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une erreur fréquente
Attention
Beaucoup pensent qu'un flux est toujours mieux, parce qu'il est plus rapide. C'est faux. Un flux coûte plus cher à construire et à surveiller. Choisissez-le seulement quand quelqu'un doit agir vite. Sinon, un lot de nuit suffit.