awesome-repositories.com
Blog
MCP
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ibis-project avatar

ibis-project/ibis

0
View on GitHub↗
6,574 Stars·730 Forks·Python·Apache-2.0·7 Aufrufeibis-project.org↗

Ibis

Ibis is a portable Python dataframe library and multi-backend query engine that provides a unified interface for executing data transformations across diverse compute engines. It functions as a Python SQL expression compiler and dialect transpiler, allowing users to define data logic once and execute it across cloud warehouses, embedded databases, and distributed clusters without rewriting code.

The project distinguishes itself through a database backend abstraction that decouples transformation logic from the underlying execution engine. It enables polyglot data workflows by mixing raw SQL strings with programmatic Python expressions and provides a dataframe interop layer to convert query results between various memory formats.

Its capability surface covers a broad range of data analysis operations, including row filtering, aggregation, and geospatial processing, as well as comprehensive schema and database hierarchy management. The system also supports data streaming via a unified batch and streaming API, as well as integration with cloud storage and various file formats for data import and export.

Features

  • Portable Data Expression APIs - Provides a unified programmatic interface for defining data transformations that work across different backend engines.
  • Multi-Engine Execution Backends - Executes data transformations across different SQL databases and cloud warehouses using a single unified Python interface.
  • Backend Adapter Development - Provides a framework for creating database adapters that expose a unified dataframe API across different engines.
  • Backend Connection Management - Manages connectivity settings, credentials, and authentication for diverse data store backends.
  • Column Selection Utilities - Provides utilities for selecting specific columns using names, objects, or pattern-based selectors.
  • Column Value Aggregations - Computes summary statistics like mean, max, min, and sum across columns or groups.
  • Derived Column Generation - Creates new columns from existing data or constant literal values.
  • Database Engine Abstractions - Provides a unified interface that decouples transformation logic from specific database engines.
  • Conditional Row Filters - Isolates specific data subsets by selecting rows based on one or more boolean conditions.
  • Dataframe Format Conversion - Implements a bridge to convert query execution results between SQL backends and formats like Pandas, Polars, and PyArrow.
  • Dataframe Interoperability - Transforms query results into common data structures such as Pandas, Polars, and PyArrow.
  • Lazy Expression Execution - Executes deferred table expressions against a backend to produce in-memory data objects.
  • Lazy Operation Chaining - Allows combining multiple data manipulation steps into a single lazy pipeline for optimized execution.
  • Polyglot Query Workflows - Allows mixing raw SQL strings with programmatic Python expressions within a single data pipeline.
  • Dialect Transformers - Rewrites SQL constructs between different database dialects to ensure cross-backend compatibility.
  • Tabular Data Sorting - Arranges rows in ascending or descending order based on one or more column values.
  • SQL Dialect Compilation - Translates chains of Python data operations into specific database SQL dialects.
  • Intermediate Representation Translation - Uses an abstract intermediate format to decouple data transformation logic from the final target query language.
  • Query Intermediate Representations - Maintains an internal abstract model of data transformations that can be transpiled into multiple target query languages.
  • Query Execution Plans - Builds a chain of operations as a lazy expression tree that only materializes results upon explicit request.
  • Pluggable Execution Backends - Allows the runtime to switch between local in-memory engines and remote distributed clusters via connection strings.
  • Analysis Ecosystem Integrations - Integrates query results directly with external visualization, dashboarding, and machine learning libraries.
  • Change Data Capture Streams - Enables subscribing to tables or views to receive continuous change data capture updates.
  • Type-Based Selection - Enables the inclusion or exclusion of groups of columns based on their data type.
  • Compiled SQL Inspection - Allows users to inspect the exact SQL query compiled from a Python dataframe expression.
  • Raw SQL Execution - Allows the execution of arbitrary SQL strings for administrative tasks and table creation.
  • In-Memory DataFrame Imports - Imports data from in-memory Python structures like pandas DataFrames or PyArrow Tables into database tables.
  • Unified Batch and Stream Processing Engines - Offers a single interface for managing both traditional batch data processing and real-time streaming workloads.
  • In-Memory Format Adapters - Adapts query execution results into in-memory dataframe formats like Pandas or PyArrow.
  • Database Views - Generates virtual tables from transformation expressions and stores them within the backend.
  • External File Imports - Registers external CSV, JSON, Parquet, or Delta Lake files as tables within the database.
  • File-Based Data Exports - Writes the results of data expressions directly to structured file formats such as CSV, JSON, Parquet, and Delta Lake.
  • SQL Geospatial Analysis - Executes specialized spatial queries and processes geospatial data using SQL-based analysis.
  • Result Streaming - Returns query results as an iterator of dataframes or record batches for memory-efficient processing.
  • Hybrid Object-SQL Execution - Enables mixing raw SQL strings with programmatic dataframe operations within a single pipeline.
  • Row Groupings - Provides the ability to create row groupings based on shared values in one or more columns for collective analysis.
  • Runtime Backend Switching - Allows changing the underlying execution engine at runtime without rewriting data transformation logic.
  • SQL to Expression Wrapping - Transforms raw SQL queries into structured lazy table expressions for further programmatic manipulation.
  • Upsert Operations - Implements atomic operations to either insert new records or update existing ones based on a key.
  • Cloud Storage Integrations - Enables reading and writing data from cloud blob storage using integrated secret management.
  • Data Analysis - Portable dataframe library for multiple backends.
  • Data Analysis and Processing - Portable Python dataframe library.
  • Database Clients - Portable Python dataframe library.

