iT邦幫忙

2023 iThome 鐵人賽

DAY 12
2
AI & Data

dbt: 告別過時的SQL開發流程系列 第 12

DAY 12 - dbt Cloud 入門 (10) - dbt Commands 小整理

  • 分享至 

  • xImage
  •  

今天,我想將到目前為止提到過的指令,做個小整理,並且重新介紹。

  • run
  • seed
  • test
  • build
  • docs

另外還有兩個我個人會使用,但和 packages 還有 macro 有關,不在本系列文章的入門階段,今日不多談。

  • deps
  • run-operation

dbt Commands

dbt run

先把 dbt model compile 成 SQL 語法,再依對應的 materialization (view, table 等等),打到目標資料庫。

可以加上 --select 只跑指定 model

dbt run --select customers

dbt seed

把 dbt seeds 的 CSV 內容打到目標資料庫(table)。

之前有時會遇到狀況,如果目標資料庫的 table 已經存在,但 seed 的欄位有變動,執行 dbt seed 會發生錯誤。
這時候可以試著加上 --full-refresh 跑跑看。

dbt seed --full-refresh

dbt test

執行 models 相關的 test。

可以加上 --select 只跑指定的 model,例如

dbt test --select customers

https://ithelp.ithome.com.tw/upload/images/20230829/20159575qu7jVrxwCE.png

dbt build

build 就是一次做好幾件事的懶人包

  • run models
  • test tests
  • snapshot snapshots
  • seed seeds
    如果上游物件 test 失敗,下游的物件就會跳過,不會被錯誤資料污染。

一樣可以加上 --select 只跑指定物件

dbt build --select customers

dbt docs generate

更新 documentation 背後所需的檔案,包含

  • index.html
  • manifest.json
  • catalog.json

其中,manifest 包含 compile 後的語法。

如果不需要重新 compile,可以加上 --no-compile 參數

dbt docs generate --no-compile

More about --select

在執行指令時,我們時常希望只執行部份 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 報名參加


上一篇
DAY 11 - dbt Cloud 入門 (9) - dbt Seeds
下一篇
DAY 13 - dbt Cloud 入門 (11) - dbt Cloud IDE 介面及功能介紹
系列文
dbt: 告別過時的SQL開發流程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言