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

Added new Concepts, Explore and Manage topics #5343

Merged
merged 23 commits into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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