datafusion-contrib / datafusion-contrib/liquid-cache
Project idea: How good is well-configured parquet compared to proprietary file formats?
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 452
- Forks
- 51
- Avg merge
- 3h 10m
- Merged PRs (30d)
- 12
Description
I had a nice talk with @alamb today, and he suggested a fun project
Observations: proprietary file formats usually perform faster than Parquet, as shown in ClickBench
There're two hypothesis to explain this performance gap:
- Those formats somehow do better than Parquet
- Those systems load the raw ClickBench's Parquet file and make sorting/clustering when convert them into proprietary formats. Therefore, a lot of the benefits come from sorting/clustering.
The goal of this project is to:
- Quantify how much benefits come from the format itself versus the pre-processing of the file
- (extend goal) figure out exactly which features of the proprietary file format are better than Parquet.
Concrete steps:
- Run DataFusion with unmodified ClickBench
- Make a sorted/clustered ClickBench Parquet file
- Run DataFusion with this new Parquet file, and compare the performance
- Profile and analyze where did the time go
Fun challenge: how much performance gain you can get by simply tuning the Parquet configurations -- page index, bloom filter, clustering, compression etc.
More contexts: https://x.com/andrewlamb1111/status/1925537738360504663
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No source files or tests are named. Start with the ClickBench dataset and the unmodified DataFusion run, then compare it with sorted or clustered Parquet and tuned Parquet configurations. Done means quantifying format versus preprocessing gains, profiling the costs, and documenting which Parquet settings or proprietary-format features explain the difference.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- data-engineering, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100