orc

Mirror of Apache Orc

Github stars Tracking Chart

Apache ORC

ORC is a self-describing type-aware columnar file format designed for
Hadoop workloads. It is optimized for large streaming reads, but with
integrated support for finding required rows quickly. Storing data in
a columnar format lets the reader read, decompress, and process only
the values that are required for the current query. Because ORC files
are type-aware, the writer chooses the most appropriate encoding for
the type and builds an internal index as the file is written.
Predicate pushdown uses those indexes to determine which stripes in a
file need to be read for a particular query and the row indexes can
narrow the search to a particular set of 10,000 rows. ORC supports the
complete set of types in Hive, including the complex types: structs,
lists, maps, and unions.

ORC File Library

This project includes both a Java library and a C++ library for reading and writing the Optimized Row Columnar (ORC) file format. The C++ and Java libraries are completely independent of each other and will each read all versions of ORC files. But the C++ library only writes the original (Hive 0.11) version of ORC files, and will be extended in the future.

Releases:

  • Latest: Apache ORC releases
  • Maven Central: Maven Central
  • Downloads: Apache ORC downloads

The current build status:

  • Master branch
    master build status
  • Pull Requests

Bug tracking: Apache Jira

The subdirectories are:

  • c++ - the c++ reader and writer
  • docker - docker scripts to build and test on various linuxes
  • examples - various ORC example files that are used to test compatibility
  • java - the java reader and writer
  • proto - the protocol buffer definition for the ORC metadata
  • site - the website and documentation
  • tools - the c++ tools for reading and inspecting ORC files

Building

  • Install java 1.7 or higher
  • Install maven 3 or higher
  • Install cmake

To build a release version with debug information:

% mkdir build
% cd build
% cmake ..
% make package
% make test-out

To build a debug version:

% mkdir build
% cd build
% cmake .. -DCMAKE_BUILD_TYPE=DEBUG
% make package
% make test-out

To build a release version without debug information:

% mkdir build
% cd build
% cmake .. -DCMAKE_BUILD_TYPE=RELEASE
% make package
% make test-out

To build only the Java library:

% cd java
% mvn package

To build only the C++ library:

% mkdir build
% cd build
% cmake .. -DBUILD_JAVA=OFF
% make package
% make test-out

Main metrics

Overview
Name With Ownerapache/orc
Primary LanguageJava
Program languageCMake (Language Count: 10)
Platform
License:Apache License 2.0
所有者活动
Created At2015-05-06 07:00:05
Pushed At2025-06-10 06:59:12
Last Commit At
Release Count162
Last Release Namev2.0.5 (Posted on )
First Release Namerel/release-1.0.0 (Posted on 2016-01-25 16:31:58)
用户参与
Stargazers Count729
Watchers Count44
Fork Count493
Commits Count1.9k
Has Issues Enabled
Issues Count241
Issue Open Count26
Pull Requests Count635
Pull Requests Open Count14
Pull Requests Close Count1376
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private