無料ではじめる dbt 入門 (3) | プロジェクトの作成と初期設定(SQL Server編)

本記事では、dbt-sqlserver のインストールが完了した状態から、最初の dbt プロジェクトを作成し、SQL Server に接続するための設定と初期動作の確認方法までを丁寧に解説します。

スポンサーリンク

ステップ1:新しい dbt プロジェクトの作成

まずは、dbt のプロジェクトを作成します。作成するには次のことを忘れずに実行してください。

  • dbt をインストールした Python の仮想環境を有効化する
  • Python の仮想環境をインストールしたフォルダに移動する(ここに dbt プロジェクトも作成する)

こうすることで Python の仮想環境と dbt を同時に管理することができます。

この記事では前回の記事で作成したユーザーのホームディレクトリ下の “my_project_root” フォルダの下に dbt プロジェクト(my_dbt_project)を作成します。コマンドプロンプトで以下を実行します。

C:\>cd:\C:\Users\foo\my_project_root

C:\Users\foo\my_project_root>.venv\Scripts\activate.bat

(.venv) C:\Users\takas\my_project_root>dbt init my_dbt_project

dbt init の実行

実行すると、いくつか対話形式の質問が表示されます。後で修正が必要なのですが、一応以下の内容で入力しておきます。

  • データベースの選択: ここでは sqlserver を選択
  • データベースのホスト名: SQL Server のホスト名を入力
  • ポート番号: SQL Server は通常 “1433”
  • ユーザ名: SQL Server にアクセスするユーザ名
  • パスワード: 上記ユーザのパスワード
  • データベース名: SQL Server上のデータベース名を入力
  • スレッド数: ここではデフォルトの “1”

プロジェクトフォルダ構成の確認

作成直後のフォルダは図のようになります。

このうち models/example/ はチュートリアル用のサンプルです。不要であれば削除して構いません。

ステップ2:データベース接続設定(SQL Server 用)

dbt init を実行して対話形式の質問に答えると、データベースへの接続設定ファイルが自動的に作成されます。

しかし、SQL Server を利用する場合、自動生成された接続設定ファイルでは dbt は正常に動作しない ため、自分で修正する必要があります。

どちらかと言えば、修正するよりも上書きしてしまった方が混乱が少ないので、作成されたファイルは名前を変更した上で、ここで紹介する内容のファイルを新規で作成することをお勧めします。

接続設定ファイルの保管場所

接続設定ファイルは dbt の共通設定ファイルで、全プロジェクト共通で使用されます。

ファイルはユーザー(ここでは foo )のホームディレクトリ下の “.dbt” というフォルダの “profiles.yml” という名前で保管されています。

もしこのファイルがなければ自分で作成します。

C:\Users\foo\.dbt\profiles.yml

SQL Server 向けの設定項目の具体例

以下は SQL Server への接続設定のサンプルです。

WIndows 認証用

Windows 認証で SQL Server に接続する場合の設定です。

既に SQL Server 上にご自分のログインID がユーザとして登録されている必要があります。更に、テーブル作成やビュー作成の権限も設定されている必要があります。

my_dbt_project:
  outputs:
    dev:
      database: my_db
      driver: ODBC Driver 17 for SQL Server
      port: 1433
      schema: dbo
      server: Your_Host_Name\sqlexpress
      trust_cert: true
      type: sqlserver
      windows_login: true
  target: dev
  • database:使用する SQL Server のデータベース名
  • driver: お使いのPCにインストールされている ODBC ドライバを記載します
  • schema: デフォルトでモデルが作成されるスキーマ。SQL Server のデフォルトスキーマは “dbo” です。
  • server: SQL Server が動いているサーバ名。SQL Server Express を利用している場合は後ろに \sqlexpress を加えます。
  • trust_cert:  ローカル開発環境で TLS 証明書を省略したいときに true
  • type: SQL Server に接続するので “sqlserver”
  • windows_login: Widows 認証 で SQL Server に接続する場合の設定です。“true” に設定します。

SQL Server 認証用

