DuckDB - Performance Evaluation Using Parquet, CSV, and JSON Files

Authors:

Abstract
The landscape of data analytics is shifting towards high-performance local processing, necessitating efficient interaction between embedded engines like DuckDB and underlying file formats. This paper presents a comparative benchmarking study of DuckDB’s performance across Apache Parquet, CSV, and JSON, using TPC-H workloads up to 10 GB. Beyond confirming the superiority of columnar storage, we quantify the performance gap, demonstrating that Parquet executes analytical queries approximately 90% faster than row-oriented formats while maintaining stable performance regardless of dataset scale. Furthermore, we provide a granular analysis of the trade-offs between CSV and JSON. While both incur significant I/O overhead, our results isolate distinct bottlenecks: JSON imposes a severe storage penalty, consuming over 10x more space than Parquet, whereas CSV demonstrates extreme sensitivity to caching, with execution times nearly doubling in cold-cache scenarios compared to warm-cache runs. These findings establish clear guidelines for local analytical pipelines: while Parquet is mandatory for performance, the choice between CSV and JSON for ingestion must weigh storage costs against parsing overhead and cache dependency.