Snowflake Knowledge - INSIGHT LAB

dbt Power Userで快適なdbt開発ライフを送る

作成者: SHOW|2023年12月12日

みなさんこんにちは、INSIGHT LAB株式会社のSHOWです。
本記事はdbt Power Userを使って快適なdbt開発ライフを送る紹介記事です。

dbt Power Userはdbt-coreで開発を行う際に痒い所に手が届く素敵な機能が盛り沢山です。

一度使えばもうdbt Power Userの無い世界は考えられなくなるのは間違いなしです!!

それではその素晴らしい機能をご紹介いたします。

dbt Power Userとは?

dbt Power UserはVScodeの拡張機能です。

VSCodeにインストールしてから少し設定の手間がいりますのでご注意ください。

dbt Power Userが有効なVSCodeがdbtとシームレスに連携し、開発の手助けをしてくれます。

例えば、以下のような機能が用意されています。

  • ソース定義からモデルの生成
  • クエリ結果セットの視覚化
  • dbt モデルのリネージ
  • すべてまたは個々のモデルのテストを実行
  • モデル、マクロ、ソース、ドキュメントの定義へ移動
  • 専用パネルでモデルとその列のドキュメントの編集
  • モデル、マクロ、ソース、ドキュメントのオートコンプリート

上記以外にも機能はあり、日々機能の追加も行われています。

気になる方は公式サイトをご確認ください。

環境のお話

今回は以下の環境を前提としております。

  • dbt Power Userのバージョンはv0.27.0
  • dbtの接続先DWHはSnowflake(フリーアカウント)
  • jaffle shopのdbtプロジェクトを使用

dbt Power Userの機能紹介

今回はdbt Power Userの機能からいくつかピックアップして、ご紹介いたします。

ソース定義からモデルの生成

jaffle_shopのstaging層のソース定義(デフォルト状態から修正しています)を見ると5行目と6行目の間に「Generate model」の文字が表示されています。

ここをクリックすると・・・

下図のとおり、モデルが自動生成されます。

クエリ結果セットの視覚化

クエリ結果セットの可視化とは、モデルの中のクエリを実行してその結果を表示する機能です。

下図はstg_customersモデル全体を実行した結果です。

他の使い方としては、7行目のSELECT句のみ指定して実行することも可能です。

良くある使い方として、モデル内でWith句を使って集計や計算などをする際に、1つ1つのWith句の中身をその場で確認して、欲しい結果が取れているか、という使い方をしています。

 

dbt モデルのリネージ

dbtモデルのリネージを可視化する機能もあります。

dbt docs generateで表現されるリネージと同等のものをVSCode上でも確認することができます。

 

すべてまたは個々のモデルのテストを実行

下図の画面左側に「MODEL TESTS」という項目があり、これはdbtモデルのYAMLファイルに記載しているテストが表示される仕組みです。

ここに表示されているテストを1クリックで実行することができます。

もちろんすべてのテストを一括実行することもできます。

実際にuniqueテストを実行した結果が下図のとおりです。

まとめ

紹介しきれていない機能もまだありますが、dbt Power Userのすばらしさが伝わっていれば幸いです。

気になる機能がありましたら、是非試していただければと思います。

あと気になる点としては、dbt-cloudのIDEとの違いですね。

私自身dbt-cloudのIDEを触ったことが無いので、そのあたりの比較もしてみたいですね。