apache/orc

Apache ORC - the smallest, fastest columnar storage for Hadoop workloads

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 24 minutes ago
Added to GitGenius on January 4th, 2025
Created on May 6th, 2015
Open Issues & Pull Requests: 21 (+0)
Number of forks: 517
Total Stargazers: 770 (+0)
Total Subscribers: 43 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 21.2 days
90th percentile: 5.8 days
Tracked items: 154

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 11% of issues opened in the past year have been closed. Three people close 94% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 5
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 91 days
Stale 30+ days: 5
Stale 90+ days: 5

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Stale (20)
  • question (5)
  • bug (4)
  • RELEASE (2)
  • CPP (1)
  • beginner (1)
  • enhancement (1)
  • invalid (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Apache ORC is a columnar file format and library implementation designed specifically for Hadoop analytics workloads. The project provides both Java and C++ libraries for reading and writing ORC files, with each implementation being completely independent while maintaining full compatibility across all ORC file versions. The format is self-describing and type-aware, automatically selecting appropriate encodings based on data types and building internal indexes during the write process.

The core design of ORC optimizes for large streaming reads while maintaining the ability to quickly locate required rows. By storing data in columnar format, readers can selectively read, decompress, and process only the values needed for a specific query rather than scanning entire rows. The format supports Hive's complete type system, including complex types such as structs, lists, maps, and unions. ORC files include integrated indexing mechanisms that enable predicate pushdown optimization, allowing the system to determine which file sections need to be read for a particular query and narrow searches down to specific sets of 10,000 rows.

The repository is organized into several key subdirectories covering the C++ and Java implementations, CMake modules for building, Docker scripts for testing across different Linux distributions, example ORC files for compatibility testing, website documentation, and command-line tools for inspecting ORC files. The project maintains multiple active release branches including main, branch-2.3, branch-2.2, branch-2.1, branch-2.0, and branch-1.9, with continuous integration testing across all branches.

Building the project requires Java 17 or higher, Maven 3.9.9 or higher, and CMake 3.25.0 or higher, with optional Meson 1.3.0 support for building select components. The C++ library includes optional AVX512 SIMD optimization support that can be enabled at compile time through the BUILD_ENABLE_AVX512 flag and controlled at runtime via the ORC_USER_SIMD_LEVEL environment variable. The project supports building release versions with or without debug information, as well as building only the Java or C++ components independently.

The Stale label appears most frequently among tracked issues, with occasional enhancement and invalid labels.