All integrations
Metabase
+
Bruin

Metabase + Bruin

Source

Ingest Metabase data into your warehouse with incremental loading, quality checks, and full lineage. Defined in YAML, version-controlled in Git.

For business teams

What you get

  • Dashboards powered by clean data

    Feed Metabase from Bruin pipelines with built-in quality checks. No more stale or incorrect dashboards.

  • End-to-end lineage to ${pn}

    Trace data from raw sources through every transformation to Metabase. Find the root cause of wrong numbers in seconds.

  • Scheduled data refresh

    Bruin pipelines refresh Metabase data on a cron. Dependencies resolve automatically — Metabase only sees complete data.

  • Multi-source, one destination

    Combine 100+ sources into clean models that power Metabase. Bruin handles the pipeline, Metabase handles the visuals.

For data & engineering teams

How it works

  • Dependency-aware scheduling

    Bruin ensures upstream transforms complete before Metabase gets new data. No more stale or partial dashboards.

  • YAML-defined, Git-versioned

    Every pipeline feeding Metabase is a YAML file. Review in PRs, deploy with CI/CD, roll back with git revert.

  • Quality gates before visualization

    Quality checks run before data reaches Metabase. If checks fail, Metabase keeps showing the last known good data.

  • End-to-end lineage

    Trace data from raw sources through transforms to Metabase dashboards. Find root causes in seconds, not hours.

Before you start

Metabase instance (Cloud or self-hosted)
Admin account credentials
API access enabled

Step 1

Add your Metabase connection

Connect using Metabase API credentials. Add this to your Bruin environment file — credentials are stored securely and referenced by name in your pipeline YAML.

Parameters

  • usernameMetabase admin email
  • passwordMetabase admin password
  • hostMetabase instance URL
connections:
  metabase:
    type: metabase
    uri: "metabase://username:[email protected]"

Step 2

Create your pipeline

Define a YAML asset that tells Bruin what to pull from Metabase and where to land it. This file lives in your Git repo — reviewable, version-controlled, and deployable with CI/CD.

Available tables

questionsdashboardscollectionsdatabasescardsactivity
name: raw.metabase_questions
type: ingestr

parameters:
  source_connection: metabase
  source_table: 'questions'
  destination: bigquery

Step 3

Add quality checks

Add column-level and custom SQL checks to your Metabase data. If a check fails, the pipeline stops — bad data never reaches downstream models or dashboards.

Validate data freshness before it reaches dashboards
Ensure IDs are unique across syncs
Block stale data from appearing in visualizations
columns:
  - name: id
    checks:
      - name: not_null
      - name: unique

custom_checks:
  - name: data is fresh
    query: |
      SELECT MAX(updated_at) >
        TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR)
      FROM raw.metabase_questions

Step 4

Run it

One command. Bruin connects to Metabase, pulls data incrementally, runs your quality checks, and lands clean data in your warehouse. If a check fails, the pipeline stops — bad data never reaches downstream.

Backfill historical data with --start-date
Schedule with cron or trigger from CI/CD
Full lineage from Metabase to your dashboards
$ bruin run .
Running pipeline...

  metabase_questions
    ✓ Fetched 2,847 new records
    ✓ Quality: campaign_id not_null     PASSED
    ✓ Quality: spend not_null           PASSED
    ✓ Quality: no negative ad spend     PASSED
    ✓ Loaded into bigquery

  Completed in 12s

Other Data Analytics Platform integrations

Ready to connect Metabase?

Start for free, or book a demo to see how Bruin handles ingestion, quality, lineage, and scheduling for your entire data stack.