Apache Ignite

Distributed ANSI SQL

The same SQL you've been using for years but now with
in-memory speed and at unlimited scale
sql-hero

Apache Ignite as a SQL Database

The native support for SQL let’s you work with Ignite as with a standard SQL database. You can use simply SQL if your applications need nothing else:

DDL commands

CREATEALTERDROP

DML commands

SELECTINSERTUPDATE
MERGEDELETE

Apache Ignite is shipped with:

JDBC driver
ODBC driver
Built-in SQL APIs
Available for Java, C#, C++, Python, and other programming languages
sql-hero

Join, Group and Aggregate Distributed Data Sets

Whether you use a two or thousand-node cluster, you can always do the following:
group data
join data
order data
aggregate data
What is a distributed join?

A distributed join is a SQL statement with a join clause that combines two or more tables that have their data distributed across many cluster nodes.

Types of joins in Ignite

Co-located joins

These are the most performant types of joins that avoid data shuffling between nodes and minimize network usage.

This type of join is used if you join partitioned and replicated tables or partitioned tables that are co-located with each other.

Non-colocated joins

A less performant type of join that joins data of non‑colocated tables. Ignite needs to shuffle data over the network to produce a correct result set.

Hash joins

Ignite supports classic hash join algorithm that is more efficient than nested loop joins for many scenarios.

Ignite SQL Engine and Multi-Tier Storage

Depending on your storage configuration, Ignite SQL engine can query both in-memory and disk-only records

In-Memory Mode

Ignite caches data only in memory

sql-hero

In this mode, Ignite SQL carries out tasks as quickly as possible, as long as all the data is served from memory, with no usage of the disk tier at all.

In-Memory
+ Native Persistence Mode

Ignite scales beyond available
memory capacity

sql-hero

Ignite persists 100% of data and indexes in the native persistence while caching as much as possible in memory.

Ignite SQL engine does not require the caching of entire data set in memory to operate correctly.

If the engine finds that a record is not cached, then it will read the record from disk. Your application only executes SQL queries, and Ignite gets the records from both memory and disk automatically.

On cluster restarts, Ignite reads data and indexes from disk, eliminating the need for memory warm-up, which significantly decreases downtime.

In-Memory
+ External Database Mode

Ignite accelerates your
existing databases

sql-hero

In this mode, the Ignite SQL engine requires caching of all the data needed for distributed queries in memory, since the engine does not currently support federated queries.

If federated queries between Ignite and an external database are required, then you can consider Ignite integration for Spark, where the DataFrames API can combine the data stored in Ignite and other systems.

Ready to Start?

Discover more details about Apache Ignite SQL engine
and apply it for your use-case

Memory Architecture
Want to Learn More?

Ignite SQL will become even more powerful and advanced with the release of the Apache Calcite based engine

New Calcite powered SQL engine