dbtを実行してBigQueryにテーブルを作成してみよう

投稿日:2025-03-30

Google Cloud ✖ dbtでデータ基盤を作ろう! - part 1

はじめに

データ基盤の分野では、ここ数年で modern data stack という言葉が使われるようになりました。 modern data stack とは、データ基盤を構築するためのツールやサービスを組み合わせたスタックのことです。
データ抽出、変換、ロード(ETL)のためのツールやサービス、データウェアハウス、BI ツールなどが含まれます。

今回は modern data stack の一つである dbt を使って、BigQuery にテーブルを作成してみます。

dbt とは

dbt はデータウェアハウスにおけるデータ変換処理を行うためのツールです。
modern data stack の一つとして知られており、使用されるケースが増えています。

dbt の特徴は以下の通りです。

  • SQL ベースのデータ変換処理
  • データ変換処理のドキュメント生成
  • データ変換処理のモデル間の依存関係の管理
  • macro と呼ばれる再利用可能な SQL フラグメント
  • model のテスト機能

その他の特徴については、dbt の公式サイト をご参照ください。

dbt には dbt Cloud と dbt Core の 2 つのバージョンがありますが、今回は dbt Core を使用します。

dbt のインストール

まずは dbt をインストールします。 python のパッケージマネージャである pip を使ってインストールします。

1. 仮想環境の作成

仮想環境を作成してから dbt をインストールすることをおすすめします。

$ python -m venv venv

2. 仮想環境の有効化

$ source ./venv/bin/activate

3. dbt のインストール

dbt は複数のデータベースに対応しています。

今回は BigQuery を使用するため、BigQuery 用の dbt パッケージをインストールします。

$ pip install dbt-bigquery

4. インストールの確認

$ dbt --version

下記のように dbt の version が表示されれば、インストールが成功しています。

Core:
  - installed: 1.7.13
  - latest:    1.7.13 - Up to date!

Plugins:
  - bigquery: 1.7.7 - Up to date!

dbt プロジェクトの作成

dbt のプロジェクトを作成します。

$ dbt init

コマンドを実行すると下記項目を入力します。
入力が完了するとプロジェクトフォルダが作成されます。

  • プロジェクト名 : 任意のプロジェクト名
  • 使用するデータベース : BigQuery
  • 認証方式 : 今回は Service Account を使用します
  • Service Account の json ファイルのパス : Service Account の json ファイルのパス(今回は適当で OK です)
  • GCP Project id : データを作成したい GCP のプロジェクト ID
  • データセット名 : データを作成したい BigQuery のデータセット名
  • threads : dbt のジョブを実行する際のスレッド数(同時に実行できる model 数)
  • ジョブのタイムアウト時間
  • location

dbt と BigQuery の連携

1. BigQuery への接続情報の設定

BigQuery へ接続するための情報をファイルに設定します。

ファイルのパス:{dbt project directory}/.dbt/profiles.yml

{ { dbt project name } }:
  target: dev
  outputs:
    dev:
      type: bigquery
      method: oauth
      project: { { GCP Project id } }
      dataset: { { BigQuery dataset name } }
      threads: 4

2. Google Cloud へのログイン

gcloud CLI でのログインを行います。

user の認証情報を使用して dbt を実行・データの作成を行うため、
user がBigQuery編集者権限を持っていることを確認してください。

$ gcloud auth application-default login

ログインに完了すると、これで gcloud CLI での認証が完了しました。という公式ページにリダイレクトされます。

3. dbt で BigQuery にテーブルを作成

dbt project の directory へ移動し、dbt run コマンドを実行します。

dbt run コマンドを実行すると、models ディレクトリ内の SQL ファイルが実行され、BigQuery にテーブルが作成されます。
dbt initコマンドでプロジェクトを作成すると、デフォルトで models ディレクトリが作成されているのでこちらを使用します。

$ cd { { dbt project directory } }
$ dbt run --profiles-dir ./.dbt/

completed successfullyと表示されれば、テーブルの作成が完了しています。
BigQuery のコンソールを開いて、テーブルが作成されていることを確認してください。

まとめ

今回は dbt を使って BigQuery にテーブルを作成する方法を紹介しました。
dbt は pip で簡単にインストールでき、BigQuery との連携も簡単に行うことができます。

次回は、dbt の model と macro の使い方について紹介します。


データ関連の技術情報を中心に発信していく技術ブログを始めました!

これから、データ基盤、クラウド、生成 AI、データ可視化などの情報を発信していきます。