This is part three in our six-part series exploring alternatives to Apache Parquet. So far we’ve covered Parquet for on-disk storage and Apache Arrow for in-memory processing. Today we look at Lance, an open-source format built to handle the access patterns that Parquet was never designed for.
Parquet was designed around analytical scans, reading a few columns across many rows, as fast as possible. Many modern workloads look different: Machine learning (ML) training shuffles and samples individual rows, feature lookups fetch a handful of records at a time, and embeddings and images sit next to ordinary tabular data.
The underlying storage has changed dramatically too, from spinning disks to NVMe SSDs and cloud object stores. Lance, written in Rust, is designed to take advantage of these shifts.