Skip to content

Commit

Permalink
Added new Concepts, Explore and Manage topics (#5343)
Browse files Browse the repository at this point in the history
* Updated /references/rill-yaml.md

Added a section on access policies as this is only in the docs/manage/security.md

* Not ready to Merge

Pushing some changes that I've been working on, needs some review and input

1) Reorganzing the sidebar,
     - Rill Cloud vs Rill Developer
     - What is an OLAP engine (contents from Connect OLAP engine)

2) Explore/ Sharing with public URL
     - some notes inline, will add content (gifs) but thoughts on article as a whole?

3) Added a reference to our tutorials page and a brief summary, can be hidden until Tutorial is ready.

* Share-url (public-url) article finished

Added a gif and touched up the Explore/Sharing with a public URL page.

* Finishing touches on concept/ RDvRC

Thinking about adding some image to the very bottom? Is RC a higher offering than RD?

* Some minor changes,

added olap_connector example to rill.yaml ref guide

some minor cosmetic changes

* New Manage pages

- User Group Management
- [Dashboard] access policies
- Added Roles/Permsision for usergroup
- Added Project Managment

* Ready for review

Added articles:
Concepts:
- Rill Cloud v Rill Developer
- What is an OLAP Engine? [moved from build section]

Explore:
- Sharing with public URL

Manage:
- User Group Management,
- Project Management. (thoughts on graphic?)

* Added Public URL to dashboard101

* Adding UI explanation for user-management

* Update user-management.md

* Update .tutorial.md

* fixing broken anchors

* Added a Org/Pro Management section

Realized we dont have any explaining what an organization or project is in Rill.

Depending how much more content is needed, can separate the two.

Manage
Organization & Project Management
User Management
User Group Management
Roles and Permissions
Dashboard Access Policies

* Last push of the week

cleaning up a few things,

* broken link fix

* non-error broken links to "organization"

final warning fixes :)

* Changes to Deploy (adding UI), changes to Org/project managment

