[小ネタ]dbt Projects on Snowflakeで--varsフラグを用いてユーザーごとの開発用スキーマを動的に指定してみた

[小ネタ]dbt Projects on Snowflakeで--varsフラグを用いてユーザーごとの開発用スキーマを動的に指定してみた

2025.08.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

さがらです。

dbt Projects on Snowflakeではdbt Coreをベースとしたdbtの開発がSnowflake内で行えますが、チーム開発をしようと考えたときに「環境変数が定義できないWorkspaceの環境で、開発用のスキーマをどうユーザーごとに定義するんだ?」とふと疑問が浮かびました。

この解決策として、--varsフラグを用いてユーザーごとの開発用スキーマを動的に指定してみたので、その内容をまとめてみます。

https://docs.getdbt.com/docs/build/project-variables

--varsフラグを用いてユーザーごとの開発用スキーマを動的に指定

やることは以下の2つだけです!

1つ目として、profiles.ymlで開発用のtargetに対してschema: "{{ var('dev_schema') }}"と定義します。(変数名はdev_schemaでなくても問題ありません。)

これはリポジトリで管理するファイルのため、一度だけ設定すればOKです。

snowflake_sagara:
  target: dev
  outputs:
    dev:
      type: snowflake
      role: SAGARA_ADMIN_ROLE
      warehouse: SAGARA_DBT_DEV_WH
      database: SAGARA_DBT_DEMO_DB
      schema: "{{ var('dev_schema') }}"
      account: ''
      user: ''

2つ目として、各ユーザーのWorkspace内で対象のdbt projectを開いた状態で、再生ボタンの横の設定から、Execute with defaultsのトグルを無効化し、--vars '{"dev_schema": "dbt_ssagara"}'と入力します。このdbt_ssagaraのところに、ユーザー専用のスキーマ名を入れます。

注意点として、RunBuildなど各コマンドごとにこの設定を追加する必要があります。また、こちらの設定はユーザーごとに設定が必要ですのでご注意ください。

2025-08-13_13h53_37

この状態でdbtコマンドを実行すると、--vars \'{"dev_schema": "dbt_ssagara"}というフラグが付いて実行されます。また、出力先のスキーマには指定したdbt_ssagaraが入っていることがわかります。

2025-08-13_14h01_56


Snowflake World Tour Tokyo 2026に参加しませんか?

Snowflakeの国内最大級イベント「Snowflake World Tour Tokyo」が2026年9月10日(木)・11日(金)にグランドプリンスホテル新高輪にて開催されます。
最新のAI・データ活用事例やライブデモを体感できる無料イベントです。

Snowflake World Tour Tokyoイベントに参加する


Snowflake Community Awards ファイナリストに選出されました

DevelopersIO で Snowflake 記事を執筆している かわばた が、Snowflake Community Awards「RISING COMMUNITY LEADER OF THE YEAR」部門・APJ枠のファイナリストに選ばれました。
最終選考の30%はコミュニティ投票です。記事がお役に立っていたようでしたら、9月15日(火)までにぜひ一票お願いします。フォームの「(4 of 6) RISING COMMUNITY LEADER OF THE YEAR」で Tomohiro Kawabata | Classmethod, Japan を選択、2分ほどで完了します。

投票フォームを開く


Snowflakeの導入支援はクラスメソッドに!

クラスメソッドでは Snowflake の導入を支援しております。
製品の詳細や支援の内容についてお気軽にお問い合わせください。

Snowflakeの詳細を見る

この記事をシェアする

関連記事