
dbt Projects on Snowflakeに関する監視機能を試してみた
さがらです。
dbt Projects on Snowflakeに関する監視機能を試してみたので、その内容をまとめてみます。
関連する公式ドキュメントは以下となります。
事前準備
以下の記事に沿って、dbt ProjectsをSAGARA_DBT_DEMO_DB
のPRODUCTION
スキーマにデプロイしておきます。
加えて、以下のクエリを実行して、dbt Projectsを実行するタスクをPRODUCTION
スキーマで定義しておきます。
create or replace task sagara_dbt_demo_db.production.dbt_task
warehouse=sagara_dbt_wh
schedule = 'using cron 0 9 1 1 * Asia/Tokyo'
as
execute dbt project sagara_dbt_demo_db.production.dbt_deployment_prod args='build --target prod';
この状態でも下図のようにdbt Projectsの実行履歴は確認できるのですが、より詳細な情報までは確認ができません。
イベントテーブルの作成
イベントテーブルは任意のデータベース・スキーマで作成したもので問題ないため、dbt Projects用のイベントテーブルを作成します。
use role sysadmin;
create or replace database sagara_event_db;
create or replace schema sagara_event_db.dbt;
create or replace event table sagara_event_db.dbt.dbt_events;
grant ownership on database sagara_event_db to role sagara_admin_role;
grant ownership on schema sagara_event_db.dbt to role sagara_admin_role;
grant ownership on event table sagara_event_db.dbt.dbt_events to role sagara_admin_role;
イベントテーブルをdbtのデータベースに紐づけ
イベントテーブルをdbt Projectsを管理するデータベースと紐づけます。
use role sagara_admin_role; -- 2025/7/7時点、ACCOUNTADMINでなくてもOWNERSHIP権限があるロールで可能でした
alter database sagara_dbt_demo_db set event_table = sagara_event_db.dbt.dbt_events;
show parameters like 'event_table' in database sagara_dbt_demo_db;
スキーマレベルでLog Level・Trace Level・Metric Levelを設定
公式Docの内容を参考に、dbt Projectsのオブジェクトがあるデータベース・スキーマで各種Levelを設定します。
use role sagara_admin_role;
alter schema sagara_dbt_demo_db.production set log_level = 'INFO';
alter schema sagara_dbt_demo_db.production set trace_level = 'ALWAYS';
alter schema sagara_dbt_demo_db.production set metric_level = 'ALL';
実際にdbt Projectsをタスクで実行して監視機能を確認してみる
上述の設定をした上でdbt Projectsをタスクで実行してどのような情報が監視機能から確認できるかを確認してみます。
※dbt Projectsのタスク実行は、手動で以下のコマンドを実行しました。
execute task sagara_dbt_demo_db.production.dbt_task;
まず、対象のdbt Projectの画面から、監視機能の有効化前と同様にどのdbtコマンドを実行したか確認可能です。この状態で、詳細を確認したいコマンドを押します。
すると、Monitoring
のdbt projects
という画面に遷移して対象のdbtコマンドに関する詳細が確認可能です。
Job details
タブでは、実行したdbtコマンドの所要時間や、どのModelがビルドされたか、などが確認可能です。
Output
タブでは、監視機能の有効化前と同様にログを確認可能です。
Trace
タブでは、各処理にどれだけの時間がかかっているかをタイムラインの形式で確認でき、各処理をクリックすると右側に詳細が表示されます。
最後に
dbt Projects on Snowflakeに関する監視機能を試してみました。
こちらの機能を有効化しておくと、ボトルネックとなっている処理の確認もすぐに行えて、便利だと思います!dbt Projects on Snowflakeをご利用の際は、ぜひお試しください。