-
Notifications
You must be signed in to change notification settings - Fork 163
Add StarRocks Driver Support #8390
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
Conversation
Conflicting schema url
Add OLAP StarRocks on Data UI
… and table operations
Add Support Dialect - EscapeTable - JoinOnExpression - SelectTimeRangeBins - GetTimeExpr - SupportsILike(diabled)
|
I just resolve conflicts |
|
Hey @EdwardArchive Thanks for the PR. I tested it locally and noticed a few issues:
Can you take a deeper look at the profiling queries and address these? Separately, after internal discussion, we’d like to evaluate supporting StarRocks through its MySQL compatibility layer instead of treating it as a dedicated OLAP engine. In this model, we would not support modeling in Rill and would only enable dashboards on top of existing datasets, similar to how we support Druid today. |
|
Hi @k-anshul Thank you for the review and feedback! Regarding the technical issues (5xx errors and binary data): I'm glad you raised these issues - I've addressed them in the current commits. The fixes include improved type mapping for LARGEINT, BINARY/VARBINARY, If you encounter any additional issues during testing, please let me know the specific cases and I'll be happy to investigate further. Regarding the strategic direction (MySQL compatibility layer vs dedicated OLAP): I appreciate the team's consideration on this approach. Before proceeding, I'd like to understand the reasoning behind preferring the MySQL compatibility layer over the dedicated OLAP implementation. From my perspective, StarRocks offers powerful capabilities that could benefit Rill users - particularly features like external catalog support (Iceberg, Hive), advanced profiling queries (histogram, time range analysis), and the modeling layer. These were tested and working in the current implementation. Additionally, StarRocks natively supports Arrow Flight SQL, which aligns well with Rill's architecture and could provide better performance for large-scale data transfers in future iterations. That said, I'm open to discussing a simplified approach. If the concern is maintenance overhead or complexity, perhaps we could consider keeping the core OLAP functionality while removing the model executor, similar to how other connectors handle read-only data sources? I'd love to hear more about the team's considerations so we can find the best path forward. PS. I Just write some update on first comment |
…and result property extraction
…arity and error handling
feat: enhance StarRocks model execution with cross-connector support …
|
Thanks for the fixes. I will take a look at them and get back to you if I find any issues.
The reasoning is that instead of implementing dialects of each OLAP system we implement MySQL and Postgres dialects so that all systems that support those will automatically be supported. As I understood there aren't any performance trade-offs with using Starrocks in MySQL compatibility at least when querying data stored in it.
Do you think it is not possible to implement profiling queries using MySQL dialect in performant way ? If that is the case then we can consider Starrocks support as well.
Yeah I think using arrow to export data would be nice and performant though exports are a small use case of the application.
Yeah in the first cut we should definitely keep the scope limited and we can remove modeling. |
|
Hi @k-anshul, thank you for sharing your thoughts. As the first step, I will create a new PR based on the current code while excluding the model functionality. Thank you. |
Please hold on to implementing MySQL dialect. |
|
Hey @EdwardArchive Let us go ahead with your current implementation of using Starrocks dialect. |
Overview
#6839
This PR adds comprehensive support for StarRocks as an OLAP engine in Rill, enabling users to connect to existing StarRocks clusters and power Rill dashboards with external
tables.
https://www.starrocks.io/ is an open-source, high-performance OLAP database designed for real-time analytics. It provides a MySQL-compatible interface with columnar storage
and vectorized query execution, making it ideal for large-scale data analytics workloads.
Key Features
Architecture Decisions
StarRocks 3-Level Hierarchy Mapping
StarRocks -> Rill
Catalog -> Database
Database -> DatabaseSchema
Table -> Table
External Catalog Handling
For external catalogs (Iceberg, Hive), the database is NOT included in DSN because it doesn't exist in default_catalog. Instead:
Files Added/Modified
Backend (Go)
Frontend (TypeScript/Svelte)
Query Support
The following query types are supported for StarRocks:
Testing
Future Improvements