![[新機能] dbt Projects on Snowflakeのアップデートでdbt Fusionがサポートされたので周辺機能と合わせて試してみた](https://images.ctfassets.net/ct0aopd36mqt/wp-refcat-img-3610e3c1ff5961bdb7b464e17f8bf06d/90b168b240005ead852ec1d474bb74fb/snowflake-logo-1200x630-1.png?w=3840&fm=webp)
[新機能] dbt Projects on Snowflakeのアップデートでdbt Fusionがサポートされたので周辺機能と合わせて試してみた
かわばたです。
2026年5月19日にdbt Projects on Snowflake updatesとして、dbt Projects on Snowflakeに対する大規模なアップデートがリリースされました。
dbt Fusionエンジンの導入、カラムレベルの系統追跡、マルチバージョンサポート、Cortex Codeとの統合など、多岐にわたる機能強化が含まれています。
本記事ではすべての機能を実際に検証していきます。
【公式ドキュメント】
dbt Projects on Snowflake updates(リリースノート)
Manage dbt projects on Snowflake
dbt Core versions for dbt projects on Snowflake
Cortex Code in Snowsight
SYSTEM$GET_DBT_LOG
なお、本記事ではSnowflake上のDBT PROJECTオブジェクトを指す場合に「dbt project object」と表記し、一般的なdbtのプロジェクト構成を指す場合に「dbtプロジェクト」と表記します。
対象読者
- dbt Projects on Snowflakeを利用中・検討中の方
- dbt Fusionへの移行を検討している方
- Snowflake上でのdbt開発効率化に興味がある方
検証環境
- SnowflakeトライアルアカウントEnterprise版
サンプルデータは下記を使用しています。
今回のアップデート概要
今回のリリースでは以下の8つの機能強化が含まれています。
| # | 機能 | 概要 |
|---|---|---|
| 1 | dbt Fusionエンジン | Rustで完全に書き直された新エンジン。コンパイル時間の大幅な高速化 |
| 2 | マルチバージョンdbtサポート | DBT_VERSIONパラメータでプロジェクトごとにバージョンを固定可能 |
| 3 | 強化されたdbt DAGとカラムレベルの系統追跡 | DAG可視化の改善、カラムレベルの系統追跡が可能に |
| 4 | DAGからの部分的dbtプロジェクト実行 | モデルノードから対象を選択して部分的に実行 |
| 5 | Workspacesでの単一dbtファイル実行 | エディタ内の個別モデルファイルに実行ボタンを搭載 |
| 6 | dbt project objectをWorkspaceにインポート | デプロイ済みdbt project objectをWorkspaceにインポートして編集可能 |
| 7 | Cortex Codeのdbtサポート | AIアシスタントがdbtライフサイクル全体を支援 |
| 8 | SYSTEM$GET_DBT_LOG関数の拡張 | 新しいmax_num_lines引数の追加 |
実際に試してみた
dbt Fusionエンジン
dbt Fusionとは
dbt Fusion 2.0.0-preview は dbt ランタイムの Rust による完全な書き直しで、パースとコンパイル時間の大幅な高速化を実現するよう設計されています。
従来のdbt CoreはPythonベースでしたが、dbt FusionはRustで一から書き直されたエンジンです。プロジェクトの規模が大きくなるにつれてコンパイル時間が課題になっていましたが、Fusionエンジンによってこの問題が解消されることが期待されます。
重要なポイントとして、Snowflake上のサポート対象バージョンとしてはdbt Fusion 2.0.0-previewがActive supportとして提供されています。「preview」の表記はdbt Labs社のバージョニング慣例によるもので、Snowflakeにおけるリリース状態を示すものではありません。SnowflakeのDBT_VERSIONとしては2.0.0-previewを指定します。また、追加ライセンスや購読は不要で、全ユーザーが利用可能です。
dbt Fusionの有効化
プロジェクト作成時にdbt Fusionを指定する場合は、DBT_VERSIONパラメータを設定します。
-- dbt Fusionバージョンを指定してプロジェクトを作成
CREATE DBT PROJECT my_project
FROM '@my_stage/path/to/dbt_project'
DBT_VERSION = '2.0.0-preview';
既存プロジェクトのバージョンを変更する場合はALTERを使用します。
-- 既存プロジェクトをdbt Fusionに変更
ALTER DBT PROJECT my_project SET DBT_VERSION = '2.0.0-preview';

dbt Core から dbt Fusion への移行
移行にあたっては以下の3つのリソースが提供されています。
dbt-autofix ツール
ローカルターミナルで以下のコマンドを実行することで、dbt Coreの非推奨警告を自動的に解決し、パッケージの互換性を確認できます。インストール不要で使えます。
uvx dbt-autofix
公式アップグレードガイド
dbt Developer Hubの「Upgrading to the dbt Fusion engine」ガイドで、完全な移行プロセスが解説されています。
AI支援による移行
Cortex Codeなどのコーディングエージェントで利用できる「dbt Core to Fusion migration skill」が提供されています。AIの支援を受けながら移行作業を進めることができます。
dbt Fusionでの実行
実際にdbt Fusionエンジンでプロジェクトを実行してみます。
-- プロジェクトの実行
EXECUTE DBT PROJECT my_project
ARGS = 'run'
;

マルチバージョンdbtサポート
今回のアップデートで、プロジェクトごとにdbtバージョンを固定できるようになりました。
サポート対象バージョン
| バージョン | サポート状態 | dbt Labs側のサポート |
|---|---|---|
| dbt Fusion 2.0.0-preview | アクティブ | アクティブ |
| dbt Core 1.10.15 | アクティブ | 2026年6月15日まで重要な修正のみ |
| dbt Core 1.9.4 | アクティブ | 廃止予定 |
サポート対象dbtバージョンの確認
現在サポートされているdbt CoreバージョンはSYSTEM$SUPPORTED_DBT_VERSIONS()で確認できます。
SELECT SYSTEM$SUPPORTED_DBT_VERSIONS();

アカウントレベルのデフォルト設定
アカウント管理者はDEFAULT_DBT_VERSIONパラメータで、今後作成されるdbt project objectのデフォルトバージョンを設定できます。このデフォルトはWorkspacesの初期dbt runtime versionにも使用されます。個別のdbt project objectでは、作成時・ALTER DBT PROJECT・EXECUTE DBT PROJECT ... DBT_VERSIONにより上書きできます。
-- アカウントレベルでデフォルトバージョンを設定
ALTER ACCOUNT SET DEFAULT_DBT_VERSION = '2.0.0-preview';

Workspacesの初期dbt runtime versionも下記のように確認できました。

実行時のバージョン一時上書き
なお、DBT_VERSIONはdbt project objectに固定するだけでなく、EXECUTE DBT PROJECT実行時に一時的に上書きすることもできます。移行検証では、既存設定を変更せずに特定の実行だけFusionで試せるため便利です。
-- この実行だけ dbt Fusion を使用する
EXECUTE DBT PROJECT my_project
ARGS = 'run'
DBT_VERSION = '2.0.0-preview';
強化されたdbt DAGとカラムレベルの系統追跡
DAG(有向非巡回グラフ)の可視化が大幅に改善されました。
DAGの改善点
- モデル表示上限: 100から300に増加
- 検索バー: DAG内でモデル名を検索可能に
- 深さコントロール: 上流・下流を何階層まで表示するか制御可能
- 統合サイドパネル: 行数、カラム数、compiled SQL、実行時情報などを確認可能
- カラム表示: 各モデルノードにカラムリストを表示(Snowflake Horizon Catalogと連携)
- 対応画面の拡大: Workspaces、dbt project object、Query Historyで利用可能
カラムレベルの系統追跡
モデルノードで「Show columns」を選択すると、カラムリストが展開されます。特定のカラムを選択すると、そのカラムを使用するすべての上流・下流モデルがハイライト表示されます。

アクセス方法
Snowsightから「Databases > your database > your schema > dbt Projects」でプロジェクトを選択し、プロジェクト詳細ページのDAGタブで確認できます。
実際に試してみた
SnowsightからプロジェクトのDAGタブを開いてDAGを確認してみます。
「Databases > your database > your schema > dbt Projects」からプロジェクトを選択し、DAGタブを開きます。
モデル表示上限が300に増加しており、検索バーからモデル名で検索できるようになっています。

次に、カラムレベルの系統追跡を試してみます。モデルノードで「Show columns」を選択すると、カラムリストが展開されます。
特定のカラムを選択すると、そのカラムを使用するすべての上流・下流モデルがハイライト表示されました。

また、Query Historyの画面でもDAG可視化が強化されています。
下記のように実行箇所およびステータスの確認が可能です。

データの流れをカラム単位で追跡できるのは、影響分析やデバッグの際に非常に有用だと感じました。Snowflake Horizon Catalogとの連携により、カタログに登録されたカラム情報が自動的に反映される点も便利です。
DAGからの部分的dbtプロジェクト実行
DAG上のモデルノードのメニューから、対象を選択して部分的に実行できるようになりました。
| メニューオプション | 実行内容 | dbtフラグ相当 |
|---|---|---|
| Execute model | 選択モデルのみ | --select model_name |
| Execute model+ | モデルと下流依存関係 | --select model_name+ |
| Execute +model | モデルと上流親関係 | --select +model_name |
| Execute +model+ | 親・モデル・子全体 | --select +model_name+ |
実行ダイアログでは操作種類(Run/Test/Build)とプロファイルターゲットを選択できます。
実際に試してみた
DAG上のモデルノードのメニューを開いてみます。

「Execute model+」を選択すると、対象モデルとその下流の依存関係も含めて実行されます。
実行ダイアログでは操作種類(Run/Test/Build)とプロファイルターゲットを選択できます。


DAGからの直感的な操作で部分実行ができるため、特定モデルのみのテスト実行や、影響範囲を限定した再実行が容易になりました。従来はCLIで--selectフラグを手動で指定する必要がありましたが、GUI上で視覚的に選択できるのはありがたいアップデートです。
Workspacesでの単一dbtファイル実行
Workspacesのエディタ内で、個別のモデルファイルに実行ボタンが搭載されました。プロジェクト全体を実行せずに、そのモデルだけを実行またはビルドできます。
開発中の迅速なフィードバックループが実現でき、効率的な開発が可能になります。
実際に試してみた
Workspacesでdbtプロジェクトを開き、個別のモデルファイルを選択してみます。エディタの上部に実行ボタンが表示されています。
実行ボタンをクリックすると、そのモデルのみがビルドされます。

下記コマンドが実行されていました。

プロジェクト全体を実行せずに個別モデルだけを素早く実行できるため、開発や改修時に役立つ機能だと感じました。
dbt project objectをWorkspaceにインポート
デプロイ済みのdbt project objectの内容を、Workspace内に新規フォルダとしてインポートできるようになりました。インポート後はWorkspace上で編集・反復作業が可能です。
本番環境にデプロイされているdbt project objectの内容を確認・修正したい場合に便利な機能です。
実際に試してみた
Workspacesを開き、デプロイ済みのdbt project objectをインポートしてみます。


インポートが完了すると、プロジェクトの内容がWorkspace内に新規フォルダとして展開されます。

インポート後はWorkspace上でファイルを直接編集できます。デプロイ済みdbt project objectの構成を確認したり、修正を加えて再デプロイするワークフローがシームレスに行えるようになりました。
Cortex Codeのdbtサポート
Cortex CodeがWorkspacesおよびコマンドラインインターフェースでdbtライフサイクル全体に対応しました。
対応機能
- モデルの雛形生成
- テストの追加
- dbtコマンドの実行
- ドキュメントの自動生成
- デプロイ済みdbt project objectのファイル検査による探索とデバッグ
実際に試してみた
Snowsightの右下にあるCortex Codeアイコンを選択して、dbtに関する質問をしてみます。
テストの追加を依頼してみます。
customers.sqlに対してymlファイルで適切なテストを作成してください

作成されたymlファイル
version: 2
models:
- name: customers
description: Customer dimensions with lifetime order summary metrics, one row per customer.
columns:
- name: customer_id
description: The unique key for each customer.
data_tests:
- not_null
- unique
- name: count_lifetime_orders
description: Total number of distinct orders placed by the customer.
data_tests:
- not_null
- name: first_order_date
description: Date of the customer's first order.
- name: last_order_date
description: Date of the customer's most recent order.
- name: lifetime_spend_pretax
description: Sum of all order subtotals before tax.
- name: lifetime_tax_paid
description: Sum of all tax paid across orders.
- name: lifetime_spend
description: Sum of all order totals including tax.
- name: customer_type
description: Whether the customer is new or returning.
data_tests:
- not_null
- accepted_values:
arguments:
values: ['new', 'returning']
今回の検証では、Cortex Codeを使ってdbtモデルに対するテスト定義の生成を試せることを確認できました。公式ドキュメント上は、モデル作成、テスト追加、dbtコマンド実行、ドキュメント生成など、dbtライフサイクル全体の支援に対応しています。
SYSTEM$GET_DBT_LOG関数の拡張
dbtプロジェクト実行のログを取得するSYSTEM$GET_DBT_LOG関数に、新しいmax_num_linesオプション引数が追加されました。
**構文
SYSTEM$GET_DBT_LOG ( '<query_id>' [ , <max_num_lines> ] )
| パラメータ | 必須 | 説明 |
|---|---|---|
| query_id | はい | ログを取得したい実行のクエリID |
| max_num_lines | いいえ | dbt.logファイルの末尾から返す最大行数。デフォルトは1,000行 |
使用例
DBT_PROJECT_EXECUTION_HISTORY関数と併用して、最新の実行ログを取得できます。
-- 最新の実行IDを取得
SELECT query_id
FROM TABLE(SNOWFLAKE.INFORMATION_SCHEMA.DBT_PROJECT_EXECUTION_HISTORY(
DATABASE => 'MYDB',
SCHEMA => 'MYSCHEMA',
OBJECT_NAME => 'MY_PROJECT'
))
ORDER BY query_end_time DESC
LIMIT 1;
-- ログを取得(最新500行)
SELECT SYSTEM$GET_DBT_LOG('<上記のquery_id>', 500);

max_num_linesを指定することで、必要な分量だけログを取得できるため、大規模プロジェクトでのデバッグ時にログの確認が効率的になります。
最後に
今回のアップデートは「dbt Projects on Snowflake」にとって非常に大きなリリースだと感じました。全8機能を実際に検証してみて、それぞれの改善点を実感できました。
特にカラムレベルのリネージやDAGからの部分的dbtプロジェクト実行はWorkspace上で確認しながら開発・改修が出来るためとてもありがたい機能だと感じました。
この記事が何かの参考になれば幸いです!








