Comment rapprocher les filtres du stockage a fait passer une requête de 90 secondes à 8 — sans acheter le moindre serveur supplémentaire.

La donnée la moins chère à traiter est celle qu’on ne lit jamais. Le predicate pushdown est la discipline qui consiste à décider quoi ignorer le plus tôt physiquement possible.
Dans un entrepôt de données en colonnes, l’essentiel du temps d’une requête est consacré à déplacer des octets depuis le disque et à travers le réseau. Si un filtre peut éliminer un row group avant même qu’il soit lu, c’est du coût économisé à l’état pur.
Parquet stocke des statistiques min/max par row group et par page. Une requête sur les commandes supérieures à 1 000 $ peut ignorer tout bloc dont le maximum est sous ce seuil — souvent la majeure partie du fichier.
L’astuce consiste à apprendre à chaque couche — planificateur, scanner, stockage — à honorer le prédicat au lieu de le revérifier au sommet. Chaque couche qui élimine des lignes tôt réduit le travail de tout ce qui se trouve au-dessus.
Sur un entrepôt de 4 Po, le pushdown a fait passer une requête de tableau de bord représentative de 90 secondes à moins de 8 — avec exactement le même matériel.