Skip to main content
Omni’s bi-direction dbt integration makes it easy to view your dbt metadata, create and edit models within Omni, and keep your dbt and BI layer operating in lockstep.

What you can do with dbt in Omni

After you connect your dbt Git repository, Omni compiles your dbt project into a manifest and reads it. From there, you can:

Sync dbt model metadata

Sync metadata in your dbt project into matching views in your Omni model. See the dbt metadata reference for all available metadata.

Configure environments

Tell Omni how to run dbt commands against your project - which schema your models are built into, which database they live in, and what target your project expects.

Test dbt changes against real content

Use Virtual Schemas to enable environment switching without rewriting content, so you can see what a model change does before it reaches users.

Integrate dbt's semantic layer

Map dimensions, entities, measures, and metrics defined in dbt’s semantic layer into your Omni model.

Author dbt models in Omni

Promote an Omni query into a dbt model, or edit existing models in the Omni UI.

Push exposures to dbt

Track Omni dependencies in dbt by generating exposure files from published dashboards and pushing them to your dbt repository.

Collaborate with Git

Learn how to manage the development lifecycle between Omni, dbt, and Git.

Setting up dbt

To use dbt in Omni:
  1. Connect your dbt Git repository. Omni reads your dbt project from the Git repository that holds it. Each Omni connection supports one dbt project.
  2. Configure your production dbt environment. A dbt environment tells Omni where your models are built. Omni creates a production environment automatically when you connect a dbt Git repository, but you must configure its settings to mirror your profiles.yml (dbt Core) or your dbt Cloud environment.
  3. Sync dbt with Omni. Trigger a dbt sync to compile the manifest, locate your dbt models in the database, and pull descriptions, tests, and tags into the matching Omni views.
  4. Optional: Set up Virtual Schemas. Virtual Schemas point your content at a dbt environment instead of a physical schema, so users can swap between production and a personal dev build without breaking workbooks and topics.

Common questions

Omni supports dbt Core and dbt Cloud.
If you connect to tables as raw schemas rather than using the formal dbt integration, you won’t be able to:
  • Sync metadata from dbt into your Omni model
  • View upstream dbt dependencies within Omni
  • Toggle between dbt environments
  • Edit dbt models in Omni
Only one dbt project at a time can be associated with an Omni connection. If you have multiple dbt projects, the workaround depends on how you want to query the data in Omni.To query the datasets together, you’ll need to do one of the following:
  1. Connect to one project and pull the other projects’ tables as raw schemas
  2. Consolidate dbt projects
Otherwise, you’ll need to create a connection for each dataset. Depending on your goals and whether the datasets are identical, you can use use dynamic environments to switch between the datasets in Omni. Dynamic environments only change the connection being used, not the structure of the underlying model - this means if one model uses an object that doesn’t exist in another, there will be errors.
No. Omni does not currently support custom dbt plugins.
This is possible only if the tables are included in the same Omni connection. A connection can have only one dbt manifest, so you can query Project A with full metadata and Project B as raw tables in the same dashboard.Combining tables from two separate Omni connections into a single query or dashboard tile isn’t supported.