running-dbt-commands

安装量: 81
排名: #9686

安装

npx skills add https://github.com/dbt-labs/dbt-agent-skills --skill running-dbt-commands

Running dbt Commands Preferences Use MCP tools if available ( dbt_build , dbt_run , dbt_show , etc.) - they handle paths, timeouts, and formatting automatically Use build instead of run or test - test doesn't refresh the model, so testing a model change requires build . build does a run and a test of each node (model, seed, snapshot) in the order of the DAG Always use --quiet with --warn-error-options '{"error": ["NoNodesForSelectionCriteria"]}' to reduce output while catching selector typos Always use --select - never run the entire project without explicit user approval Quick Reference

Standard command pattern

dbt build --select my_model --quiet --warn-error-options '{"error": ["NoNodesForSelectionCriteria"]}'

Preview model output

dbt show --select my_model --limit 10

Run inline SQL query

dbt show --inline "select * from {{ ref('orders') }}" --limit 5

With variables (JSON format for multiple)

dbt build --select my_model --vars '{"key": "value"}'

Full refresh for incremental models

dbt build --select my_model --full-refresh

List resources before running

dbt list --select my_model+ --resource-type model dbt CLI Flavors Three CLIs exist. Ask the user which one if unsure. Flavor Location Notes dbt Core Python venv pip show dbt-core or uv pip show dbt-core dbt Fusion ~/.local/bin/dbt or dbtf Faster and has stronger SQL comprehension dbt Cloud CLI ~/.local/bin/dbt Go-based, runs on platform Common setup: Core in venv + Fusion at ~/.local/bin . Running dbt uses Core. Use dbtf or ~/.local/bin/dbt for Fusion. Selectors Always provide a selector. Graph operators: Operator Meaning Example model+ Model and all downstream stg_orders+ +model Model and all upstream +dim_customers +model+ Both directions +orders+ model+N Model and N levels downstream stg_orders+1 --select my_model

Single model

--select staging.*

Path pattern

--select fqn:stg_

FQN pattern

--select model_a model_b

Union (space)

--select tag:x,config.mat:y

Intersection (comma)

--exclude my_model

Exclude from selection

Resource type filter: --resource-type model --resource-type test --resource-type unit_test Valid types: model , test , unit_test , snapshot , seed , source , exposure , metric , semantic_model , saved_query , analysis List Use dbt list to preview what will be selected before running. Helpful for validating complex selectors. dbt list --select my_model+

Preview selection

dbt list --select my_model+ --resource-type model

Only models

dbt list --output json

JSON output

dbt list --select my_model --output json --output-keys unique_id name resource_type config Available output keys for --output json : unique_id , name , resource_type , package_name , original_file_path , path , alias , description , columns , meta , tags , config , depends_on , patch_path , schema , database , relation_name , raw_code , compiled_code , language , docs , group , access , version , fqn , refs , sources , metrics Show Preview data with dbt show . Use --inline for arbitrary SQL queries. dbt show --select my_model --limit 10 dbt show --inline "select * from {{ ref('orders') }} where status = 'pending'" --limit 5 Important: Use --limit flag, not SQL LIMIT clause. Variables Pass as STRING, not dict. No special characters ( \ , \n ). --vars 'my_var: value'

Single

--vars '{"k1": "v1", "k2": 42, "k3": true}'

Multiple (JSON)

Analyzing Run Results After a dbt command, check target/run_results.json for detailed execution info:

Quick status check

cat target/run_results.json | jq '.results[] | {node: .unique_id, status: .status, time: .execution_time}'

Find failures

cat
target/run_results.json
|
jq
'.results[] | select(.status != "success")'
Key fields:
status
success, error, fail, skipped, warn
execution_time
seconds spent executing
compiled_code
rendered SQL
adapter_response
database metadata (rows affected, bytes processed) Defer (Skip Upstream Builds) Reference production data instead of building upstream models: dbt build --select my_model --defer --state prod-artifacts Flags: --defer - enable deferral to state manifest --state - path to manifest from previous run (e.g., production artifacts) --favor-state - prefer node definitions from state even if they exist locally dbt build --select my_model --defer --state prod-artifacts --favor-state Static Analysis (Fusion Only) Override SQL analysis for models with dynamic SQL or unrecognized UDFs: dbt run --static-analysis = off dbt run --static-analysis = unsafe Common Mistakes Mistake Fix Using test after model change Use build - test doesn't refresh the model Running without --select Always specify what to run Using --quiet without warn-error Add --warn-error-options '{"error": ["NoNodesForSelectionCriteria"]}' Running dbt expecting Fusion when we are in a venv Use dbtf or ~/.local/bin/dbt Adding LIMIT to SQL in dbt_show Use limit parameter instead Vars with special characters Pass as simple string, no \ or \n
返回排行榜