dbt Fusion使ってみた

catch-img

こんにちは、中村です。

先日dbt meetup #14に参加して、dbt Showcaseで把握しきれていなかったdbt Fusionのすごさを実感しました!

なので今回は、dbt FusionについてVS Codeの拡張機能と関連のある機能を中心に紹介していこうと思います。

目次

dbt Fusionとは

  • 次世代の dbt エンジンで、これまで Python ベースだった dbt Core を完全に Rust に置き換えることで高速化を実現
  • SQL の文法や型、列レベルでの理解を備えた SQLコンパイラとして動作し、従来の dbt Core を超えた展開パフォーマンスと開発体験を実現

dbt Fusionのメリット

  • dbt Coreと比較してパースが最大30倍高速化、フルコンパイルも約2倍速になったことで全体的に実行が早い。
  • dbt CoreはいちいちDWHに問い合わせをしていたが、dbt Fusionはコンパイルによって、構文ミスや関数引数の誤りが即座に指摘し、補完も行う。
  • State aware orchestrationにより、更新が必要なモデルのみ実行するので、DWHの無駄な使用料を抑えられる。
  • dbt Coreと互換性があるので、基本的にはCoreで作ったモデルを実行できる。

dbt FusionとVS Code拡張機能の導入方法

VS Code拡張機能を入れるとdbt Fusionのインストール案内が出るのでVS Code拡張機能の導入から進めたいと思います。

また、こちらの公式のドキュメントを参考に進めます。

まずはVS Codeの拡張機能マーケットプレイスからdbtの拡張機能をインストール

※dbt Labsが出している公式の拡張機能はこれだけです。ほかにも似たようなものが結構あるので、間違えないようにしましょう。

拡張機能のインストールが完了すると、下の画像のようなメッセージが画面左下に表示されるのでInstallを選択

意訳:この拡張機能に必要なdbt Fusion入ってないけど、インストールする?

dbt Fusionのインストールも完了すると、下の画像の様にdbtに登録を求められる

過去にdbt Cloudに登録したことがない人はRegister Nowを選択し、登録しましょう。

dbt Cloudに登録したことがある人はdbt Cloudにログイン

左下の自分のメールアドレス>Account Setting>Personal ProfileでExperimental featuresのBetaが有効になっていることを確認し、その後CLIのConfigure Cloud authenticationでConfigfileをダウンロードします。

ダウンロードしたdbt_cloud.ymlを.dbt配下に配置すれば完了です。

dbt Fusionを使ってみる

ここからは実際にdbt Fusionを使ってみましょう。

まずは準備から

コマンドラインで以下を実行

dbtf init 

続いて対話形式で接続情報を聞かれていくので回答

プロジェクトが作成されたら、ディレクトリを移動して build コマンドを実行します。

cd jaffle_shop dbtf build

続いてVS Codeでjaffle_shopプロジェクトを表示しましょう。

表示>コマンドパレット>ワークスペース:ワークスペースにフォルダーを追加からjaffle_shopを選択します。

これでdbt Fusionを使った開発の準備が整いました。

ここからはVS Codeの拡張機能を見ていきます。

右上を見ると見慣れないアイコンが3つ追加されていますね。

一番左のdbtロゴのアイコンはGUIでdbtコマンドを実行できるアイコンで、dbt buildやdbt testをクリックで実行できます。


真ん中のアイコンを押すと、dbtのjinjaを使ってSQLの形式をコンパイルした結果が見られます。


一番右の表のアイコンはCTEの実行結果を見ることができます。

また同じパネルでリネージも見ることができます。

これでdbtでの開発がしやすくなりそうですね!

まとめ

今回はVS Code拡張機能に関連したdbt Fusionの機能を使ってみました。

ちなみにVS Code拡張機能といいつつ、Cursorでも使えるらしいです!

Showcaseやmeetupでは、これ以外にもGUIでクエリを作成 or dbt Copilotにクエリを作成してもらえるdbt Canvasや、アドホックな分析や簡単なグラフが作成できるdbt Insightsなど、多数の機能を紹介されていました。今後もどんどん試したいと思います!

また、この機会にdbt Cloudも使ってみたいと思っていただけた方はこちらの記事もぜひご覧ください!

Nakamura
Nakamura
Google Cloud, Snowflakeを中心に記事を書いています。

人気記事ランキング

タグ一覧