Snowflake Summit 2025 Day3 レポート:About dbt Project
はじめに
お世話になっております。primeNumberの庵原です!
この記事ではSnowflake Summit 2025のDay3でのセッション"WHAT'S NEW
SCALING DATA PIPELINES WITH SQL, DBT PROJECTS, AND PYTHON"で発表された内容や様子について現地で見たもの聞いたものを速報形式でまとめてお送りいたします!
セッション概要
本セッションでは、データエンジニアリングにおける特に開発面でのペインとして、開発サイクルの長期化、複数システムの維持管理、デバッグの困難さなどに対応するためにSnowflake × dbtが提供するソリューションが紹介されました。
目玉ポイント
dbt Projects on Snowflake
多くの企業で利用されているdbtをSnowflake上でネイティブにサポートすることで、よりシームレスで効率的なデータ変換パイプラインの構築と運用が可能になります。これはセルフサービスBIの推進にも貢献すると期待されます。
dbt Core単体では開発・実行環境の構築やシステム横断の統合の維持が難しいポイントがあり、dbt Cloudは純粋な料金の発生のハードルがフェーズによって立ちはばかりますが、dbt Project on Snowflakeによってその障壁を打開できるのが強みだと考えています。
Dynamic Tablesの進化、特にApache Icebergサポートと低レイテンシ化
Icebergへの対応は、Snowflake内外でのデータ相互運用性を高め、また宣言的な定義で約15秒という低レイテンシのデータパイプラインを実現できることは、リアルタイムなデータ活用が可能になります。
これはIcebergテーブルに対するストリーミング連携の強化とも関連があります。
巨大なIcebergテーブルをニアリアルタイムで更新し続けるための機能とも言えます。
深掘りポイント
Snowflakeを取り巻くデータエンジニアリングの環境について
AI時代のデータエンジニアリングは、開発サイクルや複雑システムの維持など、多くの観点から気にするべき事項がさらに増えていると思われます。スライドで紹介されていた観点だけでも様々な視点が見て取れます。
また価値の創出のためのデータとしての存在意義を気にするのは企業活動としては前提ですが、その上での開発コストやランニングコストを削減することも重要な観点です。
その上で現在のSnowflakeを利用する推進された基盤を持つ企業内での大きな課題としてあるストリーミングをどのように盛り込むのかをサポートするためのエコシステムの用意が今年の1つの大きなトピックになっているように感じました。
dbt Project on Snowflakeが解決すること
データ基盤の実装におけるベストプラクティスを実行できるdbtにおいて、Snowflakeとより強固に連携するために、「Snowflake上に諸々の環境を用意してしまう」という意味合いでKeynoteでも発表があったdbt Project on Snowflakeが利用可能になりました。
これはエンジニアリングにおける1つの大きな潮目で、Snowflakeで全部できてしまう、という世界に向けた大きな1歩となっていると考えられます。
dbt Project on Snowflakeでは簡単にいうとdbt Coreをdbt Cloudとほぼ同じ環境のように動作する代物がSnowflakeに用意されている、と言えると思います。
スライドにもあるように、Build,Test,Deploy,Schedule,Monitorの全てが利用できる点が大きなメリットです。
それを実現する機能として、Snowflake Workspaceという機能も紹介されていました。
これは下のスライドの内容がほぼ全てなので直訳してしまうのですが、
- 単一エディタでの多様なプロジェクト対応 (One editor for all): SQL、ノートブック、Python、パイプラインプロジェクトなど、あらゆるタイプのプロジェクトを一つのエディタ内で扱える。
- ファイルベース開発 (File-based development): すべてのコードをファイルやフォルダ構成で整理して開発を進められる。
- デフォルトでのプライベート開発 (Private by default): 個人のデータベースを活用し、デフォルトでプライベートな開発環境が提供されている。
- Git統合 (Git integration): 自身が利用しているGitリポジトリと直接連携して作業できる。
- 他者との連携 (Collaborate with others): 安全な共有ワークスペースを通じて、他のユーザーと共同で作業を進めることができる。
が、行えるとのことで、機能がまだ足りない部分はありますが、正直「dbt Cloudやん...」と思っていました。
Streaming, Streaming, Streaming...
今回のSnowflake Summitで通してずっと単語として出てきているストリーミングですが、巨大データのリアルタイム連携が大きな鍵となっているようです。
スライドにもあるように以下にそのストリーミングの部分を強化してきているのかが見て取れます。
また上でも簡単に説明したように、Dynamic Tableのソース元としてIcebergテーブルに対応している部分が非常に大きなポイントで、ストリーミングが入ってきたデータを後続のテーブルに反映させるのをニアリアルタイムで行えるようにしている部分が押し出されていたポイントだと思います。
またこれは他の参加者の方々とも話していましたが、ことストリーミング領域でも今までSnowflakeでの大きくはない機能追加や変更がここで全て連結して、大きな潮流を作っているようにも取れます。
demo
demoの実際の内容
デモは簡単なdbtの実装をdbt Project上で行うデモでした。
内容として、Build ~ Monitorまでの動きが紹介されています。
デモの中で構築されるdbt modelのリネージです。
こちらが実際のdbt Projectの画面です。命名としてはSnowflake Workspaceが正式名称でした。
画像にある通り、SQLの編集するための部分と左側にフォルダ階層でprojectが用意されているのがわかります。ほぼVS CodeのようなUIになっています。
ここでSQLファイルやyamlファイルの編集を行っていました。
上のセレクトボックスからdbtのコマンドを実行するprofileをどれにするのかを選択することができます。
またアドホックに実行するのも上のセレクトボックスからdbtの実行したいコマンドを選ぶことができます。
実際にリネージも確認できます。
構築したdbtの実装を実際にデプロイする際はGUI上でダイアログから実行することが可能です。
スケジュール実行を設定する場合もGUI上のダイアログから実行することが可能です。
何時に起動するか、どのprofileを利用するかなどが選択できます。
また実際に設定されているスケジュール一覧も確認可能です。
最後に実際にdbt buildされた実行結果を確認することができる画面が紹介されていました。
またこれは今後利用可能になるAdaptive Warehouseを利用することが可能で、ワークロードに応じて必要なコンピュートリソースを利用することが可能です。
demoを見た感想
まず率直に「ここまで来たか」と思いました。
Snowflakeがdbtを囲うことは本当に大きなことで、Snowflake × dbtの選択肢を優位に選べるようになっているとも考えることができます。
また既存のdbtの実装をdbt Project on Snowflakeに移行することも可能なため、これまでのdbtの資産を無駄にすることなく、Snowflakeの強力な計算エンジンや、Snowflake Workspacesのような統合された開発・実行環境のメリットを享受できるようになるのは非常に大きな進歩だと感じます。
これまでdbt Core運用で課題となりがちだった、dbt実行のための外部スケジューラや専用のコンピューティングリソースの準備・管理といった手間が大幅に削減され、運用負荷の軽減に直結するでしょう。 これにより、データエンジニアはインフラの維持管理から解放され、よりビジネス価値の高いデータモデリングやデータ品質の向上といった本当の意味での「本質的な業務」に集中できるようになることが期待できると考えています。
まとめ
いかがでしたでしょうか?
dbtの環境の観点での革新的な内容を理解することができる非常に重要なセッションでした。
引き続き参加したSessionの内容等をアップしますので、是非そちらもご覧いただけますと幸いです!
Discussion