Backends¶
A backend is where execution of Ibis table expressions occur after compiling into some intermediate representation. A backend is often a database and the intermediate representation often SQL, but several types of backends exist. See the backends page for specific documentation on each.
String generating backends¶
The first category of backends translate Ibis table expressions into query strings.
The compiler turns each table expression into a query string and passes that query to the database through a driver API for execution.
Expression generating backends¶
The next category of backends translates Ibis table expressions into another system's table expression objects, for example, SQLAlchemy.
Instead of generating a query string for each table expression, these backends produce another kind of table expression object and typically have high-level APIs for execution.
- Apache Arrow Datafusion
- Apache Druid
- Apache PySpark
- Dask
- DuckDB
- MS SQL Server
- MySQL
- Oracle
- Polars
- PostgreSQL
- SQLite
- Snowflake
- Trino
Direct execution backends¶
The pandas backend is the only direct execution backend. A full description
of the implementation can be found in the module docstring of the pandas
backend located in ibis/backends/pandas/core.py
.