Star-Verlauf

Star-Verlauf für ibis-project/ibisStar-Verlauf für ibis-project/ibis

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht ibis-project/ibis?

Ibis is a portable Python dataframe library and multi-backend query engine that provides a unified interface for executing data transformations across diverse compute engines. It functions as a Python SQL expression compiler and dialect transpiler, allowing users to define data logic once and execute it across cloud warehouses, embedded databases, and distributed clusters without rewriting code.

Was sind die Hauptfunktionen von ibis-project/ibis?

Die Hauptfunktionen von ibis-project/ibis sind: Portable Data Expression APIs, Multi-Engine Execution Backends, Backend Adapter Development, Backend Connection Management, Column Selection Utilities, Column Value Aggregations, Derived Column Generation, Database Engine Abstractions.

Welche Open-Source-Alternativen gibt es zu ibis-project/ibis?

Open-Source-Alternativen zu ibis-project/ibis sind unter anderem: apache/pinot — Pinot is a distributed, columnar analytical database designed for high-concurrency, low-latency query processing. It… hosseinmoein/dataframe — DataFrame is a C++ tabular data library and manipulation engine designed for managing heterogeneous data in contiguous… seaql/sea-orm — Sea-ORM is an asynchronous SQL object-relational mapper and database toolkit for mapping relational tables to strongly… dotnetcore/freesql — FreeSql is a .NET object-relational mapper and data access layer that translates object-oriented code into SQL for… tidyverse/dplyr — dplyr is an R data manipulation library that provides a grammar for transforming tabular data frames. It functions as… apache/hive — Apache Hive is a SQL-on-Hadoop data warehouse that enables querying and managing petabytes of data stored in…

Open-Source-Alternativen zu Ibis

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Ibis.
  • apache/pinotAvatar von apache

    apache/pinot

    6,098Auf GitHub ansehen↗

    Pinot is a distributed, columnar analytical database designed for high-concurrency, low-latency query processing. It functions as a real-time OLAP datastore, enabling interactive, user-facing analytics by ingesting and querying massive datasets from both streaming and batch sources. The system architecture relies on a centralized controller for cluster coordination and a distributed segment-based storage model to ensure horizontal scalability. The platform distinguishes itself through a hybrid ingestion pipeline that unifies real-time event streams and historical batch data into a single quer

    Java
    Auf GitHub ansehen↗6,098
  • hosseinmoein/dataframeAvatar von hosseinmoein

    hosseinmoein/DataFrame

    2,917Auf GitHub ansehen↗

    DataFrame is a C++ tabular data library and manipulation engine designed for managing heterogeneous data in contiguous memory. It functions as a statistical analysis framework and time series analysis toolkit, providing the means to store, index, and transform multidimensional datasets. The project distinguishes itself through a high-performance execution model that utilizes column-major storage, SIMD-aligned memory allocation, and a thread-pool for parallel computations. It employs a visitor-based algorithm dispatch system and policy-driven transformations to decouple data processing logic f

    C++aicppdata-analysis
    Auf GitHub ansehen↗2,917
  • seaql/sea-ormAvatar von SeaQL

    SeaQL/sea-orm

    9,410Auf GitHub ansehen↗

    Sea-ORM is an asynchronous SQL object-relational mapper and database toolkit for mapping relational tables to strongly typed objects. It provides a relational database mapper for performing CRUD operations across MySQL, PostgreSQL, and SQLite, and includes a programmatic dynamic query builder for constructing complex SQL statements. The project distinguishes itself by providing a GraphQL schema generator that transforms database entities into typed schemas with built-in pagination and filters. It also features a dedicated database migration tool for defining and applying versioned schema chan

    Rustdatabasehacktoberfestloco
    Auf GitHub ansehen↗9,410
  • dotnetcore/freesqlAvatar von dotnetcore

    dotnetcore/FreeSql

    4,388Auf GitHub ansehen↗

    FreeSql is a .NET object-relational mapper and data access layer that translates object-oriented code into SQL for multiple relational database providers. It functions as a fluent SQL query builder and database schema synchronizer, allowing developers to align database table and index structures with entity class definitions. The framework is specifically optimized for .NET Native AOT to ensure reduced memory footprints and faster startup times. It includes a database traffic manager to distribute load through read-write splitting, dynamic table sharding, and tenant-based data isolation. Bro

    C#accessclickhousecodefirst
    Auf GitHub ansehen↗4,388
  • Alle 30 Alternativen zu Ibis anzeigen→