[新機能]dbt Explorerで実行されたModelのパフォーマンスとdbt projectに対する推奨事項の確認ができるようになりました

2023.12.19

※本記事は「dbt Advent Calendar 2023」のシリーズ2の19日目の記事となります。

さがらです。

つい先日、dbt Explorerで実行されたModelのパフォーマンスとdbt projectに対する推奨事項の確認ができるようになりました。※2023年12月19日時点では、Beta機能となります。

この新機能を試してみたので、本記事でまとめてみます。

手順

dbt Cloud上で、任意のdbt projectを開いている状態で、Exploreを押します。

Explorerが立ち上がったら、画面左のProject detailsに新しくPerformanceRecommendationsという項目が加わっています。これらを押せばOKです。

  • Performance:実行されたModelのパフォーマンスの確認
  • Recommendations:dbt projectに対する推奨事項の確認

Performance

まず、Performanceについて見ていきます。

Most executed modelsでは、このdbt projectにおいて最も実行されたModelを棒グラフで表してくれます。

Longest model executionsでは、このdbt projectにおいて平均実行時間が最も長いModelについて、平均実行時間を棒グラフで表してくれます。

Most failed modelsでは、このdbt projectでのBuildとTestが失敗していた場合に、その失敗の割合を各Modelごとに棒グラフで表してくれます。

また、各グラフの右上のフィルタから、対象期間を変更することも可能です。

Recommendations

次に、Recommendationsについて見ていきます。

Recommendationsでは、dbt CloudのDiscovery APIから取得したdbt projectのメタデータを参照して、dbt_project_evaluatorというdbt Labs社が提供しているdbt packageを用いた際と同様の推奨事項をまとめて確認することが出来ます。

このdbt Explorerの機能では、2023年12月19日時点では下記のルールについて確認できるようです。詳細については公式Docよりご確認ください。

  • Direct Join to Source
  • Duplicate Sources
  • Multiple Sources Joined
  • Root Model
  • Source Fanout
  • Unused Source
  • Exposure Dependent on View
  • Missing Primary Key Test
  • Undocumented Models
  • Undocumented Source
  • Undocumented Source Tables
  • Public Model Missing Contract

では、Recommendationsについてどのようなことが確認できるのか見ていきます。

一番上に2つのドーナツグラフがあります。

Models with TestsではTestが1つでも設定されているModelの割合を確認でき、Models with Documentationではdescriptionが設定されているModelの割合を確認できます。

ドーナツグラフの下に「◯ Recommendations」という形で、対象のdbt projectにおいて、dbt_project_evaluatorが検知した評価項目について一覧でまとめてくれます。

デフォルトではすべての検知した項目が表示されていますが、右上からフィルタをすることも可能です。

各Modelの詳細ページからの確認

PerformanceRecommendationsですが、ExplorerのModelsから各Modelを確認しているときにも新しくタブが追加されており、個別に確認することも可能です。

  • Performanceの例

  • Recommendationsの例

最後に

簡単ですが、dbt Explorerで実行されたModelのパフォーマンスとdbt projectに対する推奨事項の確認ができるようになったので、どのようなことができるかを確認してみました。

対象のdbt projectに関するチューニングやリファクタリングを行いたい際に非常に役立つ機能だと思いますので、dbt Cloudをお使いの方はぜひ試してみてください!