Back to glossary

Columnar Storage

A data storage format that organizes data by columns rather than rows, enabling highly efficient compression and dramatically faster analytical queries that access only a subset of columns.

Traditional row-based storage stores all columns of a record together: (name, age, city, salary), (name, age, city, salary). Columnar storage groups all values of the same column together: (name, name, name), (age, age, age). This layout has profound implications for analytical workloads that typically access a few columns across many rows.

Columnar storage enables two major optimizations. First, queries that select specific columns (SELECT avg(salary) FROM employees) read only the relevant column data, skipping all others. For wide tables with hundreds of columns, this can reduce I/O by 95%. Second, columns of the same type compress extremely well because similar values are stored adjacently, achieving 5-10x compression ratios.

Formats like Apache Parquet and Apache ORC are the standard columnar formats for data lakes. Data warehouses like BigQuery, Snowflake, and Redshift use columnar storage internally. For AI teams, columnar formats are ideal for storing training datasets and feature tables, where feature engineering queries typically select specific columns from tables with many features.

Related Terms