Bandeau illustrant la rencontre entre les données et la technologie : circuits, graphes et flux d'information.

Notes de cours hebdomadaires

L'informatique des entrepôts de données

Quatorze semaines pour comprendre comment on stocke, indexe, comprime, répartit et explore de très grands volumes de données — du modèle relationnel et des arbres B jusqu'au NoSQL, en passant par OLAP et MDX.

À propos de ces notes

Chaque semaine présente un thème, l'illustre par des exemples concrets, du code et des schémas, puis se termine par un court quiz qui vous permet de vérifier votre compréhension. Les notes sont conçues pour être lues confortablement à l'écran et sont compatibles avec les lecteurs d'écran. Choisissez une semaine ci-dessous pour commencer.

Module 1 — Fondations, architecture et vues

Préalables

Les fondations : relationnel, algorithmique et probabilités

Tables, clés et SQL, notation grand-O et complexité, moyenne, variance, corrélation et théorème de Bayes.

Lire la semaine 1
Architecture

L'architecture d'un entrepôt et la méthode ETC

Sémantique, traçabilité et magasins de données ; extraction-transformation-chargement, fichiers plats et XML.

Lire la semaine 2
Vues

Les vues et l'estimation de leur taille

Vues matérialisées, sélection gloutonne, échantillonnage par réservoir et estimation à la Flajolet-Martin.

Lire la semaine 3

Module 2 — Indexation, stockage et compression

Indexation

Les techniques d'indexation

Arbres B et tables de hachage, index inversé pour le texte, indexation XML (ORDPATH) et indexation des jointures.

Lire la semaine 4
Indexation

Indexation des données multidimensionnelles

Cube de données, MOLAP, index de projection, bases orientées colonne, index bitmap et bitmaps Roaring.

Lire la semaine 5
Compression

La compression dans les bases de données

Théorie de l'information, codage de Huffman, LZW, codage des différences et compression des préfixes.

Lire la semaine 6

Module 3 — Architecture répartie

Architecture

Les bases de données réparties

Mise à l'échelle, haute disponibilité, infonuagique et architectures à partage complet, à partage de disque et sans partage.

Lire la semaine 7

Module 4 — OLAP, MDX et tableaux de bord

OLAP

Introduction à OLAP

Table de faits, schémas en étoile, en flocon et en galaxie, cube de données et matérialisation partielle (ROLLUP).

Lire la semaine 8
OLAP

Les opérations OLAP

Roll-up, drill-down, slice, dice, pivot, ainsi que les requêtes iceberg, skyline et diamond.

Lire la semaine 9
MDX

Introduction à MDX

Le langage des cubes : membres, tuples, sets, spécification d'axes et de filtres, avec le moteur Mondrian.

Lire la semaine 10
MDX

Notions intermédiaires de MDX

Fonctions sur les sets, CrossJoin, membres calculés (with) et manipulation de la dimension temps.

Lire la semaine 11
Tableaux de bord

JPivot et les tableaux de bord

Une interface graphique pour formuler des requêtes OLAP, le drill-through et la création de tableaux de bord.

Lire la semaine 12

Module 5 — Exploration de données et alternatives

Exploration

L'exploration des données

Partitionnement (K-means), règles d'association (Apriori) et arbres de décision (CART).

Lire la semaine 13
NoSQL

NoSQL

Bases de données orientées document, en graphe, orientées objet, clé-valeur et orientées colonne.

Lire la semaine 14

Ressources transversales

Aide-mémoire

Pense-bête

Unités d'information, logarithmes et factorielles, vecteurs et matrices, notation grand-O, probabilités, théorème de Bayes et entropie.

Consulter le pense-bête
Navigation

Rechercher dans les notes

Un moteur de recherche qui parcourt les quatorze semaines, section par section, sans quitter le navigateur.

Ouvrir la recherche

À propos de l'auteur

Daniel Lemire

Professeur d'informatique · Laboratoire de science des données, Université du Québec (TÉLUQ), Montréal

Les recherches de Daniel Lemire portent sur la performance logicielle et l'ingénierie des données — précisément les thèmes au cœur de ces notes : indexation, compression et traitement de grands volumes de données.

Il a notamment conçu les Roaring Bitmaps, une structure d'index compressée devenue un standard, utilisée au cœur de nombreux systèmes — Apache Spark, Elasticsearch, Apache Druid, Apache Hive… — et par des entreprises comme Google, Microsoft, Uber et Wikipédia. Vous les croiserez d'ailleurs à la semaine 5. Il est aussi l'un des auteurs de simdjson, une bibliothèque capable d'analyser plusieurs gigaoctets de JSON par seconde.

Son blogue, suivi par une vaste communauté de développeuses et de développeurs, aborde la performance, les algorithmes et la programmation. Il figure parmi les 2 % de scientifiques les plus cités au monde (classement Stanford/Elsevier) et parmi les développeurs les plus suivis sur GitHub.