Change quite a bit of content in Deploy Dashboards, (moved some content to project management section

added further content to org/project management
- via UI
- via CLI

At some point, we might need to consider having a via UI secion and via CLI completely separate?

* fixed broken link

* cosmetic change to usergroup

* Update existing-project.md

Added content to continuous deployment

* Cleanup and some small rewrites

* Fix broken links

---------

Co-authored-by: Andrew Tsao <[email protected]>
  • Loading branch information
royendo and AndrewRTsao authored Aug 16, 2024
1 parent 1bf7d4f commit 5df9d06
Show file tree
Hide file tree
Showing 47 changed files with 726 additions and 92 deletions.
2 changes: 1 addition & 1 deletion docs/docs/build/credentials/credentials.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ At a high level, configuring credentials and credentials management in Rill can

When reading from a source (or using a different OLAP engine), Rill will attempt to use existing credentials that have been configured on your machine.
1. Credentials that have been configured in your local environment via the CLI (for [AWS](../../reference/connectors/s3.md#local-credentials) / [Azure](../../reference/connectors/azure.md#local-credentials) / [Google Cloud](../../reference/connectors/gcs.md#local-credentials))
2. Credentials that have been passed in directly through the connection string or DSN (typically for databases - see [Source YAML](../../reference/project-files/sources.md) for more details)
2. Credentials that have been passed in directly through the connection string or DSN (typically for databases - see [Source YAML](../../reference/project-files/sources.md) and [Connector YAML](../../reference/project-files/connectors.md) for more details)
3. Credentials that have been passed in as a [variable](../../deploy/templating.md) when starting Rill Developer via `rill start --var key=value`
4. Credentials that have been specified in your *`<RILL_PROJECT_HOME>/.env`* file

Expand Down
28 changes: 10 additions & 18 deletions docs/docs/build/olap/olap.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,14 @@ sidebar_label: "Connect OLAP Engines"
sidebar_position: 00
---

## How to connect to your OLAP Engine?

## What is OLAP?
There are two ways to define an OLAP engine within Rill.

OLAP (or Online Analytical Processing) is a computational approach designed to enable rapid, multidimensional analysis of large volumes of data. With OLAP, data is typically organized into cubes instead of traditional two-dimensional tables, which can facilitate complex queries and data analysis in a way that is significantly more efficient and user-friendly for analytical tasks. In particular, OLAP databases can be especially well suited for BI use cases that require deep, multi-dimensional analysis or real-time / user-facing analytics and applications. Additionally, many modern OLAP databases are optimized to ingest large volumes of data, execute low-latency queries with high throughput, and process billions of rows quickly with an emphasis on speed and efficiency in data retrieval.

Unlike traditional relational databases or data warehouses that are optimized for transaction processing (with a focus on CRUD operations), OLAP databases are designed for query speed and complex analysis. Rather than storing data in a row-oriented manner, optimizing for transactional efficiency and operational queries, most OLAP databases are columnar and use pre-aggregated multidimensional cubes to speed up analytical queries. This allows a broad range of ad hoc queries and analysis to be performed without needing predefined schemas that are tailored to specific queries and it's this flexibility that enables the highly interactive slice-dicing and exploration of data that powers Rill dashboards. This paradigm allows OLAP to be particularly well-suited for organizations and teams that want to dive deep into and understand their data to support decision-making processes, where speed and flexibility in the actual data analysis are important.

:::info Want to see OLAP in action?

Check [here](https://www.rilldata.com/case-studies) to see examples of use cases that can be powered by OLAP.

:::
1. Set the [default OLAP engine](../../reference/project-files/rill-yaml#configuring-the-default-olap-engine) via the rill.yaml file.
2. Set the [OLAP engine](../../reference/project-files/dashboards.md) for a specific dashboard.

The OLAP engine set on the dashboard will take precedence over the project-level defined OLAP engine.

## Available OLAP Engines

Expand All @@ -34,18 +29,15 @@ Rill is continually evaluating additional OLAP engines that can be added. For a
:::


## External OLAP tables

Rill supports creating and powering dashboards using existing tables from alternative [OLAP engines](../../reference/olap-engines/olap-engines.md) that have been configured in a particular project. These tables are not managed by Rill, hence external, but allow users to bring in separate tables or datasets that might already exist in another preferred OLAP database of choice. This prevents the need of unnecessarily ingesting this data into Rill, especially if the table is already optimized for use by this other OLAP engine, and allowing Rill to connect to the data directly (and submit analytical queries).
## DuckDB

<div className="center-content">
![Connecting to an external table](/img/build/connect/external-tables/external-olap-db.png)
</div>
DuckDB is unique in that it can act as both a [source](../../reference/connectors/motherduck.md) and [OLAP engine](../../reference/olap-engines/duckdb.md) for Rill. If you wish to connect to existing tables in DuckDB though, you can simply use the [DuckDB connector](../../reference/connectors/motherduck.md#connecting-to-external-duckdb-as-a-source) to read a specific table or view from an accessible DuckDB database file and ingest the data into Rill.

:::warning

## DuckDB
Rill will use DuckDB by default as an embedded OLAP engine but it is **not** currently possible to "bring your own DuckDB database" to be used as an alternative OLAP Engine. The internal DuckDB that Rill uses is hardcoded and not configurable (necessary for Rill Cloud consistency).

DuckDB is unique in that it can act as both a [source](../../reference/connectors/motherduck.md) and [OLAP engine](../../reference/olap-engines/duckdb.md) for Rill. If you wish to connect to existing tables in DuckDB though, rather than use an external table, you can simply use the [DuckDB connector](../../reference/connectors/motherduck.md#connecting-to-duckdb) to read the table and ingest the data into Rill.
:::

## Druid

Expand Down
43 changes: 43 additions & 0 deletions docs/docs/concepts/OLAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
title: What is an OLAP Engine?
sidebar_label: What is an OLAP Engine?
sidebar_position: 12
hide_table_of_contents: true
---

## What is OLAP?

OLAP (or Online Analytical Processing) is a computational approach designed to enable rapid, multidimensional analysis of large volumes of data. With OLAP, data is typically organized into cubes instead of traditional two-dimensional tables, which can facilitate complex queries and data analysis in a way that is significantly more efficient and user-friendly for analytical tasks. In particular, OLAP databases can be especially well suited for BI use cases that require deep, multi-dimensional analysis or real-time / user-facing analytics and applications. Additionally, many modern OLAP databases are optimized to ingest large volumes of data, execute low-latency queries with high throughput, and process billions of rows quickly with an emphasis on speed and efficiency in data retrieval.

Unlike traditional relational databases or data warehouses that are optimized for transaction processing (with a focus on CRUD operations), OLAP databases are designed for query speed and complex analysis. Rather than storing data in a row-oriented manner, optimizing for transactional efficiency and operational queries, most OLAP databases are columnar and use pre-aggregated multidimensional cubes to speed up analytical queries. This allows a broad range of ad hoc queries and analysis to be performed without needing predefined schemas that are tailored to specific queries and it's this flexibility that enables the highly interactive slice-dicing and exploration of data that powers Rill dashboards. This paradigm allows OLAP to be particularly well-suited for organizations and teams that want to dive deep into and understand their data to support decision-making processes, where speed and flexibility in the actual data analysis are important.

:::info Want to see OLAP in action?

Check [here](https://www.rilldata.com/case-studies) to see examples of use cases that can be powered by OLAP.

:::




## External OLAP tables

Rill supports creating and powering dashboards using existing tables from alternative [OLAP engines](../reference/olap-engines/olap-engines.md) that have been configured in a particular project. These tables are not managed by Rill, hence external, but allows users to bring in separate tables or datasets that might already exist in another preferred OLAP database of choice. This prevents the need of unnecessarily ingesting this data into Rill, especially if the table is already optimized for use by this other OLAP engine, and allows Rill to connect to the data directly (and submit analytical queries).

<div className="center-content">
![Connecting to an external table](/img/build/connect/external-tables/external-olap-db.png)
</div>


## Supported OLAP Engines

Rill currently supports the following OLAP engines! Please refer to our [Build Section](../build/olap/olap.md) for more information on the topic.

- DuckDB
- ClickHouse
- Druid
- Pinot

:::tip Don't see an OLAP engine?
Our team is continually evaluating new OLAP engines to support. If you don't see an OLAP engine that you'd like to use, please don't hesitate to [reach out](contact.md). We'd love to hear from you!
:::
64 changes: 64 additions & 0 deletions docs/docs/concepts/developerVsCloud.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: Rill Cloud vs Rill Developer
sidebar_label: Rill Cloud vs Rill Developer
sidebar_position: 13
hide_table_of_contents: true
---

## What is Rill Developer and Rill Cloud?

Rill offers two unique but complementary experiences within our broader product suite, **Rill Developer** and **Rill Cloud**.

As the name suggests, Rill _Developer_ is designed with the developer in mind where the project development will actually occur. Rill Developer is meant for the primary developers of project assets and dashboards, where they can import, wrangle, iterate on, and explore the data before presenting it for broader consumption by the team. Rill Developer is meant to run on your local machine - see here for some [recommendations and best practices](/deploy/performance#local-development--rill-developer) - but it is a simple process to [deploy a project](/deploy/existing-project/existing-project.md) once ready to Rill Cloud.

Rill Cloud on the other hand is designed for our dashboard consumers and allows broader team members to easily collaborate. Once the developer has deployed the dashboard onto Rill Cloud, these users will be able to utilize the dashboards to interact with their data, set alerts / bookmarks, investigate nuances / anomalies, or otherwise perform everyday tasks for their business needs at Rill speed.

:::info Rill Developer vs Rill Cloud

Please note that a common **misnomer** is that Rill Developer can be a sufficient replacement for Rill Cloud. They both serve different purposes but are meant to be used _in conjunction_. Rill enables speed of exploration and is easy to use for developers, allowing the project to be iterated on quickly. Rill Cloud then allows for shared collaboration at scale, especially for production deployments.

:::

## Rill Developer

Rill Developer is designed around developers. Using a familiar IDE-like interface, developers are able to import data, create SQL models, and create metric-views. Many of the underlying files in Rill Developer are either SQL or YAML files. Once a data in imported into Rill (and the underlying OLAP engine), developers are able to perform last mile ETL changes using one or a series of SQL models (as its own [DAG](https://en.wikipedia.org/wiki/Directed_acyclic_graph#:~:text=A%20directed%20acyclic%20graph%20is,a%20path%20with%20zero%20edges)). You can then create and materizlize your ["One Big Table"](../build/models/models.md) for your dashboard needs. Finally, any specifications for your dimensions and measures can be defined and tested in Developer's dashboard preview.

<img src = '/img/concepts/rcvsrd/empty-project.png' class='rounded-gif' />
<br />

<details>
<summary> What are some things you can do in Rill Developer?</summary>

Anything from source ingestion to modeling to creating dashboards.
| UI : <img src = '/img/concepts/rcvsrd/DevUI.gif' class='rounded-gif' /> | Adding Sources: <img src = '/img/concepts/rcvsrd/Adding-Data.gif' class='rounded-gif' /> |
|:---:|:---:|
| **Creating Models:** <img src = '/img/concepts/rcvsrd/Add-Model.gif' class='rounded-gif' /> | **Creating Dashboards:** <img src = '/img/concepts/rcvsrd/Add-Dashboard.gif' class='rounded-gif' /> |
</details>


## Rill Cloud

Once the dashboard has been [deployed to Rill Cloud](../deploy/existing-project/existing-project.md), the dashboard can be shared with others and viewed by other members of your Rill Cloud organization. As you can see below, the UI is different from Developer. Upon accessing Rill Cloud, a user will be able to view all the projects they have been granted access to by project admins.


<img src = '/img/concepts/rcvsrd/rill-cloud-projects.png' class='rounded-gif' />
<br />

After selecting a specific project, they will be directed to a list of dashboards. From Rill Cloud, the dashboard consumer does not have the ability to make any modifications to sources or models. However, they are given some additional capabilities that are not accessible in Rill Developer, such as alerting, creating bookmarks or sharable public URLs, checking the project status, and more.

:::info Dashboard 101

For more details about using a Rill Cloud dashboard, please refer to our [Explore section](explore/dashboard-101.md)!

:::


<img src = '/img/concepts/rcvsrd/Rill-cloud.png' class='rounded-gif' />

## Is Rill Cloud a higher offering than Rill Developer?

Based on the naming, it might be confusing and easy to assume that Rill Cloud is our "higher" offering but **that is not the case!** Similarly, Rill Developer is _not meant to be used as a standalone tool either_.


Rill Developer and Rill Cloud are to be used together. Rill Developer gives a space for our developers to define and test any new or needed changes to the data and/or dashboards before pushing to our Rill Cloud users who need stable access to working dashboards. Then, once finalized, these dashboards are deployed to the Rill Cloud project for broader consumption and to power business use cases.

Loading

0 comments on commit 5df9d06

Please sign in to comment.