dbt(CLI)をセットアップしてみる(BigQuery)


dbtとは

公式Docによると、
select文を書くだけでWHのデータを変換できる。
dbtはselect文をテーブルやビューに変換する処理をする。

テストとかもできるらしい。

プロジェクトファイルとしてymlファイル、モデルとしてSQLファイルの準備が必要とのこと。

インストール

  • 環境 : Windows10 , bash

Web版は有料みたいなので、CLI版を使用する。
事前準備としては、

  • BigQuery(PostgreSQL等の方も読み替えても問題ないです)
  • Git
  • Python(pipを使用するため)

下記でdbt-coreとdbt-bigqueryがインストールできる。

pip install dbt-bigquery
$ dbt --version
installed version: 1.0.4
   latest version: 1.0.4

Up to date!

Plugins:
  - bigquery: 1.0.0

Macでhomebrewを使う方、Dockerイメージ、ソースから使いたい方は公式Docへ

profileの構成

「~/.dbt」に「profiles.yml」を作成する。(dbt initの際に対話形式でも作成できる)

~/.dbt/profiles.yml
my-bigquery-db:
  target: dev
  outputs:
    dev:
      type: bigquery
      method: service-account
      project: [GCP project id]
      dataset: [the name of your dbt dataset]
      threads: [1 or more]
      keyfile: [/path/to/bigquery/keyfile.json]
      <optional_config>: <value>

また、サービスアカウントにジョブユーザーのロール(roles/bigquery.jobUser、roles/bigquery.user、roles/bigquery.dataEditor)を与えておく必要があるので、下記参照
※roles/bigquery.jobUserだけだと、その後のdbt runとかでテーブル作れないため、要確認。

BigQueryのprofileは下記参照

プロジェクトを作成してみる

dbt init [プロジェクト名]で作成できる。
※また、profiles.ymlが未作成の場合、ここで対話的に聞かれるので、そこで答えることでprofiles.ymlが作成される。

$ dbt init dbt_test

デバッグ

$ dbt debug
08:45:52  Running with dbt=1.0.4
dbt version: 1.0.4
python version: 3.9.9
python path: C:\Users\user\AppData\Local\Programs\Python\Python39\python.exe
os info: Windows-10-10.0.19044-SP0
Using profiles.yml file at C:\Users\user\.dbt\profiles.yml
Using dbt_project.yml file at C:\Users\user\Desktop\abcd\dbt_test\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:
  method: service-account
  database: test1234
  schema: test_test
  location: None
  priority: None
  timeout_seconds: 300
  maximum_bytes_billed: None
  execution_project: test1234
  Connection test: [OK connection ok]

All checks passed!

これで接続が確認できた。

続き