Il est intéressant de noter que j'ai toujours pensé que si vous faites référence à une autre requête Dune, cela serait assez inefficace car l'optimiseur Trino ne planifie pas la requête externe et la requête actuelle ensemble. Mais il s'avère que ce n'est pas le cas. J'ai la Requête A : une table des marchés Morpho pour les dépôts/retraits. C'est le journal complet des événements, donc cela devrait être assez lourd. Puis la Requête B, qui fait référence à la Requête A, filtre sur un market_id spécifique. Il s'avère que Trino est encore assez intelligent pour effectuer un pushdown de prédicat (terme sophistiqué pour filtrer le plus tôt possible) sur la Requête A. En d'autres termes, il a transféré mon filtre market_id à la Requête A même si le filtre était appliqué sur la Requête B. Je ne suis pas sûr que, pour des requêtes plus complexes, Trino fera la même chose. Mais les implications de cela sont : Vous n'avez peut-être pas besoin de pré-optimiser ou de faire un filtrage précoce sur les tables de base. Si vos filtres sont sur les tables de dernière ligne, qui sont des tables généralement utilisées pour créer des tableaux de bord, Trino est capable de pousser les filtres en amont (quelle phrase étrange). J'étais assez préoccupé par cela au début et j'ai un peu trop optimisé. Mais le mot d'avertissement est que vous ne pouvez faire cela que si vous vous attendez déjà à ce que les tables en aval aient une sorte de filtrage. Parce que si vous ne faites pas cette optimisation sur les tables en amont, cela va vous coûter beaucoup de crédits. Bien sûr, la règle standard s'applique en optimisation, comme si vous faites une fonction de fenêtre avant de filtrer sur des valeurs particulières, alors cela va vous coûter cher car vous allez faire une fonction de fenêtre sur l'ensemble du jeu de données. Pas bon. Donc vraiment, la conception de la requête dépend du cas d'utilisation anticipé de la table en aval. Je ne suis pas sûr que je sois clair ou si c'est correct. Peut-être que quelqu'un peut aussi vérifier cela. C'est plutôt cool cependant.