【dbt CLI】How to install dbt
CLI overview
dbt Coreには、dbtプロジェクトを実行するためのコマンドラインインターフェイス(CLI)が同梱されています。dbt CLIはOSSであり、無料で使用できる。
How to install dbt
dbt CLIのインストールには4つの方法がある
- Homebrewを使ってインストールする方法(MacOSではこれが一番ポピュラーなので、おすすめ)
- pipを使ってインストールする方法
- dockerイメージでインストールする方法
- sourceからインストールする方法
About dbt adapters
利用する環境に応じたアダプターでインストールする必要がある。
例えば、snowflakeなら、pip install dbt-snowflake
Use Homebrew to install dbt (Homebrewを使ってインストール)
dbt Labs は、最もポピュラーな4つのDWHに対してアダプタプラグインを公式に提供している(Postgres, Redshift, Snowflake, BigQuery)
-
ローカル環境の開発にMacOSを使っている
-
上記の4つのDWHのうち1つを使っている
-
システム要件(Python 3など)が既にインストールされているかどうかわからないし、手作業で管理するのも面倒な場合
Homebrewを使ってインストールするのはこんな環境の人に最もおすすめ -
homebrewを使うと単体でdbtをインストールするよりも時間がかかるかもしれない(依存関係とかみてる)
-
M1Macの場合は、Rossettaを使ったHomebrewを使うことをおすすめ(M1使ってないからよくわからんが・・・)
複数のバージョンのPythonを使い分けたい・・・という場合は、pip
などを使ってインストールするとよい
Installing with Homebrew
$ brew update
$ brew install git # すでにgitをインストール済みなら、必要なし
$ brew tap dbt-labs/dbt
これでdbtをインストールする準備ができた
$ brew install dbt-snowflake
dbt-<adapter>
って感じでインストールします。
Upgrading dbt and your adapter
brew update
brew upgrade dbt-<adapter>
Switching versions(バージョンを変更する)
brew unlink dbt-<adapter>
brew install dbt-<adapter>@1.0.0
brew link dbt-<adapter>@1.0.0
↓
$ dbt --version
installed version: 1.0.0
latest version: 1.0.0
Up to date!
Plugins:
- <adapter>: 1.0.0
brew unlink dbt-<adapter>@1.0.0
brew link dbt-<adapter>@0.21.1
Use pip to install dbt
WindowsやLinuxにdbt Coreをインストールするには、pip
を使用する必要があります。MacOSにdbt CoreをインストールするにはHomebrewがおすすめ
pip install dbt-snowflake
$ dbt --version
installed version: 1.0.0
latest version: 1.0.0
Up to date!
Plugins:
- snowflake: 1.0.0
Upgrading
pip install --upgrade dbt-<adapter>
Install dbt-core only
pip install dbt-core
dbtCoreと統合するツールを構築する場合は、dbt-core
のみで。たとえば、新しいアタプタを開発する場合など
pip install dbt
v1.0.0以降、pip install dbtはサポートされなくなり、明示的なエラーが発生するようになったので注意。
pip install dbt
と同等のことをしたい場合
pip install \
dbt-core \
dbt-postgres \
dbt-redshift \
dbt-snowflake \
dbt-bigquery
と実行すればよい
Use Docker to install dbt
(やらないので略)
Install dbt from source
(やらないので略)
Discussion