Third-Party Tools for dbt¶
Overview¶
Several third-party tools complement dbt development, governance, and documentation.
While not required, they significantly improve productivity, consistency, and the quality of published documentation.
The most vital tool to know and use is dbt Power User in VS Code, paired with SQLFluff linting for dbt templating.
Key Tools¶
dbt Power User¶
- Purpose: Primary VS Code extension for dbt navigation and documentation.
- Key Capabilities:
- Graph and lineage browsing from manifest artifacts.
ref()/source()auto-complete and quick open of dependent models.- Inline editing of model/column descriptions to reduce undocumented items.
- Documentation stubs and shortcuts to keep
_models.ymlsynchronized. - Recommended Settings:
- Point to
target/manifest.jsonfor accurate lineage. - Enable βGenerate Documentation Stubβ command for new models.
SQLFluff¶
- Purpose: Enforce consistent SQL/Jinja style and catch templating errors.
- Key Capabilities:
- dbt-aware linting (
templater = dbt). - CI-friendly outputs (GitHub annotations, JSON).
- Optional auto-fix with review.
- Config Example:
[sqlfluff]
dialect = ansi
templater = dbt
exclude_rules = L009
[tool:sqlfluff:templater:dbt]
project_dir = .
profiles_dir = .
dbt VS Code Extension (Fusion Engine Preview) Ζ?" Optional¶
- Purpose: Experimental Fusion Engine completion and semantic cues.
- When to Use: Optional add-on alongside dbt Power User for teams that want graph-aware hints.
- Guardrails: Keep lint/tests as the source of truth; disable conflicting shortcuts; validate features per adapter.
Common Community Packages (Reference)¶
Use a small, pinned set of packages; avoid floating versions. Evaluate maintenance, adapter support, and performance before adoption.
| Package | Why use it | Notes / Guardrails |
|---|---|---|
dbt-utils |
Canonical macros and reusable tests | Default include; keep versions pinned in packages.yml. |
dbt-codegen |
Generate YAML/model stubs to accelerate docs | Review generated code; do not commit without edits. |
dbt_project_evaluator |
Governance checks for structure/tests | Run in CI on schedule; validate findings before blocking. |
audit_helper |
Lightweight reconciliation patterns | Scope to critical flows; keep configs adapter-agnostic. |
dbt_expectations |
Rich expectations-style tests | Powerful but can be slow on large tables; sample/partition where possible. |
dbt-bounce |
Validate refs/tests connectivity | Optional; useful for dependency sanity checks. |
elementary |
Monitoring/observability for dbt runs | Adds overhead; justify for teams needing run-time telemetry. |
Keep packages.yml pinned
Pin every package version and review upgrades alongside dbt-core minor releases.
Onboarding Defaults¶
- Install VS Code and recommended extensions:
{
"recommendations": [
"innoverio.vscode-dbt-power-user",
"ms-python.python",
"ms-toolsai.jupyter",
"ms-vscode.powershell"
]
}
- Set
DBT_PROFILES_DIR(env or VS Code settings) and rundbt depsbefore firstdbt build. - Install SQLFluff with dbt templater:
pip install "sqlfluff[dbt]". - Run
sqlfluff lint models/locally; fix or baseline before opening PRs. - Use dbt Power User to generate docs stubs as you add models/sources.