dbt 指令 flag 是你跑 dbt run 一定會寫到的東西,因為他可以幫你達成很多事
--select
, **--exclude
**參數允許指定要執行的 model,對於只運行特定部分的 dbt 專案很有用,因為不需要全部 model 都跑,以節省 db 資源。而且用處很彈性也很廣泛
廣泛: 除了基本的 dbt run test, 還有 compile, build, seed, snapshot, ls…等都可以用這兩個 flag 詳細支援的 command 看這
彈性: 支援很多篩選條件
基本的 tag, model name, 路徑選擇:
source 篩選:
若是跑 dbt test 或 dbt build 可以篩選 source name
dbt test --select source:jaffle_shop # jaffle_shop 是 source name
聯集, 交集, all, 下游
dbt run --select my_first_model my_second_model
dbt run --select path:marts/finance,tag:nightly,config.materialized:table
# +加號
dbt run --select my_model+ # 選擇 my_model 和其下游表
dbt run --select +my_model # 選擇 my_model 和其上游表
dbt run --select +my_model+ # 選擇 my_model 和其上游、下游表
# 星號全選
dbt run --select tag:nightly my_model finance.base.*
合起來的範例
# +加號
# 跑 snowplow 下游的表
dbt run --select source:snowplow+
# 跑 test tag:nightly 還要排除 source
dbt test --select tag:nightly --exclude 'source:*'"
# 跑 dbt test my_model 的所有 source
dbt test --select 'source:*',my_model # source 星號要加單引號
好用的 flag 太多了,還有其他的 flag 後面分享