hene

hene.dev

(Last updated on )

dbt のプロジェクトでよく使うコマンド

dbt のプロジェクトでよく使うコマンド

SQLFluff

sqlfluff fix

モデルを自動修正。

  • 対象: main ブランチから追加・変更のあったモデル
$ sqlfluff fix -f $(git diff origin/main --diff-filter=d --name-only | grep -e '^models/.*\.sql' -e '^analyses/.*\.sql')

sqlfluff lint

ルールに違反するモデルを確認。 $ sqlfluff fix で修正できなかったモデルがあった時に実行。

  • 対象: main ブランチから追加・変更のあったモデル
$ sqlfluff lint $(git diff origin/main --diff-filter=d --name-only | grep -e '^models/.*\.sql' -e '^analyses/.*\.sql')

dbt

dbt run & test

下記の dbt rundbt test を実行。

$ dbt run -s $(git diff origin/main --diff-filter=d --name-only | grep -e '^models/.*\.sql' -e '^analyses/.*\.sql' | sed 's/^/+/g') && dbt test -s $(git diff origin/main --diff-filter=d --name-only | grep -e '^models/.*\.sql') --exclude tag:big_model

dbt run

dbt のモデルを作成・更新。

  • 対象
    • main ブランチから追加・変更のあったモデル
    • main ブランチから追加・変更のあったモデルが参照しているモデル
$ dbt run -s $(git diff origin/main --diff-filter=d --name-only | grep -e '^models/.*\.sql' -e '^analyses/.*\.sql' | sed 's/^/+/g')

dbt test

dbt のテストを実行。 big_model のタグを付与しているモデルは、ローカル環境で実行するとコストが嵩むため、ローカルでは exclude している。

  • 対象
    • main ブランチから追加・変更のあったモデル
    • big_model のタグを付与しているモデルを除外
$ dbt test -s $(git diff origin/main --diff-filter=d --name-only | grep -e '^models/.*\.sql') --exclude tag:big_model

dbt docs

現在の dbt のドキュメントを確認。

$ dbt compile && dbt docs generate && dbt docs serve

dbt osmosis

ドキュメントを作成・更新。

自動で、参照しているモデルのドキュメントを取得して埋めてくれる。

$ dbt-osmosis yaml refactor --project-dir ./ --profiles-dir ./.dbt

参考