投稿日:2025-03-30
Google Cloud ✖ dbtでデータ基盤を作ろう! - part 1
データ基盤の分野では、ここ数年で modern data stack という言葉が使われるようになりました。
modern data stack とは、データ基盤を構築するためのツールやサービスを組み合わせたスタックのことです。
データ抽出、変換、ロード(ETL)のためのツールやサービス、データウェアハウス、BI ツールなどが含まれます。
今回は modern data stack の一つである dbt を使って、BigQuery にテーブルを作成してみます。
dbt はデータウェアハウスにおけるデータ変換処理を行うためのツールです。
modern data stack の一つとして知られており、使用されるケースが増えています。
dbt の特徴は以下の通りです。
その他の特徴については、dbt の公式サイト をご参照ください。
dbt には dbt Cloud と dbt Core の 2 つのバージョンがありますが、今回は dbt Core を使用します。
まずは dbt をインストールします。 python のパッケージマネージャである pip を使ってインストールします。
仮想環境を作成してから dbt をインストールすることをおすすめします。
$ python -m venv venv
$ source ./venv/bin/activate
dbt は複数のデータベースに対応しています。
今回は BigQuery を使用するため、BigQuery 用の dbt パッケージをインストールします。
$ pip install dbt-bigquery
$ 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 init
コマンドを実行すると下記項目を入力します。
入力が完了するとプロジェクトフォルダが作成されます。
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
gcloud CLI でのログインを行います。
user の認証情報を使用して dbt を実行・データの作成を行うため、
user がBigQuery編集者権限
を持っていることを確認してください。
$ gcloud auth application-default login
ログインに完了すると、これで gcloud CLI での認証が完了しました。
という公式ページにリダイレクトされます。
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、データ可視化などの情報を発信していきます。