Acquire / file · All operations
Read an ORC file
A variant of Read a columnar file
Read ORC files into a table.
Status
- In arcform
Not built yet
arcform does not do this yet. Its place on the roadmap
What other tools call it
Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).
AWS Glue (1)
ORC (read)read 2026-09-27Read ORC data from Amazon S3 and other supported connection types
Azure Data Factory (1)
ORC format (source)read 2026-09-27Read ORC files in copy activity and mapping data flow
Pentaho Data Integration (1)
ORC Inputread 2026-09-27Read fields from ORC files
Talend (1)
tFileInputORCread 2026-09-27Read records from an ORC file
Background
The Optimized Row Columnar (ORC) file format supports projection, so queries reading only one column read only the required bytes.[1] ORC is a self-describing, type-aware columnar file format designed for Hadoop workloads.[2] ORC files include light weight indexes holding the minimum and maximum values for each column in each set of 10,000 rows and in the entire file.[1]
When to use it
ORC files are divided into stripes that are roughly 64MB by default, and the stripes of a file are independent of each other.[2] In ORC, predicate pushdown uses the file's indexes to decide which stripes a query needs to read, and the row indexes can narrow the search to a set of 10,000 rows.[2] DuckDB's community orc extension pushes column projection down to the ORC reader, but has no filter pushdown.[3] DuckDB's orc extension requires every file matched by a glob to have an identical schema.[3] Check whether the reader in use pushes filters into ORC's indexes before counting on them to make a filtered read fast. (Meridian's view)
The method
ORC files were created in January 2013 as part of an initiative to speed up Apache Hive and improve the storage efficiency of data stored in Apache Hadoop.[2] The ORC file format was announced in February 2013 by Hortonworks, in collaboration with Facebook.[4] In Hive 0.11, Apache Hive added ORC, which retains the type information from the table definition, where Hive's RCFile treats each column as a binary blob without semantics.[1] ORC uses type-specific light weight compression, such as dictionary encoding, bit packing, delta encoding and run length encoding, and can apply zlib or Snappy on top of it.[1]
Since the Hadoop Distributed File System (HDFS) does not support changing the data in a file after it is written, ORC stores its top-level index at the end of the file.[1] Each ORC stripe is self-contained and holds only entire rows, and its indexes and data are divided by column so that only the required columns need to be read.[1]
Compared with the alternatives
ORC is similar to the other columnar storage file formats of the Hadoop ecosystem, such as RCFile and Apache Parquet.[4] A calendar month after ORC was announced, the Apache Parquet format was announced, developed by Cloudera and Twitter.[4]
Sources
- [1]ORC Specification v1standard
- [2]Backgrounddocumentation
- [3]orc – DuckDB Community Extensionsdocumentation
- [4]Apache ORC - Wikipediasecondary source