-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Is your feature request related to a problem or challenge?
I spent some time looking at the ClickBench results with DataFusion 40.0.0
#11567 (comment) (thanks @pmcgleenon 🙏 )
Specifically, I looked into how we could make some of the already fast queries on the the partitioned dataset faster. Unsurprisingly, for the really fast queries the query time is actually dominated by parquet metadata analysis and DataFusion statistics creation.
For example
ClickBench Q0
SELECT COUNT(*) FROM hits;
To reproduce, run:
cd datafusion
cargo run --release --bin dfbench -- clickbench --iterations 100 --path benchmarks/data/hits_partitioned --query 0I profiled this using Instruments. Here are some annotated screenshots
Some of my take aways are
- a substantial amount of time is spent reading the parquet metadata twice
- A substantial amount of time is spent managing the ScalarValues in statistics
Describe the solution you'd like
If would be cool to make these queries faster by reducing the per file metadata handling overhead (e.g. don't read the metadata more than once and figure out some way to make statistics handling more efficient)
Describe alternatives you've considered
Note this project isn't broken down into tasks yet
I think @Ted-Jiang did some work way back to cache parquet metaddata
Additional context
No response