---
title: "Rill"
description: "Rill is an open-source BI tool built on DuckDB (and optionally ClickHouse) that turns SQL models and YAML metrics definitions into fast, interactive dashboards."
canonical: "https://motherduck.com/glossary/rill/"
related:
  - title: "Rill Data | MotherDuck Docs"
    url: "https://motherduck.com/docs/integrations/bi-tools/rill-data/"
  - title: "Why Use DuckDB for Analytics?"
    url: "https://motherduck.com/blog/six-reasons-duckdb-slaps/"
  - title: "Rill Data + MotherDuck Integration | DuckDB Analytics"
    url: "https://motherduck.com/ecosystem/rill-data/"
gated_asset:
  title: "DuckLake on MotherDuck"
  url: "https://motherduck.com/product/ducklake/"
---

# Rill

> Rill is an open-source BI tool built on DuckDB (and optionally ClickHouse) that turns SQL models and YAML metrics definitions into fast, interactive dashboards.

## Overview

Rill (from Rill Data) is a business intelligence tool aimed at giving analysts sub-second, exploratory dashboards without standing up a separate cloud warehouse for every project. It's built "BI as code": data sources, SQL transformation models, and metrics definitions live as files in a project directory, so they can be version-controlled and code-reviewed like any other engineering artifact, then compiled into interactive dashboards.

## Why DuckDB

Rill Developer (the open-source, local-first product) uses DuckDB as its default embedded OLAP engine. When Rill's creators evaluated engines for a tool that needed to feel instant while iterating on a dashboard, DuckDB's single-node analytical query performance made it the natural fit — data gets ingested from sources (files, object storage, warehouses) into DuckDB, and every filter or drill-down in the dashboard becomes a DuckDB query running locally. For larger deployments, Rill also supports ClickHouse as an alternative OLAP engine, effectively letting a project scale from a laptop prototype to a much larger production dataset without rewriting the metrics layer.

```yaml
# rill metrics view definition (simplified)
type: metrics_view
model: orders_model
dimensions:
  - column: country
measures:
  - name: total_revenue
    expression: SUM(order_total)
```

```sql
-- A Rill model, just a DuckDB SQL query
SELECT
  order_id,
  country,
  order_total
FROM read_parquet('s3://bucket/orders/*.parquet')
```

## Where it fits

Rill sits closer to the data than a traditional dashboarding tool that only queries an existing warehouse — it does its own ingestion and transformation, then exposes a metrics layer that both dashboards and, increasingly, AI agents can query consistently. For datasets under roughly 50GB, keeping data in DuckDB is Rill's recommended default; beyond that, teams typically move to the ClickHouse engine option.