SQL Server で独自にユーザーを作成している場合の設定です。

user 行 と password 行 をご自分の利用するIDに合わせて編集してください。

my_dbt_project:
  outputs:
    dev:
      database: my_db
      driver: ODBC Driver 17 for SQL Server
      port: 1433
      schema: dbo
      server: Your_Host_Name\sqlexpress
      trust_cert: true
      type: sqlserver
      user: Your_User_ID
      password: Your_Password
  target: dev

ODBC ドライバの確認とトラブル時のヒント

PCにインストールされている ODBC ドライバ は PowerShell で以下のコマンドを実行することで確認できます。

>Get-OdbcDriver

「ODBC Driver 17 for SQL Server」または「ODBC Driver 18 for SQL Server」が表示されていない場合は、Microsoft 公式サイト からダウンロードしてインストールしてください。

ステップ3:接続確認と初期動作チェック

接続設定ファイルの作成が完了したら、まずは dbt が SQL Server に接続できるかを確認しましょう。

dbt のプロジェクトフォルダに移動して dbt debugを実行します。

(.venv) C:\Users\foo\my_project_root\my_dbt_project>cd C:\Users\foo\my_project_root\my_dbt_project

(.venv) C:\Users\takas\my_project_root\my_dbt_project>dbt debug

成功した場合は、図のように接続成功のメッセージとともに「All checks passed!」と表示されます。

ステップ4:初期モデルの作成と実行

以下のような簡単な SQLクエリを models フォルダの下の test.sql として保存して実行してみましょう。

SELECT  
  1 AS sample_id,  
  'dbt works!' AS message

dbt で以下のコマンドを実行することで SQL Server に test という名前のビュー(またはテーブル)が作成されます。

(.venv) C:\Users\takas\my_project_root\my_dbt_project>dbt run --select test

上手くいきましたでしょうか?

これが上手くいったということは dbt で SQLクエリ を書いたものがデータベース上に反映できたということになります。

これからどんどん SQLクエリ を開発していくことができます。

ステップ5:Git リポジトリの作成

dbt の大きなメリットの一つが、Git での SQLクエリ の管理 です。

dbt のプロジェクトが作成できたので、これを Git リポジトリに登録します。

dbt プロジェクトフォルダに移動して git init コマンドで Git リポジトリの初期化を行います。

(.venv) C:\Users\foo\my_project_root\my_dbt_project>cd C:\Users\foo\my_project_root\my_dbt_project

(.venv) C:\Users\takas\my_project_root\my_dbt_project>git init

Git リポジトリに含めたくないファイル・フォルダを指定するために、dbt プロジェクトフォルダの .gitignore を編集します。以下の内容が推奨になりますので、参考に編集してみてください。

# dbt artifacts
dbt_modules/
dbt_packages/
target/
logs/
manifest.json
run_results.json

dbt プロジェクトフォルダ内のファイルのうち、.gitignore に指定したもの以外をステージ(Git に登録予定)に追加します。

(.venv) C:\Users\takas\my_project_root\my_dbt_project>git add .

初回のコミットを実行してファイルを Gitリポジトリに登録します。

(.venv) C:\Users\takas\my_project_root\my_dbt_project>git commit -m "Initial commit: dbt project added"

以上で、作成した Gitリポジトリ に dbt プロジェクトのファイルを登録することができました。今後は、更新がある度にコミットして履歴を残していくことができます。

Git で dbt プロジェクトのファイルを管理することで、問題が発生した際に前の状態に戻すとか、複数人のチームでコードを管理するなど高度な管理を行うことができるようになります。

まとめ:dbt プロジェクトの基盤ができたら、次はモデル開発へ

ここまでで、dbt プロジェクトの初期構築と SQL Server への接続、基本モデルの実行まで完了しました。次は、実際の業務データを活用したモデルの作成、テストやドキュメントの整備といった実践的な開発に進んでいきましょう。

次の記事では、モデル作成・テスト・ドキュメントの具体的な方法をご紹介します。

タイトルとURLをコピーしました