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

Rill Developer: add UI for external tables #4027

Merged
merged 24 commits into from
Feb 16, 2024
Merged

Conversation

ericpgreen2
Copy link
Contributor

@ericpgreen2 ericpgreen2 commented Feb 12, 2024

This PR adds UI to Rill Developer to enable exploring external tables. These are pre-existing tables in the user's OLAP driver (e.g. DuckDB, Clickhouse, Druid) and are not managed by Rill.

Specifically, this PR:

  • Adds a list of external tables to the navigation sidebar (if at least 1 external table exists)
  • Adds a page at localhost:9009/table/{table-name} that shows a preview (up to 150 rows) of the selected table

Closes #4041

Remaining work:

  • (Platform) The APIs for the preview table (TableColumns and TableRows) aren't available for Druid

@ericpgreen2 ericpgreen2 self-assigned this Feb 12, 2024
@ericpgreen2 ericpgreen2 marked this pull request as ready for review February 15, 2024 00:00
@nishantmonu51
Copy link
Collaborator

Validated and tested, LGTM.
@AdityaHegde : Can you do a quick code review as well ?

Copy link
Collaborator

@nishantmonu51 nishantmonu51 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Copy link
Collaborator

@AdityaHegde AdityaHegde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a small question. Otherwise LGTM

@@ -44,7 +44,7 @@ export function initBlankDashboardYAML(dashboardTitle: string) {
# Visit https://docs.rilldata.com/reference/project-files to learn more about Rill project files.

title: ""
model: ""
table: ""
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we prefer table for the blank dashbaord?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because model only works for models, but table works for these external tables plus sources and models.

@nishantmonu51 nishantmonu51 added the blocker A release blocker issue that should be resolved before a new release label Feb 16, 2024
@ericpgreen2 ericpgreen2 merged commit 361bba9 into main Feb 16, 2024
4 checks passed
@ericpgreen2 ericpgreen2 deleted the external-table-ui branch February 16, 2024 19:06
mindspank pushed a commit that referenced this pull request Feb 23, 2024
* Add external table page and navigation

* Use `table` not `model` in generated dashboard YAML

* Add "Autogenerate dashboard" action to header

* Add "Autogenerate dashboard" action to context menu

* Hide modeling for Druid connections

* Only show sources for DuckDB connections

* Terminology: use "table" not "external table"

* Remove modeling layer for clickhouse driver

* Add a `default_time_range` of "P4W"

* Differentiate between models and tables in generated dashboard code

* Fix placeholder for OLAP drivers that don't support modeling

* Use selector `isModelingSupportedForCurrentOlapDriver`

* Bugfix

* Add navigation overflow/scroll when many tables

* Only route to Welcome page for DuckDB OLAP driver

* Add different onboarding steps for non-DuckDB OLAP drivers

* Edit copy

* Fix test (and slight test refactor)

* Fix test

* Fix lint

* Filter out the managed tables (sources and models)

---------

Co-authored-by: Nishant Bangarwa <nishant.monu51@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocker A release blocker issue that should be resolved before a new release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rill Developer: show external tables
3 participants