👻
Snowflake x dbtやってみた 〜dbtセットアップ編〜
前回の続きです。
今回はdbtのセットアップを実施していきます。
コース上ではmacとWindowsの選択肢がありますが、私はUbuntuにセットアップしていきます。
今回セットアップするdbtはdbt-snowflake
Ubuntuでのセットアップ
アップデート
ubuntu@dbt:~$ sudo apt update -y
ubuntu@dbt:~$ sudo apt upgrade -y
dbt-snowflakeのインストール
準備
ubuntu@dbt:~$ sudo apt install python3
ubuntu@dbt:~$ sudo apt install python3-pip
インストール
ubuntu@dbt:~$ pip install dbt-snowflake
インストール後確認
whichで確認しておく
ubuntu@dbt:~$ which dbt
/home/ubuntu/.local/bin/dbt
ubuntu@dbt:~$
dbtの初期設定
対話型で聞かれる内容
・Which database would you like to use?
→ 今回dbt-snowflakeでセットアップしているので[1] snowflakeしか出て来ません。
なので選択する番号としては、「1」 となります。
・account (https://〜): dbt
→ Snowflakeアカウントの認証情報形態を選択します。
ここではパスワード形式を選択します。なので「1」を選択
・password (dev password):
→ Snowflakeアカウントのパスワードを入力します。
・role (dev role):
→ ロールの選択ではSnowflake環境構築時に作成したtransformを入力します。
・warehouse (warehouse name):
→ ウェアハウスの名前を入力します。
・database (default database that dbt will build objects in):
→ データベース名を入力します。
・schema (default schema that dbt will build objects in):
→ スキーマ名を入力します。
・threads (1 or more) [1]:
→ スレッド数を入力します。
ubuntu@dbt:~$ dbt init dbtlearn
04:49:13 Running with dbt=1.3.1
04:49:13 Creating dbt configuration folder at /home/ubuntu/.dbt
Which database would you like to use?
[1] snowflake
(Don't see the one you want? https://docs.getdbt.com/docs/available-adapters)
Enter a number: 1
account (https://<this_value>.snowflakecomputing.com)xxxxxx.ap-northeast-1.aws user (dev username): dbt
[1] password
[2] keypair
[3] sso
Desired authentication type option (enter a number): 1
password (dev password):
role (dev role): transform
warehouse (warehouse name): COMPUTE_WH
database (default database that dbt will build objects in): AIRBNB
schema (default schema that dbt will build objects in): dev
threads (1 or more) [1]: 4
05:04:30 Profile dbtlearn written to /home/ubuntu/.dbt/profiles.yml using target's profile_template.yml and your supplied values. Run 'dbt debug' to validate the connection.
05:04:30
Your new dbt project "dbtlearn" was created!
For more information on how to configure the profiles.yml file,
please consult the dbt documentation here:
https://docs.getdbt.com/docs/configure-your-profile
One more thing:
Need help? Don't hesitate to reach out to us via GitHub issues or on Slack:
https://community.getdbt.com/
Happy modeling!
ubuntu@dbt:~$
セットアップ時の構成情報
ubuntu@dbt:~/dbtlearn$ cat ~/.dbt/profiles.yml
dbtlearn:
outputs:
dev:
account: xxxxxx.ap-northeast-1.aws
database: AIRBNB
password: dbtPassword123
role: transform
schema: dev
threads: 4
type: snowflake
user: dbt
warehouse: COMPUTE_WH
target: dev
ubuntu@dbt:~/dbtlearn$
dbtのデバッグを実行して構成情報に問題がないか確認する
ubuntu@dbt:~/dbtlearn$ dbt debug
05:11:11 Running with dbt=1.3.1
dbt version: 1.3.1
python version: 3.8.10
python path: /usr/bin/python3
os info: Linux-5.15.0-1021-oracle-x86_64-with-glibc2.29
Using profiles.yml file at /home/ubuntu/.dbt/profiles.yml
Using dbt_project.yml file at /home/ubuntu/dbtlearn/dbt_project.yml
Configuration:
profiles.yml file [OK found and valid]
dbt_project.yml file [OK found and valid]
Required dependencies:
- git [OK found]
Connection:
account: xxxxx.ap-northeast-1.aws
user: dbt
database: AIRBNB
schema: dev
warehouse: COMPUTE_WH
role: transform
client_session_keep_alive: False
Connection test: [OK connection ok]
All checks passed!
ubuntu@dbt:~/dbtlearn$
Discussion