Sur BigQuery, on paie les données lues. Ce test vérifie la compétence la plus critique — et la plus rare — : la conscience du coût. On donne une requête qui « marche » mais scanne des téraoctets inutiles, et on regarde si le candidat sait la rendre économe. Corrigé et logique de coût inclus.
Le principe à comprendre : BigQuery facture les octets scannés, pas le temps. Deux leviers réduisent la facture — sélectionner uniquement les colonnes utiles, et filtrer sur la colonne de partition. Un candidat qui l'ignore peut générer de grosses factures.
« Cette requête coûte cher à chaque exécution. Réduis son coût sans changer le résultat. »
La table des commandes est partitionnée par date et contient de nombreuses colonnes. La requête ci-dessous ignore les deux leviers de coût de BigQuery.
-- Table commandes : partitionnee par date_commande, ~50 colonnes, plusieurs To
SELECT *
FROM commandes
WHERE EXTRACT(YEAR FROM date_commande) = 2024 -- fonction : ignore la partition
-- SELECT * : scanne les ~50 colonnes ; le filtre par fonction lit TOUTES les partitionsChacun multiplie inutilement les octets scannés.
Un bon candidat identifie précisément pourquoi cette requête est chère, en raisonnant en octets scannés — pas en temps d'exécution.
Colonnes utiles + filtre par plage de dates.
La version optimisée ne lit que les colonnes nécessaires et filtre par plage de dates, ce qui active l'élagage de partitions. Le coût peut chuter de plusieurs ordres de grandeur.
SELECT client_id, montant, date_commande -- colonnes utiles seulement
FROM commandes
WHERE date_commande >= '2024-01-01'
AND date_commande < '2025-01-01' -- filtre de partition -> elagage
-- Resultat identique, une fraction des octets scannes.Signal d'alerte : le vrai marqueur : le candidat raisonne spontanément en octets scannés et vérifie le coût estimé (dry run) avant de lancer. Celui qui traite BigQuery comme une base classique représente un risque financier réel.
| Niveau | Maîtrise attendue | Signal GO | NO-GO |
|---|---|---|---|
| Junior | Écrit une requête correcte | Obtient le bon résultat | Lance SELECT * sans filtre |
| Confirmé | Sélectionne les colonnes utiles | Réduit les colonnes scannées | Ignore le partitionnement |
| Senior | Active l'élagage de partitions | Raisonne en octets scannés | Ne relie jamais requête et facture |
| Lead | Met en place des garde-fous coût | Anticipe le coût avant d'exécuter | Traite BigQuery comme une base classique |
Data Builder mène l'entretien technique et vous livre un rapport clair et détaillé sous 24h. Premier entretien offert.