ParquetDB: A Lightweight Python Parquet-Based Database
Logan Lang, Eduardo Hernandez, Kamal Choudhary, Aldo H. Romero
TL;DR
ParquetDB introduces a Python-based database framework that uses Apache Parquet and PyArrow to deliver efficient, columnar-storage–driven data management for complex and nested data. It eliminates heavy reliance on indexing by exploiting Parquet's metadata, predicate pushdown, and columnar encoding, while supporting schema evolution and data normalization. Through benchmarks against SQLite and MongoDB and a real-world Alexandria 3D Materials Database deployment, ParquetDB demonstrates strong update and read performance on large, nested datasets, with practical workflows for create, read, update, and delete operations. The work argues for ParquetDB as a scalable, portable alternative for data-intensive research and big-data pipelines, especially where rapid iteration and flexible data models are required.
Abstract
Traditional data storage formats and databases often introduce complexities and inefficiencies that hinder rapid iteration and adaptability. To address these challenges, we introduce ParquetDB, a Python-based database framework that leverages the Parquet file format's optimized columnar storage. ParquetDB offers efficient serialization and deserialization, native support for complex and nested data types, reduced dependency on indexing through predicate pushdown filtering, and enhanced portability due to its file-based storage system. Benchmarks show that ParquetDB outperforms traditional databases like SQLite and MongoDB in managing large volumes of data, especially when using data formats compatible with PyArrow. We validate ParquetDB's practical utility by applying it to the Alexandria 3D Materials Database, efficiently handling approximately 4.8 million complex and nested records. By addressing the inherent limitations of existing data storage systems and continuously evolving to meet future demands, ParquetDB has the potential to significantly streamline data management processes and accelerate research development in data-driven fields.
