今天,我想將到目前為止提到過的指令,做個小整理,並且重新介紹。
另外還有兩個我個人會使用,但和 packages 還有 macro 有關,不在本系列文章的入門階段,今日不多談。
先把 dbt model compile 成 SQL 語法,再依對應的 materialization (view, table 等等),打到目標資料庫。
可以加上 --select
只跑指定 model
dbt run --select customers
把 dbt seeds 的 CSV 內容打到目標資料庫(table)。
之前有時會遇到狀況,如果目標資料庫的 table 已經存在,但 seed 的欄位有變動,執行 dbt seed
會發生錯誤。
這時候可以試著加上 --full-refresh
跑跑看。
dbt seed --full-refresh
執行 models 相關的 test。
可以加上 --select
只跑指定的 model,例如
dbt test --select customers
build 就是一次做好幾件事的懶人包
一樣可以加上 --select
只跑指定物件
dbt build --select customers
更新 documentation 背後所需的檔案,包含
其中,manifest 包含 compile 後的語法。
如果不需要重新 compile,可以加上 --no-compile
參數
dbt docs generate --no-compile
在執行指令時,我們時常希望只執行部份 model。
這時就可以用 --select
參數,或是縮寫 -s
也可以。以下是一些範例。
只 run customer
dbt run -s customers
run customer model 以及所有上游
dbt run --select +customers
run customer model 以及所有下游
dbt run --select customers+
run customer model 以及所有上游+下游
dbt run --select +customers+
只 run stg_orders 以及 stg_customers
dbt run --select stg_orders stg_customers
Run 所有 models 但排除 stg_orders
dbt build --exclude stg_orders
更多進階的選取方法,可以參考下方連結。
明天的主題:dbt Cloud IDE 介面、功能介紹、以及小技巧。
歡迎加入 dbt community
對 dbt 或 data 有興趣 👋?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加