為延遲查詢做效能剖析
在把新查詢加入每日工作流程之前,團隊想先了解時間花在哪裡。剖析會像 .collect() 一樣執行延遲查詢,但另外會回傳一個 timings 的 DataFrame,每個階段對應一列。
本練習屬於課程
使用 Polars 擴充與最佳化資料管線
練習說明
- 將
library篩選為use等於"Physical"的借閱紀錄。 - 使用
.top_k()依title_len保留最長的前 10 個標題。 - 以啟用剖析的方式執行查詢,讓你同時取得 timings 的 DataFrame。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)