ネット上で検索するとdbtCoreの環境構築手順は様々紹介されています。
いずれもバージョンや環境差異によってうまく起動しないケースがあるので、本記事ではシンプルなPython用のDockerコンテナ環境で、dbt(本記事ではdbt-snowflake)インストールからモデルを実行するまでの手順を紹介します。
ローカルPCに以下のディレクトリ構成でフォルダとファイルを作成。
docker-python(フォルダ)
| -- Dockerfile(Dockerファイル)
| -- docker-compose.yml(YAMLファイル)
各ファイルに以下の内容をコピペ。
Dockerfile
FROM python:3.9.10-buster
USER root
RUN apt-get update
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TERM xterm
RUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
docker-compose.yml
version: '3'
services:
dbt-core:
restart: always
build: .
container_name: 'dbt-core'
working_dir: '/root/'
tty: true
VSCodeを起動し、ターミナルを開く。( Ctrl + j )
cdコマンドでさきほど作成したdocker-pythonに移動し、以下のコマンドでコンテナを作成
docker compose up -d --build
以下のコマンドを実行し、コンテナが作成されたか確認します。
docker ps -a
dbt-coreという名前のコンテナが確認できたら、コンテナを起動します。
docker compose exec dbt-core bash
ターミナルのコマンドがroot@{コンテナID}となっていれば成功です。
root@xxxxxxxxxxxx:~#
作成したコンテナ上に、dbtCore(Snowflake用)をインストールします。
https://docs.getdbt.com/docs/core/pip-install#installing-the-adapter
以下のコマンドを実行し、コンテナ環境にdbtCoreをインストールします。
python -m pip install dbt-snowflake
インストール完了後、以下のコマンドを実行しdbtコマンドが使用できるか確認します。
dbt --version
dbtプロジェクトを初期化します。
dbt init dbt_core
最後に設定が正しいかを確認するため以下コマンドを実行します。
dbt debug
※実行は~/dbt_core/に移動して行ってください
初期後、models/example配下にモデルが2つ用意されているのでコマンド実行します。
dbt run --select example
コマンドが正常に終了するとSnowflakeにビューとテーブルが作成されます。
本記事では、シンプルなPythonコンテナ環境にdbtをインストールし、コマンド実行を行うまでの手順を紹介しました。
dbtCore単体には、dbtCloudほどの機能は充実していませんが、それを補うdbtCoreでしか使えない便利なPythonパッケージがたくさんあり、料金もかからないのでこの手順を参考にdbtを体験してみてください。