dbt-fusionへの移行で気をつけるべき点
はじめに
新しいdbt engineを含むプロダクトのお披露目会として、先日2025 dbt Launch Showcaseが開催されました。
イベントの開催と同時に膨大な数のドキュメントも公開されたので、早速キャッチアップのために目を通しました。その中で気になった点をいくつか挙げておきます。
dbt-fusionはdbt-coreと独立したプロダクト
rustベースのsdfをどう既存のdbt-coreと統合するのかずっと疑問でしたが、dbt-fusionはdbt-coreとは独立したプロダクトとして発表されました。
dbt-fusionは公式vscode extensionをはじめとしてローカルでの開発をサポートしているため、アカウント作成など一手間必要ですがdbt cloudユーザーでなくても無料で使用することができます。
また、dbt-core自体もこれで開発終了という訳ではなく、引き続きサポートが続けられていくことが明記されています。
破壊的変更がある
dbt-fusionに移行するにあたって、いくつか破壊的変更が発生することが記載されています。
具体的には、
- dbt coreで発生しているdeprecation warningsが今後リリース予定のdbt-fusion preview版ではエラーになること
- dbt coreの挙動を変更できるflagsが使用不能になること
の2点です。
1点目のdeprecation warningsの解消については、dbt-autofixというサポートパッケージの使用が推奨されています。[1]
また、外部パッケージやpythonライブラリについても注意が必要です。25年5月時点でdbt-fusionと互換性があると明記されているのは、dbt-labsが開発している以下のパッケージのみです。
- dbt_utils
- audit_helper
- dbt_external_tables
- dbt_project_evaluator
サードパーティのツール群については、これから順次チェックが行われていくことになるはずなので、使用しているツールがdbt-fusionに対応しているかどうかは、移行前に各ツールのアップデートを確認する必要があります。
beta時点で使えるDWHはsnowflakeのみ
現在dbt-fusionが使用可能なDWHはsnowflakeのみとなっています。GAになるまでに他のDWHもサポートされる予定となっているようです。
Target Date | Milestone | Description |
---|---|---|
2025-05-28 | Initial release of Fusion | Published source code of parser, schemas, dbt-jinja, and Snowflake ADBC driver. |
2025-06-09 | Databricks Adapter release | Databricks ADBC driver, and adapter for Fusion |
2025-06-25 | BigQuery Adapter release | BigQuery ADBC driver, and adapter for Fusion |
2025-07-09 | Redshift Adapter release | Redshift ADBC driver, and adapter for Fusion |
引用元:https://github.com/dbt-labs/dbt-fusion?tab=readme-ov-file#timeline
その他の機能についても、ロードマップが公開されています。
引用元:https://docs.getdbt.com/blog/dbt-fusion-engine-path-to-ga
その他にも、GAのところにnext-gen dbt docsとありますが、これはdbt-coreに元々あったデータカタログが置き換わるのでしょうか。既にアーキテクチャ的に限界なのは以前の記事でも触れていたので、こちらもどういった形になるのか楽しみですね。
dbt-fusionのライセンスはApache License 2.0ではない
こちらが一番の驚きでしたが、dbt-fusionはこれまでのApache License 2.0ではなく、ELv2ライセンスとして提供されることになりました。
詳しい説明は省きますが、一番注目すべき点として、dbt cloudなどと競合するようなdbt-fusionのマネージドサービスを許可なく提供することはできないライセンスとなっています。[2]
現時点では断定的なことは言えませんが、troccoのdbt連携のようなプロダクトではdbt-fusionを使用できない可能性があります。
将来的にdbt-fusionでしか使えない機能が出てきたときに、dbt-coreしか使えないツールから移行するのかといった点については事前に検討しておく必要がありそうです。
dbt cloudの優位性を確保するためのライセンス変更だと思われますが、ユーザーからすると悩みの種が1つ増えたことになります。
まとめ
ということで一通りドキュメントを読んだところ、エコシステムを含めてdbt-fusionが安定的に使えるようになるのは2025年の後半からになりそうな印象を受けました。
新しいエンジンによってローカルでの開発者体験が良くなることは間違いありませんが、ライセンスなど大きな変更もあったので、今後どのツールをdbtの実行基盤としていくかは数年先も見据えて慎重に検討する必要がありそうです。
その他リファレンス
-
手元で試してみたところ、部分適用のコマンドがなかったため、数千モデルあるような巨大dbtプロジェクトで適用するのはリスクが大きく厳しいことが分かりました。feature requestのissueを立てたので、もし同じような悩みを抱えている方がいれば、ぜひ👍でサポートください。 ↩︎
Discussion