# apache/calcite

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apache-calcite).**

5,139 stars · 2,497 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/apache/calcite
- Homepage: https://calcite.apache.org/
- awesome-repositories: https://awesome-repositories.com/repository/apache-calcite.md

## Description

Calcite is a framework for parsing, optimizing, and translating SQL queries into relational algebra for execution across diverse data sources. It functions as a cross-source query engine, a SQL parsing library, and a relational algebra optimizer.

The project provides a cost-based optimization engine that transforms logical query plans into efficient physical execution plans using pluggable rules. It utilizes translation adapters to convert standard SQL requests into the native formats of external databases and messaging systems, enabling data federation across heterogeneous storage systems.

The system covers the full query lifecycle, including SQL parsing and validation against schemas, the translation of expressions into algebraic operators, and the selection of efficient execution plans. It also includes a command-line interface for executing queries and managing connections to data sources.

## Tags

### Data & Databases

- [Cross-Source Querying](https://awesome-repositories.com/f/data-databases/data-querying/cross-source-querying.md) — Implements a query engine that retrieves and processes data from multiple heterogeneous backend storage systems using a unified SQL dialect. ([source](https://github.com/apache/calcite/blob/main/settings.gradle.kts))
- [Federated Data Query Engines](https://awesome-repositories.com/f/data-databases/federated-data-query-engines.md) — Provides a federated query engine that translates relational operators into native backend formats to query diverse storage systems.
- [Cross-Source Data Integration](https://awesome-repositories.com/f/data-databases/cross-source-data-integration.md) — Connects diverse storage systems through a common interface, joining datasets from external sources into a single result. ([source](https://github.com/apache/calcite/blob/main/README))
- [Cost-Based Optimizers](https://awesome-repositories.com/f/data-databases/query-optimizers/cost-based-optimizers.md) — Implements a cost-based optimizer that estimates resource costs to select the most efficient physical execution plans.
- [Query Plan Optimizations](https://awesome-repositories.com/f/data-databases/query-plan-optimizations.md) — Transforms logical plans into efficient physical plans using pluggable rules and cost-based functions. ([source](https://github.com/apache/calcite#readme))
- [Query Optimizer Frameworks](https://awesome-repositories.com/f/data-databases/query-plan-optimizations/query-optimizer-frameworks.md) — Offers a complete framework for parsing, optimizing, and translating SQL queries into relational algebra for diverse data sources.
- [Relational Query Optimizers](https://awesome-repositories.com/f/data-databases/query-plan-optimizations/relational-query-optimizers.md) — Translates text into relational algebra and applies optimization rules to improve efficiency across different data sources. ([source](https://github.com/apache/calcite/blob/main/.asf.yaml))
- [Rule-Based Plan Optimizations](https://awesome-repositories.com/f/data-databases/query-plan-optimizations/rule-based-plan-optimizations.md) — Transforms logical query plans into efficient physical plans by applying a series of rewrite rules.
- [Relational Algebra Translation](https://awesome-repositories.com/f/data-databases/relational-algebra-translation.md) — Converts SQL query strings into a tree of relational algebraic operators for logical manipulation and optimization.
- [SQL Abstract Syntax Tree Parsing](https://awesome-repositories.com/f/data-databases/sql-abstract-syntax-tree-parsing.md) — Converts SQL strings into abstract syntax trees (ASTs) to facilitate programmatic analysis and optimization.
- [SQL Query Execution](https://awesome-repositories.com/f/data-databases/sql-query-execution.md) — Runs SQL statements and retrieves results as structured data from connected data backends. ([source](https://github.com/apache/calcite/blob/main/NOTICE))
- [SQL to Relational Algebra Translation](https://awesome-repositories.com/f/data-databases/sql-to-relational-algebra-translation.md) — Translates SQL expressions into relational algebraic operators to facilitate logical and physical query planning. ([source](https://github.com/apache/calcite/blob/main/README.md))
- [External Store Integrations](https://awesome-repositories.com/f/data-databases/external-store-integrations.md) — Retrieves information from multiple external data stores using a set of pre-built translation adapters. ([source](https://github.com/apache/calcite/blob/main/README.md))
- [Pluggable Rules](https://awesome-repositories.com/f/data-databases/query-plan-optimizations/rule-based-plan-optimizations/pluggable-rules.md) — Allows the query transformation process to be extended by injecting custom logic into the optimization pipeline.
- [Schema-Based Query Validation](https://awesome-repositories.com/f/data-databases/schema-based-query-validation.md) — Verifies the structural correctness of parsed queries against a defined metadata model before plan generation.
- [Native Query Translation](https://awesome-repositories.com/f/data-databases/sql-query-execution-engines/native-query-translation.md) — Translates standard SQL expressions into optimized proprietary formats for various underlying storage engines. ([source](https://github.com/apache/calcite#readme))

### Testing & Quality Assurance

- [Schema Validation](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/input-validation/compile-time-validators/sql-query-validators/schema-validation.md) — Provides comprehensive SQL parsing and validation of queries against defined metadata schemas to ensure correctness.
- [SQL Query Validators](https://awesome-repositories.com/f/testing-quality-assurance/validation-verification/input-validation/compile-time-validators/sql-query-validators.md) — Converts SQL strings into structured formats and verifies them against a schema to ensure correctness. ([source](https://github.com/apache/calcite#readme))

### Part of an Awesome List

- [Data Engineering](https://awesome-repositories.com/f/awesome-lists/devops/data-engineering.md) — Dynamic data management framework for SQL optimization.
