Een luie query profileren
Voordat er een nieuwe query aan de dagelijkse workflow wordt toegevoegd, wil het team zien waar de tijd daadwerkelijk aan opgaat. Profiling voert de luie query uit zoals .collect(), maar retourneert ook een timings-DataFrame met één rij per fase.
Deze oefening maakt deel uit van de cursus
Data-pipelines schalen en optimaliseren met Polars
Oefeninstructies
- Filter
librarynaar checkouts waarusegelijk is aan"Physical". - Behoud de 10 langste titels op basis van
title_lenmet.top_k(). - Voer de query uit met profiling zodat je ook een timings-DataFrame krijgt.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
result, timings = (
library
# Filter to physical checkouts
.filter(pl.col("use") == "____")
.with_columns(pl.col("title").str.len_chars().alias("title_len"))
# Keep the 10 longest titles
.top_k(10, by="____")
# Run with profiling to capture per-stage timings
.____()
)
print(timings)