Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EPIC] Ibis-project as the data source connector #584

Closed
5 tasks done
goldmedal opened this issue May 29, 2024 · 1 comment
Closed
5 tasks done

[EPIC] Ibis-project as the data source connector #584

goldmedal opened this issue May 29, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@goldmedal
Copy link
Contributor

goldmedal commented May 29, 2024

Purpose

Previously, Wren Engine implemented the data source connector by ourselves. To support a new data source, we had to spend a lot of time solving various issues, such as type mapping, syntax support, or data serialization/deserialization. Ibis is a Python DataFrame library that can connect to and convert SQL for many data sources.

We plan to change Wren Engine to a Python project. The core features will be implemented in Rust, and the data flow will be controlled by a Python server.

Architecture

The architecture of the new Wren Engine is illustrated below, and it also demonstrates how to integrate with WrenAI.
wren-engine-ibis-server

In the meantime, I'm working on redesigning the model module in Rust and DataFusion. PR #570 is the first step in this effort. I will file another epic issue for this work later.

Because the work of redesigning the modeling module will take some time, the first version of the Ibis connector will transform WrenSQL using the original SQL plan API (referred to as dry-plan in MDLResourceV2).

Work Lists

There're some subtasks in this epic. We should file other tickets for them.

@goldmedal
Copy link
Contributor Author

This epic is totally finished.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant