Standard

ORC

Optimized Row Columnar file format specification — a columnar format with built-in indexing, compression, and predicate pushdown support, originally developed for the Hive ecosystem.

5 connections 3 resources

Summary

What it is

Optimized Row Columnar file format specification — a columnar format with built-in indexing, compression, and predicate pushdown support, originally developed for the Hive ecosystem.

Where it fits

ORC is the legacy columnar format in the Hadoop/Hive ecosystem. On S3, it serves the same role as Parquet — efficient columnar storage for analytical queries — but is primarily used in organizations with existing Hive investments.

Misconceptions / Traps
  • ORC and Parquet are functionally similar for most workloads. The choice is usually driven by ecosystem (Hive → ORC, everything else → Parquet) rather than technical superiority.
  • ORC's built-in ACID support (for Hive) operates differently from table format ACID (Iceberg, Delta). They are not the same concept.
Key Connections
  • used_by Apache Spark, Trino — supported as a data file format
  • solves Cold Scan Latency — columnar format enables predicate pushdown
  • scoped_to S3, Table Formats

Definition

What it is

Optimized Row Columnar file format specification. A columnar format with built-in indexing, compression, and predicate pushdown support, originally developed for the Hive ecosystem.

Why it exists

ORC predates Parquet in the Hadoop ecosystem and remains in use in organizations with significant Hive and Spark-on-YARN investments. It provides similar benefits to Parquet (columnar storage, efficient analytics) with different performance trade-offs.

Primary use cases

Analytical data storage in Hive-centric S3 environments, legacy Hadoop data lake compatibility.

Recent developments

Latest signals
  • Apache ORC 2.3.0 is the current release. The 2.3.0 line adds Java 25 support and a new Lz4Codec based on lz4-java, alongside the usual dependency and reader/writer fixes. The C++ library is now packaged as orc/2.3.0 on Conan Center for native builds. Per apache/orc releases and Conan Center (orc/2.3.0).
  • Format spec split into its own repository. Apache ORC Format 1.0.0 carries the spec and protobuf definitions, designed for Apache ORC 2.0+, kept separate from the implementation. Per GitHub (apache/orc-format).
  • Arrow provides first-class ORC read/write. PyArrow supports reading and writing ORC, with Arrow acting as the in-memory representation layer; ORC itself originated for Hadoop and is adopted by Drill, Hive, Impala, and Spark. Per arrow.apache.org.
  • Ecosystem remains narrower than Parquet. ClickHouse's format analysis notes ORC (Hive 0.12, Oct 2013) uses ~200MB stripes and three-level statistics (file/stripe/row group), reads well in Spark/Trino/Presto, but has thinner support in ClickHouse, DuckDB, BigQuery, and Snowflake. Per clickhouse.com.

Connections 5

Outbound 5

Resources 3