Bruin is an open-source data pipeline tool written in Go that combines ingestion, SQL and Python transformations, automated quality checks, and column-level lineage in a single CLI, with a managed cloud layer above it.
The CLI is a single Go binary: bruin run executes pipelines against Snowflake, BigQuery, Databricks, Redshift, Postgres, DuckDB, or ClickHouse, from cron or CI. Named environments in .bruin.yml switch connection sets. Bruin Cloud schedules pipelines from the Git repo with backfills, notifications, and cross-pipeline dependencies, running each asset on an ephemeral instance.
How Bruin answers the questions Transformation turns on.
| How it works | |
| Model language | SQL, Python and R, all first-class |
| Model kinds | Table or view, with strategies for create+replace, truncate+insert, append, merge, delete+insert, time_interval and ddl, plus SCD2 by column or time and Data Vault hub, link and satellite |
| Change detection | Nothing classifies an edit: validate checks a pipeline before it runs and data-diff compares two tables, but what to rebuild is your call |
| Testing | Both halves: quality checks validate the data an asset produced, unit tests pin the SQL against mock inputs as a read-only SELECT that writes nothing |
| Lineage | Asset-level upstream and downstream from bruin lineage or the Cloud graph, including across pipelines; columns carry owners and a glossary maps them to business entities |
| Semantic layer | Real and in the open-source CLI, metrics, dimensions, segments and safe joins in YAML under a semantic directory, compiled to SQL and queried with bruin query |
| Running it | |
| Environments | Named environments in .bruin.yml, each a different set of connections chosen with --environment; nothing is shared or reused between them |
| Scheduling | bruin run from cron or CI; Bruin Cloud schedules from the Git repo with backfills, notifications and cross-pipeline dependencies |
| Connections | |
| Engines | Many: Snowflake, BigQuery, Databricks, Redshift, Postgres, DuckDB, ClickHouse |
| Cost | |
| Billing unit | The CLI is free; Bruin Cloud runs each asset on an ephemeral instance sized b1.nano to b1.4xlarge, and publishes no price list |
vs Bruin: Commercial · Managed
vs Bruin: Free · TypeScript
vs Bruin: Rust, Python