Rill Documentation

repository·main·Indexed 25 days ago

https://github.com/rilldata/rill

An agent-first business intelligence platform powered by OLAP engines like ClickHouse and DuckDB. Rill utilizes a BI-as-code approach (YAML + SQL) to enable humans and AI agents to author projects, dashboards, and semantic layers.

Tokens
190.3K
Snippets
469
Records
1.4K
Agent score
81%

What's inside Rill

  1. Overview of rduckdb

    main
    rduckdb is a specialized implementation designed to address limitations of using DuckDB as an embedded database in production environments. It provides isolation between ETL (write) and serving (read) workloads, prevents query performance degradation during data ingestion, and manages data persistence in Kubernetes environments by utilizing local disks with real-time cloud backups.
  2. Overview of Rill 0.6 Dashboard and Metrics Features

    main

    Rill 0.6 introduced a drill-down dashboard and a Metrics Designer tool within Rill Developer.

    Dashboard Components

    • Line charts: Reactive visualizations of aggregated measures that update as dimension values are filtered.
    • Leaderboards: Displays the top 7 values for each dimension to identify significant segments.
    • Filters: Includes a time selector for periods of time and leaderboard filters for specific dimension combinations.

    Metrics Designer Capabilities

    • Measures and dimensions definitions: Allows assigning time series, drill-down dimensions, and creating measures via aggregate SQL expressions.
    • Human-readable formatting: Enables setting labels (replacing model column names) and formatting output as humanized numbers.
    • Automated quick start: Automatically sets VARCHAR columns as dimensions and COUNT(*) as the initial measure.
  3. Overview of Rill Developer workflow

    main

    Rill Developer is the local environment used to build and develop Rill projects (as editing directly in Rill Cloud is not yet supported). The development workflow involves:

    1. Creating connections to your source files.
    2. Performing last-mile ETL.
    3. Defining metrics in the metrics layer.
    4. Creating a dashboard.

    When starting a new project in the UI, you can select Start with an empty project or choose from various quick start projects.

  4. Overview of Rill Developer capabilities

    main

    Rill Developer is a local application for building end-to-end analytics pipelines. Key capabilities include:

    • Connectors: Connect to data sources like S3, GCS, BigQuery, Snowflake, ClickHouse, and more.
    • Models: Transform and prepare data using SQL or YAML models.
    • Metrics Views: Define measures, dimensions, and time series for dashboards.
    • Dashboards: Build Explore and Canvas dashboards.
    • Custom APIs: Create API endpoints to retrieve data outside of Rill.
  5. Use the Rill MCP Server to connect BI to AI clients

    main
    Rill provides a Model Context Protocol (MCP) server that allows you to plug your business intelligence (BI) capabilities into AI chat clients. This enables users to query datasets and get insights through conversational prompts rather than manual dashboard interactions. The MCP server leverages Rill's in-memory metrics layer to provide fast, accurate, and up-to-date data responses while maintaining Rill Cloud's security guarantees and role-based access control.
  6. Understand the difference between Rill Developer and Rill Cloud

    main

    Rill provides two complementary environments designed for different stages of the data lifecycle:

    Rill Developer (Local Development)

    • Target Audience: Primary developers of project assets and dashboards.
    • Purpose: Importing, wrangling, iterating, and exploring data locally.
    • Key Features: IDE-like interface, SQL model creation, metric view definition, and dashboard previews.
    • Workflow: Developers use Rill Developer to define and test changes to data and dashboards before pushing them to production.

    Rill Cloud (Production/Consumption)

    • Target Audience: Dashboard consumers and broader team members.
    • Purpose: Shared collaboration, production deployment, and business use cases.
    • Key Features: Viewing shared dashboards, setting alerts, creating bookmarks, generating shareable public URLs, and checking project status.
    • Constraint: Dashboard consumers in Rill Cloud cannot modify sources or models; they are restricted to interacting with the finalized dashboards.
  7. Summary of Rill Developer and Rill Cloud capabilities

    main

    Rill provides two primary environments for data analysis and deployment:

    • Rill Developer: A local environment used to import data, transform data, and create dashboards.
    • Rill Cloud: A hosted environment where you can deploy your dashboards created in Rill Developer with a few clicks.

    Note that Rill Developer and Rill Cloud offer different capabilities. For detailed guidance on using Rill Cloud features, refer to the Explore section in the official documentation.

  8. Rill Cloud Free Trial limits and details

    main

    The Rill Cloud free trial lasts for 30 days and includes the following limits:

    • Projects: Up to 2 projects per deployment.
    • Data Storage: Up to 10 GB of imported data per project.
    • Features: No feature limitations; all features are available.
    • Users: You can invite as many users as required.

    When the trial expires, projects enter a hibernation state where metadata is preserved but resource consumption is zero. To continue using Rill Cloud beyond the trial, you must upgrade to a Team Plan.

  9. Manage Project Users and Roles

    main

    Project access is managed at the individual project level.

    Project Roles:

    • Viewers: Can browse the project, view dashboards, and setup alerts/reports.
    • Editors: Can add/remove non-admin project members.
    • Admins: Can manage project files, configure environment variables, and access the status page.

    Access Rules:

    • Organization admins implicitly have admin privileges on all projects.
    • All organization members (except guests) are added to new projects with the viewer role by default via a system-managed user group.
    • If you grant a project role to a non-organization member, they are automatically added to the organization as a guest.
  10. Understand Rill project execution phases

    main

    Rill automatically monitors project files and processes changes through two distinct phases:

    1. Parsing: Files are converted into resources and organized into a Directed Acyclic Graph (DAG). Errors during this phase are reported as parse errors.
    2. Reconciliation: Rill executes resources to reach the desired state defined in your code. Failures during this phase are reported as reconcile errors.

    Note on Performance: Some resources are 'cheap' to reconcile (like validation or non-materialized models), while others are 'expensive' (like materialized models or managed connectors). You can also schedule reconciliation for certain resources using cron expressions.

  11. Understand Metrics Views

    main

    A Metrics View is a semantic layer in Rill where you define measures and dimensions to make sense of raw data. It acts as a bridge between your data models and your Explore Dashboards or Canvas dashboards.

    Key capabilities include:

    • Defining Measures: Numeric aggregates (e.g., Net Revenue) using DuckDB arithmetic and aggregation functions.
    • Defining Dimensions: Attributes used to slice, dice, and filter data in the dashboard.
    • Multi-view support: You can view multiple metrics views on a single Canvas dashboard page.
  12. Understand the Message Block Conceptual Model

    main

    Rill transforms raw API messages (V1Message) into UI blocks (Block) for rendering chat conversations. The mapping follows this logic:

    • router_agent messages become TextBlock (the main conversation).
    • progress messages and tool call (inline) messages are grouped into ThinkingBlock.
    • tool call (block) messages render as specific blocks like ChartBlock or FileDiffBlock.
    • tool call (hidden) messages are not rendered.
    • result messages are attached to their parent tool calls.
    • Streaming messages with no text yet are rendered as a WorkingBlock (animated indicator).