[新機能]dbt Explorerで各Modelのクエリ回数が確認できるようになりました
さがらです。
dbt Cloudの新機能として、dbt Explorerで各Modelのクエリ回数が確認できるようになりました。(2024/10/7時点ではSnowflakeとBigQueryのみサポートで、プレビュー機能です。)
下図は上記の公式ドキュメントからの引用ですが、dbt project内で最もクエリされているModelを確認したり、リネージ上で各Modelのクエリ回数が確認できるようになっています。
実際に私もこの機能をSnowflakeで試してみましたので、設定手順を本記事でまとめてみます。
設定手順
dbt Cloudで用いるロールへの権限付与
Snowflakeと連携してこの機能を使う場合には、「SNOWFLAKE」データベース内の「ACCOUNT_USAGE」スキーマに存在している「QUERY_HISTORY」と「ACCESS_HISTORY」の2つのviewの閲覧権限が必要です。
これらのviewを見るための最小権限としては、GOVERNANCE_VIEWER
というデフォルトで存在しているDatabase Roleの付与が必要です。(参考:公式ドキュメント)
この権限の付与を行うには、以下のようなクエリを実行すればOKです。
use role accountadmin;
use database snowflake;
use schema account_usage;
grant database role governance_viewer to role <任意のロール>;
dbt Cloudでの設定
対象のdbt projectの「PROD」が設定されているEnvironmentを開きます。
Editの画面に移り、「Query History」と書かれた設定欄まで移動し、Test Permissions
を押します。
無事に「Success」と表示されたら、Enable Query History
も有効化します。
確認してみた
この後、実際にdbt Explorer上で確認してみます。(事前に各Modelから作られたテーブル・ビューに対してクエリを数回行っておきました。dbt Explorerへの明確な反映時間はわかっていないのですが、少なくとも更新までは数時間要します。)
まず、Model一覧でも各Modelごとにクエリされた回数が「Query count」列に表示されます。
全体のリネージで左下を「Consumption query history」にすると、リネージ上で各Modelのクエリ回数がわかります。
最後に
dbt Cloudの新機能として、dbt Explorerで各Modelのクエリ回数が確認できるようになったので、試して内容をまとめてみました。
特にリネージ上で各Modelごとのクエリ回数がわかるのが嬉しいですね!Modelの棚卸しがよりしやすくなる機能だと思います。