We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Gil Forsyth - Ibis: because SQL is everywhere and so is Python | SciPy 2024
Learn how Ibis bridges Python and SQL, offering a unified DataFrame API across 20+ databases. Explore data efficiently while leveraging native engine capabilities and optimization.
-
Ibis is a Pythonic dataframe interface that works with 20+ different database engines and query systems, providing a consistent API across them
-
Rather than learning multiple SQL dialects or database-specific interfaces, Ibis allows using a single Python interface while letting the underlying engine handle execution
-
Ibis uses lazy/deferred execution - queries are built up step by step but only executed when results are explicitly requested, allowing query optimization
-
For data exploration, Ibis integrates well with pandas, polars, and other PyData tools while keeping computation close to where the data resides
-
The tool aims to provide good interfaces and performance while not dictating which engine to use - the choice of engine should be based on where data lives and performance needs
-
Ibis handles differences between SQL dialects, data types, and function names across different database systems behind a common interface
-
The project has extensive testing across all supported engines to ensure compatibility and consistent behavior
-
Key integrations include DuckDB, Snowflake, BigQuery, Postgres, pandas, polars, PySpark and support for CSV, Parquet, PyArrow formats
-
For large datasets, Ibis enables keeping computation in the database engine rather than pulling all data locally
-
While SQL knowledge is valuable, Ibis provides a more ergonomic Python interface while still allowing direct SQL access when needed