Jaco van der Laan

Supercharging Model-Driven Data Engineering with dbt-osmosis

25/09/2025  ·  Data Architecture  ·  Data Engineering  ·  Data Modeling

‹ ›

Bringing documentation, governance, and business-friendly modeling to the dbt ecosystem.

Summary

dbt has transformed how analytics engineers build data pipelines: SQL-first, version-controlled, testable.
But as data environments scale, the challenge shifts: how do we keep hundreds of models understandable, documented, and aligned with the business?

That’s where dbt-osmosis comes in — an open-source tool that synchronizes your dbt project with rich metadata and documentation.
For teams practicing model-driven data engineering and business-friendly, model-first approaches, dbt-osmosis is a key building block.

What Is dbt-osmosis?

dbt-osmosis is a documentation and metadata synchronization utility for dbt projects. It:

  • Extracts dbt model definitions and generates or updates YAML documentation files.
  • Synchronizes column-level metadata (descriptions, data types, tests) from your warehouse back into your dbt project.
  • Cleans and organizes documentation for better readability and governance.
  • Can integrate with external metadata systems or catalogs.

In other words: it keeps your dbt models and your metadata in sync — automatically.

Why dbt-osmosis Matters for Our Approach

Our methodology is metadata-first:

  • Model-driven engineering: design your data structures and mappings centrally.
  • Business-friendly mapping: ensure the business can read and influence models.
  • Universal data models: use canonical, reusable patterns.
  • Automation: generate diagrams, SQL, tests, and docs from metadata.

dbt-osmosis fits perfectly as the bridge between metadata-driven design and the dbt transformation layer.

How It Fits in Our Framework

Our high-level architecture:

Metadata Repository → Model-driven Design → dbt (Transform) → Delivery Layers (Semantic Views, BI)

  • Metadata repository: YAML, JSON, or DuckDB holds canonical entities, attributes, mappings.
  • Model-driven generation: scripts create dbt models (SQL + YAML).
  • dbt-osmosis: keeps dbt YAML documentation in sync when models change or when warehouse metadata evolves.
  • Delivery: Semantic Views (Snowflake), BI, and AI tools consume well-documented, governed models.

With dbt-osmosis:

  • We generate initial YAML from our metadata.
  • We update docs automatically when schemas evolve.
  • Business-friendly names and descriptions stay aligned — no more stale docs.
  • Downstream consumers (BI, AI SQL generation) can trust the dbt metadata.

Practical Workflow

Model First
Define entities & mappings in metadata (YAML/DuckDB).

Generate dbt Artifacts
Scripts output dbt models (SQL) and starter YAML docs.

Run dbt-osmosis

  • Pulls warehouse column info (data types, names).
  • Merges business descriptions from metadata into dbt YAML.
  • Cleans orphaned fields, ensures consistency.

Version & Commit
Docs evolve alongside code in Git.

Publish
Use dbt docs site, Semantic Views, or data catalog integration for discovery.

Example

Your metadata (YAML)

entity: customer  
description: "A person or organization purchasing products."  
attributes:  
  - name: customer_id  
    description: "Surrogate key for customer."  
  - name: email  
    description: "Primary contact email."

Generated dbt model: **models/marts/core/customer.sql**

select  
    customer_id,  
    email  
from raw.customer;

dbt-osmosis sync → updates **models/marts/core/customer.yml**

version: 2  
models:  
  - name: customer  
    description: "A person or organization purchasing products."  
    columns:  
      - name: customer_id  
        description: "Surrogate key for customer."  
      - name: email  
        description: "Primary contact email."

Now the dbt docs site shows accurate, business-friendly descriptions — and stays updated as metadata or schema evolves.

Benefits in a Model-Driven Context

  • Single Source of Truth: Metadata drives dbt docs, not the other way around.
  • Zero Drift: Warehouse schema changes sync back automatically.
  • Governed AI: LLMs generating SQL can use accurate dbt metadata.
  • Less Manual Work: Engineers focus on transformations, not repetitive YAML edits.
  • Consistent Business Language: The same terms flow from design to docs to BI.

Key Takeaways

  • dbt-osmosis automates documentation and metadata alignment in dbt.
  • It’s a natural fit for model-first, metadata-driven engineering.
  • It closes the gap between design-time metadata and runtime dbt models.
  • Well-documented models power self-service BI, governance, and AI SQL generation.

If you’re already investing in metadata-driven data engineering, adding dbt-osmosis removes one of the biggest friction points: keeping docs fresh and reliable at scale.

Related Reading