Metabase + Bruin
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
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 emailpasswordMetabase admin passwordhostMetabase 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
name: raw.metabase_questions
type: ingestr
parameters:
source_connection: metabase
source_table: 'questions'
destination: bigqueryStep 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.
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_questionsStep 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.
--start-date$ 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 12sReady 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.