👻

Snowflake x dbtやってみた 〜dbtセットアップ編〜

2022/11/26に公開

前回の続きです。
今回は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