【dbt】dbt CLI ~ 入門編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2024/07/20/034930

で、 dbt の run とか show とか使ったが
dbt CLI (dbt コマンド)として改めてまとめておいた方がよさそうなので
徐々にではあるが、まとめていく。

目次

【1】dbt CLI
 1)環境設定
【2】主なオプション
 1)--profiles-dir PATH
 2)--project-dir PATH
 3)--vars
 4)--log-level [debug|info|warn|error|none]
【3】主なコマンド
 1)run
 2)run-operation
 3)show
 4)init
 5)seed
 6)debug
 7)docs
 8)list (ls)

【1】dbt CLI

* dbt の コマンドライン

https://docs.getdbt.com/category/list-of-commands
https://docs.getdbt.com/reference/dbt-commands#available-commands

1)環境設定

* dbt core をインストールする必要がある
* 以下の関連記事を参照のこと

dbt ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/12/16/152147

【2】主なオプション

1)--profiles-dir PATH

* profiles.ymlのパス
* デフォルトは、HOME/.dbt/

2)--project-dir PATH

* dbt_project.ymlのパス
* デフォルトは、カレントディレクトリの親パス

3)--vars

* 変数を指定する

https://docs.getdbt.com/docs/build/project-variables#defining-variables-on-the-command-line

* 変数に関する詳細は、以下の関連記事を参照の事

dbt ~ 変数 var / env_var ~
https://dk521123.hatenablog.com/entry/2025/05/03/140109

サンプル
https://docs.getdbt.com/reference/dbt-jinja-functions/var

-- my_model.sql
select * from events where event_type = '{{ var("event_type") }}'

https://docs.getdbt.com/docs/build/project-variables#defining-variables-on-the-command-line

# --vars '{event_type: "activation"}' を指定する例
dbt run --select my_model --vars '{event_type: "activation"}'

4)--log-level [debug|info|warn|error|none]

* コンソールログおよびログファイルのログレベルを設定
 => 「--log-level-file」は、同様にログレベル設定だが、
  ログファイルに関して「--log-level」を上書きする

【3】主なコマンド

https://docs.getdbt.com/category/list-of-commands
https://docs.getdbt.com/reference/dbt-commands#available-commands

Command Explanations Memo
build models, tests, seeds, and snapshots 実行 全部盛りで実行
clean 全てのフォルダを削除
clone クローン生成
compile source, model, testのSQLを生成する
debug DBTコネクションとプロジェクトのデバッグ
deps 特定した dbt パッケージをインストールする
docs ドキュメント生成 https://dk521123.hatenablog.com/entry/2023/12/10/125512
init 新規DBTプロジェクトの初期化処理
list / ls テーブル一覧表示 https://dk521123.hatenablog.com/entry/2025/04/13/222612
parse プロジェクトとパフォーマンスに関する提供された情報をパースする
retry 失敗した以前の実行を再実行
run モデル実行
run-operation マクロを呼び出す https://dk521123.hatenablog.com/entry/2025/04/29/000515
seed CSVをロードしDBに挿入 https://dk521123.hatenablog.com/entry/2025/04/18/141109
show 指定したModelや任意のSELECT文の出力結果を表示 https://dk521123.hatenablog.com/entry/2025/04/27/125533
snapshot プロジェクトに定義されたsnapshot実行 https://dk521123.hatenablog.com/entry/2025/05/26/132317
source sourceデータを扱うためのツールを提供
test テスト実行

1)run

* プロジェクト内のモデルを実行する

https://docs.getdbt.com/reference/commands/run
コマンド例

dbt run --target dev --project-dir users/

2)run-operation

* データベースに対して任意のメンテナンスSQLを実行するなど、マクロを呼び出す。
 => 詳細は、以下の関連記事を参照の事

dbt CLI ~ マクロ実行 / dbt run-operation ~
https://dk521123.hatenablog.com/entry/2025/04/29/000515

3)show

* 指定したModelや任意のSELECT文の出力結果を表示

dbt CLI ~ SELECT実行 / dbt show ~
https://dk521123.hatenablog.com/entry/2025/04/27/125533

4)init

* 新規DBTプロジェクトの初期化処理

https://docs.getdbt.com/reference/commands/init

 => 以下の関連記事で実際に使用している

dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003

5)seed

* CSVをロードしDBに挿入

dbt ~ 基本編 / Seed ~
https://dk521123.hatenablog.com/entry/2023/11/20/230946
dbt CLI ~ シード / dbt seed ~
https://dk521123.hatenablog.com/entry/2025/04/18/141109

6)source

* sourceデータを扱うためのツールを提供

7)docs

* ドキュメント生成に関するコマンド

https://docs.getdbt.com/reference/commands/cmd-docs

* 詳細は、以下の関連記事を参照のこと

dbt CLI ~ ドキュメント化 / dbt docs ~
https://dk521123.hatenablog.com/entry/2023/12/10/125512

8)list (ls)

* テーブル一覧表示するコマンド
* 詳細は、以下の関連記事を参照のこと

dbt CLI ~ テーブル一覧表示 / dbt list ~
https://dk521123.hatenablog.com/entry/2025/04/13/222612

関連記事

dbt ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/30/000000
dbt ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/12/16/152147
dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/30/151003
dbt ~ 基本編 / Seed ~
https://dk521123.hatenablog.com/entry/2023/11/20/230946
dbt ~ snapshot ~
https://dk521123.hatenablog.com/entry/2025/05/26/132317
dbt ~ 変数 var / env_var ~
https://dk521123.hatenablog.com/entry/2025/05/03/140109
dbt CLI ~ シード / dbt seed ~
https://dk521123.hatenablog.com/entry/2025/04/18/141109
dbt CLI ~ ドキュメント化 / dbt docs ~
https://dk521123.hatenablog.com/entry/2023/12/10/125512
dbt CLI ~ テーブル一覧表示 / dbt list ~
https://dk521123.hatenablog.com/entry/2025/04/13/222612
dbt CLI ~ SELECT実行 / dbt show ~
https://dk521123.hatenablog.com/entry/2025/04/27/125533
dbt CLI ~ マクロ実行 / dbt run-operation ~
https://dk521123.hatenablog.com/entry/2025/04/29/000515
dbt で生成されるSQL文を確認する
https://dk521123.hatenablog.com/entry/2024/08/25/002741
Python with dbt ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2024/07/20/034930
Python with dbt ~基本編 ~
https://dk521123.hatenablog.com/entry/2025/04/26/234102
dbt seed 実行後、エラー「Cross-db references not allowed in postgres」が発生
https://dk521123.hatenablog.com/entry/2025/05/23/215144