- カテゴリ:
システム関数 (システム情報)
SYSTEM$GET_DBT_LOG¶
dbt Projects on Snowflake のために指定された実行のログを返します。
この関数を DBT_PROJECT_EXECUTION_HISTORY 関数と組み合わせて使用し、プログラムでdbtのアーティファクトとログにアクセスします。
構文¶
SYSTEM$GET_DBT_LOG ( '<query_id>' )
引数¶
query_idログが必要な実行のクエリ ID。
戻り値¶
この関数は、dbt.log ファイルの最後の1,000行を返します。完全なログを見るには、アーカイブ ZIP ファイルをダウンロードしてください。
詳細と例については、プログラムでdbtのアーティファクトとログにアクセスする をご参照ください。
アクセス制御の要件¶
この関数には、以下の権限があるワークスペースおよびdbtプロジェクトからの実行のみが含まれます。
ワークスペースに対する OWNERSHIP または USAGE 権限
dbtプロジェクトに対する OWNERSHIP、USAGE または MONITOR 権限
Operating on an object in a schema requires at least one privilege on the parent database and at least one privilege on the parent schema.
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
このシステム関数はdbtプロジェクトオブジェクトでのみ動作します。ワークスペースでは利用できません。
CREATEDBTPROJECT または ALTERDBTPROJECT ... ADDVERSION で生成されたクエリ IDs はこのシステム関数ではサポートされていません。
ファイルコンテンツの直接クエリ(例: クエリの例)はサポートされていません。
query_idが NULL またはdbt実行中でない場合は、エラーが発生します。dbtプロジェクトの結果は、最大14日間利用可能です。
実行がタイムアウトした場合、キャンセルされた場合、またはファイルがアップロードされる前に失敗した場合は、ログを使用できない可能性があります。このような場合、実行はdbt履歴で
UNHANDLED ERRORと表示され、これらのエントリにはログが含まれていない可能性があります。ログファイルは実行が完了した後にのみ利用可能になるため、この関数を使用して進行中の実行のログを取得することはできません。
例¶
次の例では、MY_DBT_PROJECT を使用した DBT_PROJECT_EXECUTION_HISTORY の最新のdbtプロジェクト実行を検索し、SYSTEM$GET_DBT_LOG を使用してその実行のdbt実行ログを取得することで、実行中に何が起こったかを確認できます。
--Look up the most recent dbt Project execution
SET latest_query_id = (SELECT query_id
FROM TABLE(INFORMATION_SCHEMA.DBT_PROJECT_EXECUTION_HISTORY())
WHERE OBJECT_NAME = 'MY_DBT_PROJECT'
ORDER BY query_end_time DESC LIMIT 1);
--Get the dbt run logs for the most recent dbt Project execution
SELECT SYSTEM$GET_DBT_LOG($latest_query_id);
============================== 15:14:53.100781 | 46d19186-61b8-4442-8339-53c771083f16 ==============================
[0m15:14:53.100781 [info ] [Dummy-1 ]: Running with dbt=1.9.4
...
[0m15:14:58.198545 [debug] [Dummy-1 ]: Command `cli run` succeeded at 15:14:58.198121 after 5.19 seconds
詳細については、 プログラムでdbtのアーティファクトとログにアクセスする をご参照ください。