Welcome to Balto
Balto is a dbt compatible SQL model orchestration engine that lives directly inside your Snowflake account. Balto automatically handles deploying your project changes and let's you easily manage scheduled builds and triggered tasks.
Balto's orchestration engine runs on the same warehouse that executes your SQL models and scales to zero when there is no active work. This means you're not paying for an external orchestrator or cloud service to sit around waiting for your models to finish. Save thousands per month with our flat subscription based billing.
With Balto there are no external dependencies, no orchestrators to manage, and no secrets or connections to setup. Scale from proof of concept to thousands of models without paying enterprise prices.
Balto supports running any dbt project that uses the dbt-snowflake
adapter. Or you can use the Balto CLI, a fork of dbt-core which adds several new features, like schedules and triggers.
Quick Start
Clone our example repo and follow our guide to learn how to deploy your first model.
Ready to get started? Check out the installation instructions.
How it works
Balto is a fork of dbt-core that has been rebuilt from the ground up to run as a Snowflake Native app. The following are the major design differences:
Compilation
Balto simplifies the parsing process when building your project. Any database interactions are deferred during compilation, this allows us push all database interactions to the Balto Snowflake Native App installed in your account. This means if you use our Github Integation, you can enable automated deployments without having to manage any external accounts or connections.
Orchestration
Balto implements a batteries included orchestration engine inside the Snowflake App. When you deploy your compiled projects via our Gitub integration (or via a call to our stored procedure), the Balto orchestrator handles deploying your compiled project from directly inside your Snowflake account.
Under the hood, Balto's orchestration engine uses Snowflake triggered tasks and streams to implement a completely event driven scheduler that allows it to scale to zero when no models are being executed.
dbt macro executor
Balto includes a lightweight re-implementation of dbt's Jinja macro
extension that allows it to execute your model inside a stored procedure that runs on the same warehouse the underlying queries get run on.
Comparisons
Feature | dbt Cloud | Balto |
---|---|---|
Orchestration | ||
Native Scheduler | ||
Triggers | ||
Metrics | ||
Security | ||
Native Execution | ||
Single Tenant | ||
CI/CD | ||
Native Dev Environments | ||
Blue/Green Deploys | ||
Github Integration | ||
Multi-Project Support | ||
Native Documentation | ||
Cross-project dependencies |