Zajímavé je, že jsem si vždy myslel, že pokud odkazujete na jiný dotaz na Dune, bude to dost neefektivní, protože Trino optimalizátor neplánuje externí dotaz a aktuální dotaz dohromady. Ale ukázalo se, že ano. Mám dotaz A: tabulku Morpho trhů s nabídkou/výběrem. Toto je kompletní záznam událostí, takže by měl být docela náročný. Pak dotaz B, který odkazuje na dotaz A, filtruje na jednom konkrétním market_id. Ukázalo se, že Trino je stále dost chytrý na to, aby provedl predikátové pushdown (hosní termín pro filtrování co nejdříve) na dotaz A. Jednoduše řečeno, přenesl můj market_id filtr na dotaz A, i když byl použit na dotazu B. Nejsem si jistý, jestli Trino bude dělat totéž i u složitějších dotazů. Ale důsledky tohoto jsou následující: Možná nebudete muset předoptimalizovat nebo dělat rané filtrování základních tabulek. Pokud jsou vaše filtry na posledních tabulkách, což jsou tabulky, které se běžně používají k vytváření dashboardů, Trino dokáže filtry posunout dolů (to je zvláštní věta). Zpočátku jsem se toho dost obával a trochu jsem to přehnaně optimalizoval. Ale varování je, že to můžete udělat jen tehdy, pokud už očekáváte, že tabulky za vámi budou mít nějaký druh filtrování. Protože pokud tuto optimalizaci neprovedete u upstream stolů, bude vás to stát hodně kreditů. Samozřejmě platí standardní pravidlo v optimalizaci, například pokud před filtrováním podle určitých hodnot provedete window function, tak vás to uškodí, protože budete mít okno napříč celým datovým souborem. Nic extra. Takže návrh dotazu závisí na očekávaném případě použití tabulky dolů. Nevím, jestli to dává smysl, nebo jestli je to správně. Možná se na to někdo také podívá. Je to ale docela zajímavé.